LPC2478記憶體布局以及啟動方式

2022-07-05 15:54:17 字數 893 閱讀 7804

lpc2478 是nxp公司推出的一款基於apr7tdmi-s的工控型mcu,內建ram與flash,同時提供外部擴充套件flash和ram介面,擁有lcd控制器,其記憶體布局如下所示

其中flash高達512kb,內建ram96k,但是這96k主要分為三塊,使用者可用ram為64k,剩下32k分為兩塊,一塊給乙太網當做ram一塊當做usb ram,在不啟用usb和乙太網的情況下,使用者可以使用者32k另作他用

但是,lpc2478或者說lpc的arm晶元有乙個比較有意思的架構叫做bootrom,看下圖:

首先,晶元的保留空間內部會有乙個bootrom空間,bootrom空間和flash空間之間有一定的聯絡,聯絡見下圖

也就是說,2478在復位的時候,memmap的預設復位值是0x00,此時這個0x00位址其實並不是實體地址的0x00,而是相當於乙個被對映的bootrom區間,這樣,bootloader開始執行的同時,中斷也可以響應,中斷向量在bootrom的底部也就相當於對映到了0x00000000位置

bootloader執行完成之後,bootload會將memmap寫01,這時候,之前的對映消失,0x00000000重新回到了使用者空間,系統在執行復位向量指定的復位函式,從而啟動系統

bootloader的執行檢測了乙個io口的電平,如果該電平為低,則進入等待bootload模式,否則很快就會結束bootloader,進入正常的flash模式

LPC2478 向量中斷控制器(VIC

vic是處於晶元外設和arm核心之間的乙個模組,對晶元所有外設中斷進行管理,決定哪些中斷源可以產生中斷 產生哪種型別的中斷以及中斷後執行哪段服務程式。arm處理器核心具有兩個中斷輸入 向量中斷請求 irq 和快速中斷請求 fiq 向量中斷控制器使用32個中斷請求輸入,可將其程式設計分配為fiq或向量...

uboot 記憶體布局及啟動過程

該布局由uboot.lds 檔案定義,在鏈結時候生成相應的二進位制映像。首先定義起始位址為 0xc3e00000,接下來是中斷向量表 vector 大小為256位元組,按每個中斷向量占用4個位元組的跳轉位址算,做多可以有64個中斷向量 2.一些基礎性的 段,它為下一步載入boot或者kernel做準...

arm linux啟動過程中的記憶體布局

本文摘錄於 在arm平台下,zimage.bin壓縮映象是由bootloader載入到物理記憶體,然後跳到zimage.bin裡一段程式,它專門於將被壓縮的kernel解壓縮到kernel ram paddr開始的一段記憶體中,接著跳進真正的kernel去執行。該kernel的執行起點是stext函...