參考gel文件中的配置,完成arm的引導和初始化
打開OMAPL138平臺的Starterware目錄下GPIO_LED工程,添加以下初始化代碼所需的宏定義
#define PSC0_BASE 0x01C10000
#define LPSC_DSP 15
#define PSC_TIMEOUT 200
#define PSC0_MDCTL (PSC0_BASE+0xA00)
#define PSC0_MDSTAT (PSC0_BASE+0x800)
#define PSC0_PTCMD *(unsigned int*)(PSC0_BASE + 0x120)
#define PSC0_PTSTAT *(unsigned int*)(PSC0_BASE + 0x128)
找到GEL文件圖中初始化的函數(shù)定義:
將圖中的代碼復制到工程源碼中盏触,并且屏蔽兩處“ GEL_TextOut ”的打印行阳惹,如下圖:
繼續(xù)定義DSP的初始化wake_dsp函數(shù),設定引導地址和調用以上初始化函數(shù)琼了。添加以下代碼:
static void wake_dsp()
{
*(volatile unsigned int *)(0x01C14044) = 0x11800000;
PSC0_LPSC_enableCore(1,LPSC_DSP);
}
在main主函數(shù)中,調用wake_dsp()
Rebuild重新編譯。
修改DSP裸機工程的cmd文件入口地址
以控制核心板LED的Timer工程為例雕薪,修改cmd文件的程序入口昧诱。
注意,DSP和ARM的內(nèi)存空間所袁,不可以重疊沖突盏档,建議一個使用DDR,另一個使用SHRAM燥爷,如圖所示:
重新編譯Timer工程蜈亩,生成.out文件;
打開AIS生成工具AISgen_d800k008.exe
選擇加載AISgen_Boot6748_on138_456M_config.cfg配置文件前翎。
點擊"+"勺拣,選擇步驟一,生成的arm端裸機二進制可執(zhí)行文件GPIO_LED.out
選擇對應的生成路徑(非中文路徑即可)鱼填。
點擊Generate AIS生成.ais可執(zhí)行文件药有。
連接開發(fā)板和仿真器,在arm核加載nandwrite.out文件苹丸,擦除flash后愤惰,燒寫test_a.bin文件。
重新上電赘理,撥碼開關改成從nand flash啟動宦言,底板GPIO由ARM控制,核心板LED由DSP控制商模。
ARM裸機工程奠旺,DSP裸機工程燒寫,測試成功施流。