合众达的GEL
文件OMAPL138_ARM.gel
用于在仿真器连接上OMAPL138
时建立内存映射、初始化ARM
时钟频率和DDR
频率,激活DSP
核。
CCS
连接上仿真器后会加载gel
文件,运行gel
文件中的回调函数,回调函数初始化的变量会常驻内存中,然后才由操作者自由进行*.out
文件的加载和程序的调试。主要的回调函数有OnTargetConnect()
,Startup()
等,回调函数的内容可由开发人员修改配置。
点击(
此处)折叠或打开
- OnTargetConnect(
)
- {
- Clear_Memory_Map();
- Setup_Memory_Map();
//建立内存映射
-
- /* You can choose
to run this if you only have the experimenter kit
*/
- /* It will
not turn PSC on
for the peripherals
on the user interface board */
- /* But it does
not hurt if you choose
to run PSC_All_On_Full_EVM() even
if */
- /* you only have the experimenter kit
*/
- /* PSC_All_On_Experimenter();
*/
- DEVICE_kickUnlock();
- PSC_All_On_Full_EVM();
-
- Core_300MHz_DDRPLL_150MHz();
//设置arm时钟为300M和DDR频率为150M
- EMIFA_NAND_PINMUX();
- Wake_DSP();
/*-----------------------------------------------------------------------------------------------------------
//用来激活DSP,为后面的DSP调试做铺垫。在Linux系统中运行*.out文件则是使用dsplink
//来激活dsp,所以在编译Linux系统中的dsp可执行文件时就没有gel文件。
-------------------------------------------------------------------------------------------------------------*/
点击(
此处)折叠或打开
- hotmenu Clear_Memory_Map()
- {
- GEL_MapOff(
);//内建gel函数,GEL_MapOn()
or GEL_MapOff()来打开或关闭,存储区
//映射。当存储区映射关闭时,CCSStudio假定可以访问所有的存储区空间。
- GEL_MapReset(
);// GEL_MapReset()函数清除所有的存储区映射。没有存储区映射时,//缺省设置是所有的存储区空间都不能访问
- GEL_TextOut(" Memory Map Cleared.
","Output",1,1,1);
- GEL_TextOut(" ---------------------------------------------
","Output",1,1,1);
- }
-
- hotmenu Setup_Memory_Map()
- {
- GEL_MapOn(
);
- GEL_MapReset(
);
-
- /* ARM
*/
- GEL_MapAddStr( 0xFFFD0000, 0, 0x00010000,
"R|W|AS4", 0
);
// ARM Local ROM
- // 0x48007000是地址,0代表是程序,0x00001000应该是长度,R 代表可读,W代表可写,AS4 代//表可访问的尺寸为32位数据宽。最后一个0 代表等待状态为0周期。 当读写慢速外部设备的时//候,cpu需要等待一个额外的时钟周期,这个周期可以为0,1,2,3
- ……………………//省略一大段映射内存的代码,因为格式都一样
- GEL_MapAddStr( 0x01F11000, 0, 0x00001000,
"R|W|AS4", 0
);
// McBSP 1 FIFO Data
- GEL_TextOut(" Memory Map Setup Complete.
","Output",1,1,1);
- GEL_TextOut(" ---------------------------------------------
","Output",1,1,1);
- }
当然gel
文件不是必须的,但用gel
文件可以让CCS
更加强大,调试更加方便。在跑着嵌入式linux
系统中用proc_setup()
函数激活dsp
,所以在编译Linux
端的dsp
程序时就没有gel
文件。