LPC2478內(nèi)存布局以及啟動(dòng)方式
掃描二維碼
隨時(shí)隨地手機(jī)看文章
LPC2478 是NXP公司推出的一款基于APR7TDMI-S的工控型MCU,內(nèi)置RAM與flash,同時(shí)提供外部擴(kuò)展flash和ram接口,擁有LCD控制器,其內(nèi)存布局如下所示
其中Flash高達(dá)512KB,內(nèi)置RAM96K,但是這96K主要分為三塊,用戶可用RAM為64K,剩下32K分為兩塊,一塊給以太網(wǎng)當(dāng)做ram一塊當(dāng)做USB ram,在不啟用USB和以太網(wǎng)的情況下,用戶可以使用者32K另作他用
但是,LPC2478或者說LPC的ARM芯片有一個(gè)比較有意思的架構(gòu)叫做BOOTROM,看下圖:
首先,芯片的保留空間內(nèi)部會(huì)有一個(gè)bootrom空間,bootrom空間和flash空間之間有一定的聯(lián)系,聯(lián)系見下圖
也就是說,2478在復(fù)位的時(shí)候,MEMMAP的默認(rèn)復(fù)位值是0x00,此時(shí)這個(gè)0x00地址其實(shí)并不是物理地址的0x00,而是相當(dāng)于一個(gè)被映射的BOOTROM區(qū)間,這樣,bootloader開始執(zhí)行的同時(shí),中斷也可以響應(yīng),中斷向量在bootrom的底部也就相當(dāng)于映射到了0x00000000位置
Bootloader執(zhí)行完成之后,bootload會(huì)將MEMMAP寫01,這時(shí)候,之前的映射消失,0x00000000重新回到了用戶空間,系統(tǒng)在執(zhí)行復(fù)位向量指定的復(fù)位函數(shù),從而啟動(dòng)系統(tǒng)
Bootloader的運(yùn)行檢測了一個(gè)IO口的電平,如果該電平為低,則進(jìn)入等待bootload模式,否則很快就會(huì)結(jié)束bootloader,進(jìn)入正常的flash模式