TMS320C6748开发视频教程笔记 第6章 GEL 文件

6-1 回调函数

视频地址:回调函数
在这里插入图片描述

在这里插入图片描述
  GEL(General Extension Language)通用扩展语言。

在这里插入图片描述
  熟悉:使用CCS集成开发环境时会经常用到,每一次在Debug程序的时候都会通过GEL文件来进行一些初始化操作,比如说:初始化PLL系统时钟、初始化PSC外设使能、初始化DDR时序。
  GEL(General Extension Language)是通用扩展语言的缩写。这是一种语法上类似于C语言,但是对大小写敏感,而且缺少类型检测的解析性编程语言。

  1. 类似于C语言的语法:大部分书写习惯和C语言类似
  2. 大小写敏感:
  3. 缺少类型检测:只有一种int型也就是整型数据
  4. 解析性语言:类似于VB脚本、JAVA脚本、Python等,不能编译成可执行的二进制文件,只能通过一个解析器解析运行,而GEL就是这样的一种语言,GEL文件就是承载了GEL语言编写的文件。
      GEL最主要的功能是跟CCS实现交互,我们所说的对设备的初始化就是其中的一种。

在这里插入图片描述
  首先在CCS中进入Debug模式,进行Debug工程;这个工程首先会加载仿真器配置文件,也就是扩展名为.ccxml的文件,这个文件在之前讲过,可以文件中配置一个初始化的GEL脚本,也可以在进入Debug模式后手动选择一个GEL文件。
在这里插入图片描述
然后GEL文件会首先执行一个回调函数:StartUp()。什么是回调函数呢?一般情况下我们对函数是直接使用函数名来调用的,但是我们也可以将这个函数的指针传递给另一个函数,这样在特定情况下或发生特定的事件的时候,函数就会被被动的调用,这个就是回调函数。这里也是一样的,我们在加载仿真器配置文件的GEL文件时,就会被动的调用StartUp()函数,这里主要做内存映射。为什么做内存映射?主要是告诉CCS集成开发环境我们的程序,或者说是CCS到底可以访问哪些内存。然后进入CCS的Debug窗口,在Debug窗口链接到开发板以后会执行一个OntargetConnect()回调函数,然后加载我们的程序,加载程序先会执行一个OnPreFileLoaded()回调函数,加载完成后会执行OnFileLoaded()函数。之后仿真过程就开始了。在正常情况下,我们所有的初始化函数会在OnTargetConnect()里面执行,也就是当我们使用仿真器连接目标开发板的时候会执行这样一个初始化函数,在程序正常运行以后我们还可以使用GEL文件加载一些自定义的配置脚本。在程序复位或中断的时候也可以触发相应的回调函数。

演示回调函数在什么情况下被调用

  1. 打开仿真器配置文件:Simulation.ccxml文件,Connection:Texas Instruments Simulator,Device:C674x CPU Cycle Accurate Simulator, Little Endian。CCS6以后把Texas Instruments Simulator删除了,需要从CCS5的安装文件中拷贝相应的文件到CCS6的安装路径,然后CCS6才可以用Texas Instruments Simulator及其相关配置。
  2. Target Configuration:修改一下默认的GEL文件,将默认的修改为我们自己的GEL文件。
    在这里插入图片描述
    在这里插入图片描述
    打开GEL文件源文件,进行简单讲解。
    查找CCS的帮助文件对GEL文件的函数帮助进行查找。

6-2 关键字及内建函数

在这里插入图片描述

  1. GEL_MapAdd():添加内存映射到内存映射表,使用比较多的函数,功能是添加一个段的内存到内存映射表。需要指定的几个参数:起始地址、长度、内存的页。内存的页在CMD文件中说过,按存储器的类型来对整个内存映射进行划分。可以将程序存储器例如:ROM、FLASH之类的划分到一页,而将数据存储器RAM划分到一页。然后可以将寄存器这些控制类的内存空间再划分一页。对于页的划分不是必须的,使用它的话只是方便我们的理解。当然,对于DSP C6748来说没有可供用户使用的程序存储空间,一般来说不对它进行划分。还有一个参数是内存可读或可写的标志,添加完内存映射后,CCS就可以通过我们映射的地址来访问这段内存空间。
  2. GEL_MapAddStr():添加内存映射的函数,除了指定这些参数以外,还可以给内存指定一些属性。
  3. GEL_MapDelete():内存映射删除函数,
  4. GEL_MapOn()及GEL_MapOff():初始化的功能,使能对内存映射的访问,只有打开这个功能才可以让CCS通过映射表对内存进行访问。关闭内存的访问,这样CCS就不能通过映射表对内存进行访问。
  5. GEL_MapReset():初始化的功能,清除我们所有设置的内存映射。通常在初始化的时候使用。

看一下GEL文件中具体怎么对这些函数进行使用的。

在这里插入图片描述

在这里插入图片描述
详细使用说明参考CCS的帮助文档:Built-In GEL Functions。
在这里插入图片描述
详细使用说明参考CCS的帮助文档:Built-In GEL Functions。

在这里插入图片描述
关键字:

  1. menuitemhotmenu:建立一级菜单、建立二级菜单
  2. dialog:创建一个对话框,以图形的方式跟DSP做交互,修改相应地址的值
  3. slider:创建一个滑块,可以通过鼠标移动滑块改变值。可以通过键盘的上下键,page up和page down都可以改变值。

使用GEL文件可以帮助我们更容易调试程序,在GEL的回调函数中执行一些特定的操作。
遇到GEL满足不了需求时,可以尝试使用DSS脚本(Debug Server Scripting Scripts),是一种跨平台的JAVA API函数,可以直接接入到Debug Server进行调试。可以使用的脚本语言有:JAVA、JAVA脚本、Python等。在默认情况下是支持JAVA Script语言。

推荐使用CCS5以上的版本。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点灯小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值