VC5509的通用GEL代码
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代码的更多相关文章
- div+css通用兼容性代码整理
一.Div+css通用兼容性代码 你可以在css开头加入 *html{padding:0px} <style> *html{padding:0px} /* Clear Fix */ .cl ...
- easyui弹出层在最顶层显示跳出iframe框架通用javascript代码
有时候我们用easyui在后台框架中弹框的时候,总是显示在框架页面里面而不是整个系统框架的上面,看着有些不太乐意. dialog = function (opts) { var query = par ...
- 网站安全通用防护代码(C#版本源码提供)
每一个开发者都会意识到,网站发布之前,需要进行安全检查. 那么如何拦截攻击者注入恶意代码?如何防御诸如跨站脚本攻击(XSS).SQL注入攻击等恶意攻击行为? 针对目前常见的一些安全问题,结合目前一些常 ...
- JavaScript之通用addLoadEvent代码源码
在执行javascript代码时 很多情况下 我们是希望代码在网页加载完毕后立刻进行的 大家可能会立刻想到使用window.onload时间处理函数,然后通过 window.onload=functi ...
- java清除所有微博短链接 Java问题通用解决代码
java实现微博短链接清除,利用正则,目前只支持微博短链接格式为"http://域名/字母或数字8位以内"的链接格式,现在基本通用 如果链接有多个,返回结果中会有多出的空格,请注意 ...
- C#导入导出数据到Excel的通用类代码
Excel文件导入导出,需引用Microsoft Excel 11.0 Object Library ///////////////////////////////////////////////// ...
- java中按字节获得字符串长度的两种方法 Java问题通用解决代码
jdk本身就自带获取字符串字节长度的api了,但字符串如果包含特殊符号或全半角符号或标点符号获取到的结果会有偏差,最好的证据就是新浪微博的字数统计了 // jdk自带的获取字节长度 //注意getBy ...
- java 实现新浪微博内容计数器 Java问题通用解决代码
http://www.mr3g.net/?p=220 参考sina的js版本而来,费弄最多的时间就是java对ansii码的判断了,js直接就是isascii()函数就可以实现了,java还要想办法 ...
- java替换文本中所有的正则符号 Java问题通用解决代码
开发时遇到一个需求,需要对一段文本中的所有正则符号进行转义,不然使用split分割方法分割文本的话无效,想到用替换来做,全部替换正则符号为转义后的符号 贴java实现代码: 1.测试版 ...
随机推荐
- 【译】Spark官方文档——编程指南
本文翻自官方博客,略有添加:https://github.com/mesos/spark/wiki/Spark-Programming-Guide Spark发指南 从高的面看,其实每一个Spark的 ...
- AMD平台下在Windows虚拟机中安装Mac10.8.6【Written By KillerLegend】
我的电脑CPU是AMD,以前在虚拟机中装过Windows操作系统,感觉很简单,这几天想体验一下苹果系统,未来也可能会从事Mac相关软件开发,于是从早上便兴致勃勃的开始了--于是悲剧也开始了,上网各种查 ...
- sql server查询数据库中所有表的行数
select a.name,b.rows from sysobjects a,sysindexes b where a.name = b.name order by b.rows desc
- Python判断是否是数字(无法判断浮点数)(已解决)
s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小写s.isupper() ...
- flask程序部署在openshift上的一些注意事项
https://www.openshift.com/blogs/how-to-install-and-configure-a-python-flask-dev-environment-deploy-t ...
- 263. Ugly Number
Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers ...
- 软件工程个人作业4(课堂练习&&课堂作业)
题目:返回一个整数数组中最大子数组的和. 要求:1.输入一个整型数组,数组里有正书和负数. 2.数组中连续的一个或者多个整数组,每个子数组都有一个和. 3.求所有子数组的和的最大值.要求时间复杂度为0 ...
- linux之mysqlimport的哪些变态事儿
mysqlimport是MySQL导入数据的工具,高效易用. 但掌握不透彻就会有一些变态事情.mysqlimport --host='laswebapp.mdb.game.yy.com' --port ...
- python的内存管理
1.在Python中,整数和短小的字符,Python都会缓存这些对象,以便重复使用.当我们创建多个等于1的引用时,实际上是让所有这些引用指向同一个对象. a = 1 b = 1 print hex(i ...
- ExtJS 等待两个/多个store加载完再执行操作的方法
ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架. Extjs加载Store是异步加载的,这有很多好处.但是当我们要在两个或多个不同的store加载完再执行一些操作 ...