7.9.1.1.GEL 函数定义¶
GEL 函数的定义方式与 C 语言类似:
funcName( Parameters1, Parameters2 ...Parameters6 ) { statements }
- funcName:GEL 函数的名称
- Parameters:有效的 GEL 参数
- statements:有效的 GEL 语句
GEL 函数在 GEL 文件(扩展名为 .GEL)内定义。一个 GEL 文件可以包含许多 GEL 函数定义。
与 C 语言不同,GEL 函数不需要在源文件顶部或任何头文件中定义其原型(返回类型、参数)。所有函数都是全局函数,数据类型自动从传递的值中获取。
GEL 函数定义不能嵌入到另一个 GEL 函数定义中。
___
示例:
一个简单的函数:
在下面的示例中,将对 GEL 参数 a 进行平方运算:
square(a) { return a*a; }
此函数可由其他 GEL 函数使用,也可直接从表达式视图中调用:
由于 a 是一个 GEL 参数,因此无需在函数或目标代码中定义。
使用目标变量:
GEL 函数还可以修改目标上的数据。在下面的示例中,符号 limitCount、currentIteration 和 nextIteration 必须存在于加载到目标器件的代码中。
函数作为 GEL 文件的一部分加载后,可以使用指定的参数从任何其他位置(表达式视图、其他 GEL 函数)执行。像 MyFunc(100, 0)
或 MyFunc(200)
这样的调用都是有效的。
MyFunc(maxValue, currentValue) { if (maxValue == currentValue) limitCount = maxValue; else { currentIteration = currentValue; nextIteration--; } }
使用对话框和说明:
每个参数后面都可以有一个描述其用法的可选字符串。此说明用于使用 dialog 函数时创建的对话框中。
在下面的示例中,对话框 GEL 函数 Init 有三个参数,每个参数都有其自己的描述:
dialog Init(filename "File to be Loaded", cpuName "CPU Name", initValue "Initialization Value") { GEL_Load(filename, cpuName); a = initValue; }
在上面的 Init 函数中,变量 a 不是在函数参数中定义的。因此,必须在加载到目标器件的代码上定义它。否则,将产生错误。
此对话框会将 Init 添加到 Scripts 菜单栏。
点击函数 Init,将显示以下对话框:
上述 Init 函数将调用内置函数GEL_Load。此函数需要以下参数:
- 一个标识第一个参数的文件名的字符串
- 一个带有 CPU 名称的可选参数。此参数在设置多个内核或处理器时非常有用。
- 一个初始化值
也可以从 GEL 文件内部调用 dialog 函数。对该函数的有效调用示例如下:
Init("c:\\workspace\\myProject\\Debug\\myProject.out", "C28xx_CPU1", 0);
___
另请参阅: