Chinaunix首页 | 论坛 | 博客
  • 博客访问: 290717
  • 博文数量: 23
  • 博客积分: 491
  • 博客等级: 下士
  • 技术积分: 612
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-29 19:57
文章分类

全部博文(23)

文章存档

2013年(1)

2012年(22)

我的朋友

分类: 嵌入式

2012-08-18 16:06:19

合众达的GEL文件OMAPL138_ARM.gel用于在仿真器连接上OMAPL138时建立内存映射、初始化ARM时钟频率和DDR频率,激活DSP核。

CCS连接上仿真器后会加载gel文件,运行gel文件中的回调函数,回调函数初始化的变量会常驻内存中,然后才由操作者自由进行*.out文件的加载和程序的调试。主要的回调函数有OnTargetConnect()Startup()等,回调函数的内容可由开发人员修改配置。


点击(此处)折叠或打开

  1. OnTargetConnect( )

  2. {

  3.     Clear_Memory_Map();

  4.     Setup_Memory_Map(); //建立内存映射

  5.  

  6.     /* You can choose to run this if you only have the experimenter kit */

  7.     /* It will not turn PSC on for the peripherals on the user interface board */

  8.     /* But it does not hurt if you choose to run PSC_All_On_Full_EVM() even if */

  9.     /* you only have the experimenter kit */

  10.     /* PSC_All_On_Experimenter(); */

  11.        DEVICE_kickUnlock();

  12.     PSC_All_On_Full_EVM();

  13.    

  14.     Core_300MHz_DDRPLL_150MHz(); //设置arm时钟为300M和DDR频率为150M

  15.     EMIFA_NAND_PINMUX();

  16. Wake_DSP();

/*-----------------------------------------------------------------------------------------------------------

//用来激活DSP,为后面的DSP调试做铺垫。在Linux系统中运行*.out文件则是使用dsplink //来激活dsp,所以在编译Linux系统中的dsp可执行文件时就没有gel文件。

-------------------------------------------------------------------------------------------------------------*/



点击(此处)折叠或打开

  1. hotmenu Clear_Memory_Map()

  2. {

  3.     GEL_MapOff( );//内建gel函数,GEL_MapOn() or GEL_MapOff()来打开或关闭,存储区 //映射。当存储区映射关闭时,CCSStudio假定可以访问所有的存储区空间。

  4. GEL_MapReset( );// GEL_MapReset()函数清除所有的存储区映射。没有存储区映射时,//缺省设置是所有的存储区空间都不能访问

  5.     GEL_TextOut("\tMemory Map Cleared.\n","Output",1,1,1);

  6.     GEL_TextOut("\t---------------------------------------------\n","Output",1,1,1);

  7. }

  8.  

  9. hotmenu Setup_Memory_Map()

  10. {

  11.     GEL_MapOn( );

  12. GEL_MapReset( );

  13.  

  14.     /* ARM */

  15. GEL_MapAddStr( 0xFFFD0000, 0, 0x00010000, "R|W|AS4", 0 ); // ARM Local ROM

  16. // 0x48007000是地址,0代表是程序,0x00001000应该是长度,R 代表可读,W代表可写,AS4 代//表可访问的尺寸为32位数据宽。最后一个0 代表等待状态为0周期。 当读写慢速外部设备的时//候,cpu需要等待一个额外的时钟周期,这个周期可以为0,1,2,3

  17. ……………………//省略一大段映射内存的代码,因为格式都一样

  18.     GEL_MapAddStr( 0x01F11000, 0, 0x00001000, "R|W|AS4", 0 ); // McBSP 1 FIFO Data

  19.     GEL_TextOut("\tMemory Map Setup Complete.\n","Output",1,1,1);

  20.     GEL_TextOut("\t---------------------------------------------\n","Output",1,1,1);

  21. }

当然gel文件不是必须的,但用gel文件可以让CCS更加强大,调试更加方便。在跑着嵌入式linux系统中用proc_setup()函数激活dsp,所以在编译Linux端的dsp程序时就没有gel文件。

 

参考资料:http://blog.csdn.net/liusongzuo/article/details/7269702

http://www.eefocus.com/iamyouyou/blog/08-02/143434_b0849.html

阅读(5686) | 评论(4) | 转发(1) |
给主人留下些什么吧!~~

xjf6162012-08-20 10:00:14

嗯嗯,灰常看好你...      

lyq23252722012-08-20 07:10:13

擦,什么话,你知道的,自从广州回来我是一个什么鬼状态。不过反思下,自己不该这样了,应该学会控制自己的情绪!我要改变!!!

xjf6162012-08-19 18:49:47

lyq2325272: 看你暑假做的事情,我慌了,发现时间流逝,我却还是肆意的挥霍时间……向你致敬!.....
没有涉及硬件,刚入门软件,没什么工作量的。回过头来一看,因为接触一个新的芯片,不知从何入手,大把时间都荒废在搜资料,筛选信息上了。你这么说让我感觉很惶恐,因为随时间大把过去没大多进展的是我。不过我有时也怀疑,你小子说这话是不是恶心我来着

lyq23252722012-08-19 08:17:05

看你暑假做的事情,我慌了,发现时间流逝,我却还是肆意的挥霍时间……向你致敬!