打印

分享gel文件的知识和GEL在工程中的使用

[复制链接]
523|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Peonys|  楼主 | 2017-9-27 15:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
分享gel文件的知识和GEL在工程中的使用

GEL--通用扩展语言,无类型语言,只有int类型,当DSP.com/forum.php?mod=forumdisplay&fid=58" target="_blank" class="relatedlink">CCS运行时首先执行这个GEL函数;
             当我们自己需要设定某功能上电后立即开启,那么可以在这个函数里面实现。以2407的看门狗为例子,因为上电后2407的看门狗是自动开启的,但我们在调试程序的时候都是把看门狗关闭的,所以想在调试程序的时候可以把关看门狗的任务放在GEL中以下就是这个小程序
  • #define   WDCR    0X7029
  • #define   WDKEY   0X7025
  • Startup()DSP
  •     {
  •       WDCR=0X68
  •     }

[color=rgb(51, 102, 153) !important]复制代码
Startup()函数在GEL文件加载时会自动运行,这样就可以实现上电关闭看门狗功能了;

.

           GEL(General Extension Language 通用扩展语言)是一种解释语言,类似与C语言,这个文件中的函数是按照先后顺序执行的。
          GEL函数可以用来配置CCS开发环境,也可以用来初始化目标CPU。当启动CCS时,扫描启动的GEL文件并加载文件中包含的GEL函数,如果文件中包含Startup()函数,则包含的所有函数都运行;

GEL存储空间映射函数可以用来描述处理器的存储空间映射。
  • Startup()
  • {
  •      /* startup 内的所有函数都要执行 */
  • GEL_MapOn();
  • GEL_MapAdd(0,0,0xf000,1,1);
  • GEL_MapAdd(0,1,0xf000,1,1);
  • }

[color=rgb(51, 102, 153) !important]复制代码
1 GEL文件的改变

       使用CCSStudio Setup工具,可以为在系统配置中的每一个处理器指定一个启动GEL文件。当CCSStudio启动时,GEL文件加载到PC机的内存中,如果定义了StartUp()函数则执行该函数。在CCSStudio(V2.3或更早的版本中),主机和目标板的初始化工作都在Startup()函数中执行。但是对于支持Connect/Disconnect的CCSStudio,这样的GEL文件有可能没有正确的执行,因为CCSStudio启动时和目标处理器是断开的。当Startup()函数试图访问目标处理器时会出错。一个新的回调函数OnTargetConnect()来执行目标处理器的初始化工作。

2 GEL回调函数

2.1 Startup()函数

       如果指定的GEL文件中包含Startup()函数,当CCSStudio启动时执行Startup()函数。支持Connect/Disconnect的CCSStudio的启动时,Startup()函数中不包括访问目标处理器的代码,目标处理器由回调函数OnTargetConnect()来初始化。
      推荐:
l         建立基本的CCSStudio内存映射关系(不需要访问目标处理器)
l         任何不需要访问目标处理器的基本初始化


     不推荐:
l         Get_Reset()(该函数通过仿真器复位目标处理器)
l         通过GEL_BreakPtAdd()设置断点
l         GEL_TextOUT()和GET_OpenWindow(),因为StartUp()执行时CCSStudio的任何控制窗口还没有打开

  • 不支持Connect/Disconnect的CCSStudio GEL文件中的StartUp()函数:
  • /* The StartUp() function is called each time CCS is started. */
  • /* Customize this function to perform desired initialization. */
  • StartUp()
  • {
  • setup_memory_map();
  • GEL_Reset(); /* Do not call in StartUp() with CCStudio v2.4 or higher */
  • init_emif(); /* Do not call in StartUp() with CCStudio v2.4 or higher */
  • }

[color=rgb(51, 102, 153) !important]复制代码
  • 支持Connect/Disconnect的CCSStudio GEL文件中的StartUp()函数:
  • /* The StartUp() function is called each time CCS is started. */
  • /* Customize this function to perform desired initialization */
  • /* that will not access the target. */
  • StartUp()
  • {
  • setup_memory_map();
  • }

[color=rgb(51, 102, 153) !important]复制代码

相关帖子

沙发
chuntian2016| | 2017-9-27 20:46 | 只看该作者
主机和目标板的初始化工作都在Startup()函数中执行,,这个大部分的MCU都是这样进行启动的哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

640

主题

901

帖子

5

粉丝