GEL是通用扩展语言(General Extension Language)的英文缩写,GEL是一个大小写敏感但缺少类型检测的解释性语言,只有int类型,在语法上可看作是C语言的一个子集。GEL主要用来扩展CCS的功能,方便用户调试程序,但不是必需的。当我们希望上电后立刻开启或实现某些功能,那么可以在项目中装载GEL文件(由TI提供或用户自行编写)来实现这个目的。此外,项目添加TI公司提供的GEL文件后往往会在CCS的GEL菜单中出现相关的子菜单,用户可以使用它,主要用于程序的调试控制。GEL文件可以看成你所建项目的“秘书”,可以帮你打打杂,处理一些繁琐的事情。

下面是一段VC5509的通用GEL文件代码:

 StartUp()
{
GEL_MapOn();
GEL_MapReset();
GEL_MapAdd(0x0000C0,,0x00FF40,,);
GEL_MapAdd(0x010000,,0x030000,,);
GEL_MapAdd(0x040000,,0x3C0000,,);
GEL_MapAdd(0x400000,,0x400000,,);
GEL_MapAdd(0x800000,,0x400000,,); GEL_MapAdd(0xC00000,,0x400000,,); GEL_MapAdd(0xFF0000,,0x010000,,); GEL_MapAdd(0x000000,,0x000050,,);
GEL_MapAdd(0x000060,,0x007FA0,,);
GEL_MapAdd(0x008000,,0x018000,,);
GEL_MapAdd(0x020000,,0x1E0000,,);
GEL_MapAdd(0x200000,,0x200000,,);
GEL_MapAdd(0x400000,,0x200000,,); GEL_MapAdd(0x600000,,0x200000,,); GEL_MapAdd(0x0001,,0x0002,,);
GEL_MapAdd(0x0400,,0x0300,,);
GEL_MapAdd(0x07FE,,0x0002,,);
GEL_MapAdd(0x0800,,0x0014,,);
GEL_MapAdd(0x0C00,,0x000C,,);
GEL_MapAdd(0x0C20,,0x000C,,);
GEL_MapAdd(0x0C40,,0x000C,,);
GEL_MapAdd(0x0C60,,0x000C,,);
GEL_MapAdd(0x0C80,,0x000C,,);
GEL_MapAdd(0x0CA0,,0x000C,,);
GEL_MapAdd(0x0E00,,0x0001,,);
GEL_MapAdd(0x0E03,,0x0001,,);
GEL_MapAdd(0x1000,,0x0004,,);
GEL_MapAdd(0x1800,,0x000D,,);
GEL_MapAdd(0x1C00,,0x0001,,);
GEL_MapAdd(0x1E00,,0x0001,,);
GEL_MapAdd(0x2400,,0x0004,,);
GEL_MapAdd(0x2800,,0x001F,,);
GEL_MapAdd(0x2C00,,0x001F,,);
GEL_MapAdd(0x3000,,0x001F,,);
GEL_MapAdd(0x3400,,0x0002,,);
GEL_MapAdd(0x3800,,0x0005,,);
GEL_MapAdd(0x3C00,,0x000D,,);
GEL_MapAdd(0x4000,,0x0004,,);
GEL_MapAdd(0x4400,,0x0006,,);
GEL_MapAdd(0x4800,,0x001B,,);
GEL_MapAdd(0x4C00,,0x001B,,);
GEL_MapAdd(0x5800,,0x1000,,);
GEL_MapAdd(0x6800,,0x0004,,);
GEL_MapAdd(0x6C00,,0x0001,,);
GEL_MapAdd(0x7000,,0x0002,,);
GEL_MapAdd(0x7400,,0x0001,,);
GEL_TextOut("Gel StartUp Complete.\n");
}
OnTargetConnect()
{
C5509_Init();
}
menuitem "C5509_Configuration";
hotmenu CPU_Reset()
{
GEL_Reset();
GEL_TextOut("CPU Reset Complete.\n");
} hotmenu C5509_Init()
{
GEL_Reset();
TMCR_Reset();
GEL_TextOut("C5509 Memory Map Initialization Complete.\n");
} hotmenu C5509_USB_Enable()
{
GEL_MemoryFill(0x7000,,,0x0004);
GEL_TextOut("C5509 USB Module enabled.\n");
}
menuitem "C5509 EBSR Config";
hotmenu Data_EMIF_En()
{
GEL_MemoryFill(0x6C00,,,0x0200);
GEL_TextOut("C5509 Ext. Bus set to Data EMIF.\n");
}
hotmenu Full_EMIF_En()
{
GEL_MemoryFill(0x6C00,,,0x0201);
GEL_TextOut("C5509 Ext. Bus set to Full EMIF.\n");
}
hotmenu NonMuxed_EHPI_En()
{
GEL_MemoryFill(0x6C00,,,0x0202);
GEL_TextOut("C5509 Ext. Bus set to Non Muxed EHPI.\n");
}
hotmenu MuxEHPI_En()
{
GEL_MemoryFill(0x6C00,,,0x0203);
GEL_TextOut("C5509 Ext. Bus set to Muxed EHPI.\n");
}
menuitem "C5509 EMIF CE0 Config";
hotmenu CE0_Async16_En()
{
GEL_MemoryFill(0x0803,,,0x1FFF);
GEL_TextOut("C5509 CE0 set to 16-bit Async mode.\n");
}
menuitem "C5509 EMIF CE1 Config";
hotmenu CE1_Async16_En()
{
GEL_MemoryFill(0x0806,,,0x1FFF);
GEL_TextOut("C5509 CE1 set to 16-bit Async mode.\n");
}
menuitem "C5509 EMIF CE2 Config";
hotmenu CE2_Async16_En()
{
GEL_MemoryFill(0x0809,,,0x1FFF);
GEL_TextOut("C5509 CE2 set to 16-bit Async mode.\n");
}
menuitem "C5509 EMIF CE3 Config";
hotmenu CE3_Async16_En()
{
GEL_MemoryFill(0x080C,,,0x1FFF);
GEL_TextOut("C5509 CE3 set to 16-bit Async mode.\n");
} TMCR_Reset()
{
#define TMCR_MGS3 0x07FE
#define TMCR_MM 0x07FF
*(short *)TMCR_MGS3@IO = 0x0510;
*(short *)TMCR_MM@IO = 0x0000;
}

可以看到:GEL文件主要用来对VC5509的程序空间、数据空间、I/O空间等进行初始化,同时配置CCS开发环境,建立子菜单供用户在调试程序时选择使用。CCS启动时,Startup()函数被执行。支持Connect/Disconnect的CCS启动时,Startup()函数中不包括访问目标处理器的代码,目标处理器由回调函数OnTargetConnect()来初始化。

注意:GEL文件在CCS启动后常驻内存,在仿真器和目标系统上电的时候起到初始DSP的作用。在上电后再改变GEL文件将不会对DSP产生影响。

VC5509的通用GEL代码的更多相关文章

  1. div+css通用兼容性代码整理

    一.Div+css通用兼容性代码 你可以在css开头加入 *html{padding:0px} <style> *html{padding:0px} /* Clear Fix */ .cl ...

  2. easyui弹出层在最顶层显示跳出iframe框架通用javascript代码

    有时候我们用easyui在后台框架中弹框的时候,总是显示在框架页面里面而不是整个系统框架的上面,看着有些不太乐意. dialog = function (opts) { var query = par ...

  3. 网站安全通用防护代码(C#版本源码提供)

    每一个开发者都会意识到,网站发布之前,需要进行安全检查. 那么如何拦截攻击者注入恶意代码?如何防御诸如跨站脚本攻击(XSS).SQL注入攻击等恶意攻击行为? 针对目前常见的一些安全问题,结合目前一些常 ...

  4. JavaScript之通用addLoadEvent代码源码

    在执行javascript代码时 很多情况下 我们是希望代码在网页加载完毕后立刻进行的 大家可能会立刻想到使用window.onload时间处理函数,然后通过 window.onload=functi ...

  5. java清除所有微博短链接 Java问题通用解决代码

    java实现微博短链接清除,利用正则,目前只支持微博短链接格式为"http://域名/字母或数字8位以内"的链接格式,现在基本通用 如果链接有多个,返回结果中会有多出的空格,请注意 ...

  6. C#导入导出数据到Excel的通用类代码

    Excel文件导入导出,需引用Microsoft Excel 11.0 Object Library ///////////////////////////////////////////////// ...

  7. java中按字节获得字符串长度的两种方法 Java问题通用解决代码

    jdk本身就自带获取字符串字节长度的api了,但字符串如果包含特殊符号或全半角符号或标点符号获取到的结果会有偏差,最好的证据就是新浪微博的字数统计了 // jdk自带的获取字节长度 //注意getBy ...

  8. java 实现新浪微博内容计数器 Java问题通用解决代码

    http://www.mr3g.net/?p=220 参考sina的js版本而来,费弄最多的时间就是java对ansii码的判断了,js直接就是isascii()函数就可以实现了,java还要想办法 ...

  9. java替换文本中所有的正则符号 Java问题通用解决代码

    开发时遇到一个需求,需要对一段文本中的所有正则符号进行转义,不然使用split分割方法分割文本的话无效,想到用替换来做,全部替换正则符号为转义后的符号   贴java实现代码:   1.测试版     ...

随机推荐

  1. delphi的多线程编程

    多线程的基本概念 win 98/nt/2000/xp 是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用cpu 运行时间和资源,或者说,把cpu 时间划成片,每个片分给不同的线程 ...

  2. DevExpress 表中数据导出

    gridView1.ExportToXlsx("SampleStock.xlsx"); if (true) { DevExpress.XtraEditors.XtraMessage ...

  3. SIMATIC PCS 7 结构图

  4. Show or Hide Menu List via ng-show

    <div ng-app ng-controller='MenuController'> <ul ng-show='menuState_show'> <li>Stun ...

  5. Oracle之Linux下核心参数

    kernel.shmmax 用于定义单个共享内存段的最大值: 建议一个大的共享内存段能容纳整个SGA,这样在任何时候都不会有性能下降的隐患: 建议:32位Linux 物理内存大于4G 的设置为4G 即 ...

  6. STM32F4_TIM输出PWM波形(可调频率、占空比)

    Ⅰ.概述 上一篇文章关于STM32基本的计数原理明白之后,该文章是在其基础上进行拓展,讲述关于STM32比较输出的功能,以输出PWM波形为实例来讲述. 提供实例工程中比较实用的函数:只需要调用该函数, ...

  7. python 函数的参数对应

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经接触过函数(function)的参数(arguments)传递.当时我们根 ...

  8. Should .close() be put in finally block or not?

    The following are 3 different ways to close a output writer. The first one puts close() method in tr ...

  9. hdu 5412 CRB and Queries

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5412 CRB and Queries Description There are $N$ boys i ...

  10. hdu 2091 空心三角形

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2091 空心三角形 Description 把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为 ...