<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM學(xué)習中LPC2104的Boot與Remap詳解

ARM學(xué)習中LPC2104的Boot與Remap詳解

作者: 時(shí)間:2012-08-30 來(lái)源:網(wǎng)絡(luò ) 收藏

至此,Flash塊對內存地址空間的占用情況如下:

1、除去因被暫時(shí)注銷(xiāo)了映射關(guān)系的那小部分64字節的Flash子塊外,Flash塊作為一個(gè)整體占用的地址編碼空間為0x00000040—0x0001FFFF;

2、同時(shí),load子塊又占用了0x7FFFE000—0x7FFFFFF的地址編碼空間,load子塊中的異常向量表部分占用了0x00000000—0x0000003F。

因此,load子塊中的異常向量表部分實(shí)際上是占用了重復占用了三段地址編碼空間:0x00000000—0x0000003F、0x0001E000—0x0001E03F以及0x7FFFE000—0x7FFFE03F。

圖2中,存儲器的映射順序為:Memory Map-〉Reset -〉Bootload 。

SRAM塊和內核外圍模塊的映射關(guān)系在Remap之后保持不變,可參見(jiàn)圖1。

  * - 本貼最后修改時(shí)間:2005-3-10 17:31:19 修改者:andrewpei

  * - 修改原因:Append

Boot

有效的異常向量表地址編碼空間是0x00000000—0x0000003F(嚴格來(lái)說(shuō)應該是0x00000000—0x0000001F)。處理器復位后的Boot動(dòng)作就是從0x00000000處起始字中取出跳轉指令,開(kāi)始程序的執行。由于處理器復位后,映射到0x00000000—0x0000003F地址空間的異常向量表源于Bootload子塊,因此CPU實(shí)際上開(kāi)始執行的是Philips在芯片出廠(chǎng)前寫(xiě)入的Bootload程序。

進(jìn)入Bootload后,程序首先檢查看門(mén)狗溢出標志是否置位。

若看門(mén)狗溢出標志置位,則表明當前的系統復位是內部軟復位,CPU下一步將對Flash塊中的異常向量表進(jìn)行加和校驗。如果加和檢驗結果為零,Bootload程序將撤銷(xiāo)Bootload子塊中異常向量表部分在0x00000000—0x00000003F地址空間上的映射,恢復Flash塊的異常向量表在這64字節地址空間上的映射關(guān)系(如圖3),然后跳轉到異常向量表地址0x00000000處轉入用戶(hù)程序的執行。如果加和校驗結果不為零,Bootload程序將進(jìn)行UART0接口的波特率自動(dòng)偵測,隨時(shí)響應ISP宿主機的編程請求,執行處理器芯片的ISP編程工作。

  若Bootload沒(méi)有發(fā)現看門(mén)狗溢出標志置位,則表明當前的系統復位是外部硬復位,CPU將采樣P0.14引腳的外部邏輯電平輸入。如果為0,Bootload執行UART0的自動(dòng)波特率偵測,隨時(shí)響應ISP宿主機的編程請求;如果為1,Bootload的后續動(dòng)作將與前面檢測到看門(mén)狗溢出標志置位的程序執行完全相同。

Remap(可選)

最后這一步可選的Remap動(dòng)作完全處于用戶(hù)的控制之下,Remap的對象是片內SRAM存儲器塊的異常向量部分,共計64字節大小。用戶(hù)可以編程決定何時(shí)Remap、Remap之后是否再修改異常向量表以及如何修改異常向量表等等。需要強調的是,引發(fā)Remap動(dòng)作的指令與建立SRAM塊中異常向量的所有功能代碼全部駐留在Flash塊的用戶(hù)編程區中,是用戶(hù)應用軟件的一部分。

曾經(jīng)有網(wǎng)友對Philips在LPC2000系列處理器中引入這個(gè)可選的Remap功能提出質(zhì)疑:LPC2000系列處理器片內的Flash塊被分割成了兩組,每組都配備了相互獨立的128位寬度的讀取緩沖,在絕大多數情況下,CPU從Flash塊的訪(fǎng)問(wèn)是全速進(jìn)行的,不存在有等待的狀況;另一方面,一般應用LPC2000的嵌入式系統并不需要動(dòng)態(tài)地改變異常向量表。因此,對片內SRAM進(jìn)行Remap后,并不能提高處理器對異常的響應能力,實(shí)際意義不大。

事實(shí)上,LPC2000系列處理器引入SRAM的Remap功能對于IAP操作具有重要的意義。相對于其它基于A(yíng)RM7DMI內核的處理器而言,LPC2000系列處理器有一個(gè)獨具特色的功能—IAP。在IAP擦除/寫(xiě)入操作時(shí),片上Flash塊,包括該塊上的異常向量部分,是無(wú)法被訪(fǎng)問(wèn)讀取的,為了在IAP擦除/寫(xiě)入操作時(shí)有效地響應異常,必須在調用IAP擦除/寫(xiě)入操作之前,將SRAM中的異常向量部分提前映射到系統的異常向量表地址空間上。(待續)


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: LPC2104 Boot Remap

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>