基于閃爍存儲器的DSP并行引導裝載方法
-a ;生成ASCII碼的形式
-e 0x144Fh ;程序空間中程序運行的開始
地址
-boot ;轉換成自舉表的形式
-bootorg PARALLEL ;并行格式
-byte ;按字節(jié)分配地址
-memwidth 16 ;系統(tǒng)存儲器字寬度為16位
-romwidth 16 ;ROM物理寬度為16位
-swwsr 0x7FFFh ;SWWSR設置軟件等待周期
-bscr 0xF800h ;BSCR設置段開關控制寄存器值0xF800
-o myblink.hex ;輸出的二進制數(shù)據(jù)文件名
?。?)生成的進制數(shù)據(jù)文件myblink.hex的數(shù)據(jù)為:
0x10AA 0x7FFF 0xF800 0x0000 0x144F 0x00D1 0x0000 0x1400 …(用戶程序代碼)… 0x0000;
前8個數(shù)據(jù)解釋分別為:
0x10AAh:16位并行尋址格式;
0x7FFFh:SWWSR初始值為0x7FFFh,因為FLASH的運行速度比DSP慢,等待7個周期;
0xF8000h:BSCR初始值為0xF800h;
0x0000h:自舉表程序入口的XPC=0;
0x144Fh:自舉表程序入口的地址=0x144Fh;
0x00D1h:自舉表程序的長度=0xD1h;
0x0000h:自舉表起始地址XPC=0;
0x1400h:自舉表的起始地址=0x1400h。
?。?)編寫一個數(shù)據(jù)轉換程序,把二進制數(shù)據(jù)文件myblink.hex轉換為數(shù)組頭文件myblink.h。在CCS環(huán)境下,F(xiàn)LASH的“燒寫”主程序包含此頭文件,編譯鏈接后通過仿真器下載到DSP中,運行DSP,用戶程序就被“燒入”FLASH中了。
實際應用是:在數(shù)據(jù)空間地址0xFFFFh(也就是FLASH的空間0xFFFFh)中“燒寫”數(shù)據(jù)0x9000h(FLASH中存放的自舉表起始地址),在FLASH的地址0x9000h開始“燒入”用戶自舉表數(shù)據(jù)即myblink.h中的數(shù)組數(shù)據(jù)。
DSP 運行情況是:依據(jù)第3節(jié)所述的引導裝載過程,經(jīng)過一系列的設置,使DSP尋址到數(shù)據(jù)空間地址0xFFFFh,得到自舉表的起始地址0x9000h,PC指針指向0x9000h,執(zhí)行自舉表的數(shù)據(jù),根據(jù)自舉表寫入信息,把后面的程序裝載入程序空間起始地址0x1400h(XPC=0)(這時通過仿真器查看程序空間0x1400h開始的數(shù)據(jù),與仿真器下載的myblink.out文件數(shù)據(jù)是一致的)。然后,DSP的PC指針指向程序入口地址0x144Fh (XPC=0)開始執(zhí)行用戶程序,從而完成了DSP利用FLASH實現(xiàn)16位并行引導裝載的過程。
評論