什么是gel文件?gel文件能干什么?
gel全称General Extended Language,即通用扩展语言文件,gel文件中由类似C语言的代码构成,gel语言是一种解释性语言,gel文件扩展名为.gel;
gel文件用于(1)扩展CCS功能,比如菜单选项等,(2)通过gel可以访问目标板的存储器。
1. gel基本语法——类C
gel函数和gel参数不需要在DSP程序中定义。gel具有C语言的很多相似的东西:函数、return语句、if-else语句、while语句、与C一样的注释方式、#define,这些函数或语句的用法也与C中的非常类似。
GEL函数
funcName(param1 "discription" [,param2 "discription", param3 "discription",...])
{
statements;
}
gel函数中不用声明返回类型和参数类型,但函数中可以使用return语句返回;
参数使用“参数+字符串类型的描述”组成,参数不需要定义,可以是以下的任意一种:实际/仿真的DSP目标板的符号值;数字常量(表达式或常值);字符串常量。
GEL函数调用:通常可以在输入C表达式的任意地方调用GEL函数,也可以在另一个GEL函数中调用GEL函数。GEL函数无法递归调用。
GEL语句
返回语句:
return [expression];
条件语句:
-
if (exp)
-
statements 1;
-
else
-
statements 2;
循环语句:
-
while (exp) {
-
statements;
-
}
GEL预处理
#define identifier(arguments list) token-expression
GEL注释
// 注释
/* 注释 */
2. gel特有关键字
menuitem/hotmenu
在CCS v4.2中测试,menuitem添加Scripts菜单下的子菜单项,hotmenu添加menuitem定义菜单项的子菜单项,参考本文后面的例子。
这两个关键字声明的函数都不需要参数,比如
-
menuitem "Addressing Modes";
-
hotmenu C27x_Mode()
-
{
-
AMODE = 0;
-
OBJMODE = 0;
-
}
-
-
hotmenu C28x_Mode()
-
{
-
AMODE = 0;
-
OBJMODE = 1;
-
}
-
-
hotmenu C2xLP_Mode()
-
{
-
AMODE = 1;
-
OBJMODE = 1;
-
}
上面代码将产生如下的菜单结构,
Scripts
-Addressing Modes
- C27x_Mode
- C28x_Mode
- C2xLP_MODE
dialog
向menuitem定义的菜单中添加一个入口子菜单,并在点击子菜单时弹出对话框。
menuitem "MyFunc"
dialog InitTarget(StartAddr "Starting Address", EndAddr "Ending Address")
{
statements;
}
dialog RefreshTarget()
{
statements;
}
slider
添加滑动条,每次移动滑动条都用滑动条上的新值重新调用GEL文件,定义格式如下,
slider param_def(minVal, maxVal, increment, pageIncrement, paramName)
{
statements;
}
|