基于DM642的FLASH分頁二級引導(dǎo)程序設(shè)計
3 二級引導(dǎo)程序
3.1 引導(dǎo)過程
二級引導(dǎo)裝載程序被放置在FLASH的起始地址處,一旦DSP上電復(fù)位,二級引導(dǎo)程序就會通過DM642的自動加載機制加載到RAM的地址0處,且此時CPU復(fù)位,開始執(zhí)行二級引導(dǎo)程序。二級引導(dǎo)程序的引導(dǎo)過程為:首先對EMIF寄存器進(jìn)行配置,包括全局控制寄存器、CEx空間控制寄存器、SDRAM控制寄存器、時序控制寄存器以及擴(kuò)展控制寄存器等。然后,獲取程序入口地址,接著按照數(shù)據(jù)塊的格式獲取每個塊的字節(jié)數(shù)和目標(biāo)地址,開始拷貝代碼。當(dāng)獲取的字節(jié)數(shù)為0時,引導(dǎo)結(jié)束,CPU跳轉(zhuǎn)到C_int00處,建立C語言運行環(huán)境,從main()處開始執(zhí)行。引導(dǎo)過程如圖2所示。本文引用地址:http://2s4d.com/article/202586.htm
3.2 二級引導(dǎo)程序設(shè)計
根據(jù)二級引導(dǎo)程序的引導(dǎo)過程編寫二級引導(dǎo)程序的實現(xiàn)代碼,二級引導(dǎo)程序用匯編語言編寫。下面是各部分的具體實現(xiàn)。
(1)配置EMIF寄存器。定義EMIF寄存器基地址EMIF BASE=0x01800000,定義各個寄存器的配置值為:
(2)拷貝應(yīng)用程序代碼。定義引導(dǎo)表的地址為COPY_TABLE=0x90000400,實現(xiàn)代碼如下:
評論