新聞中心

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

        ARM學習中LPC2104的Boot與Remap詳解

        作者: 時間:2012-08-30 來源:網絡 收藏

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

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

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

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

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

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

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

          * - 修改原因:Append

        Boot

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

        進入Bootload后,程序首先檢查看門狗溢出標志是否置位。

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

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

        Remap(可選)

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

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

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


        上一頁 1 2 下一頁

        關鍵詞: LPC2104 Boot Remap

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 朝阳县| 清苑县| 铜山县| 行唐县| 东乌| 鹤峰县| 祁连县| 自治县| 台前县| 东城区| 余姚市| 哈密市| 宽甸| 绥芬河市| 福建省| 资兴市| 平乐县| 通城县| 华蓥市| 万宁市| 安乡县| 绩溪县| 黑龙江省| 达拉特旗| 米林县| 临武县| 绥棱县| 科尔| 合川市| 永泰县| 山阳县| 东莞市| 滨海县| 曲松县| 漯河市| 三台县| 文水县| 九寨沟县| 台中市| 东辽县| 嘉兴市|