CCS:GEL文件

2023-10-27

gel文件的应用

GEL文件与CMD文件

GEL文件的功能同cmd的功能基本相同,用于初始化DSP。但它的功能比cmd的功能有所增强,GEL在CCS下有一个菜单,可以根据DSP的对象不同,设置不同的初始化程序。

GEL--通用扩展语言,无类型语言,只有int类型,当CCS运行时首先执行这个GEL函数
当我们自己需要设定某功能上电后立即开启,那么可以在这个函数里面实现。

 GEL(General Extension Language 通用扩展语言)是一种解释语言,类似与C语言,这个文件中的函数是按照先后顺序执行的。

 GEL函数可以用来配置CCS开发环境,也可以用来初始化目标CPU。当启动CCS时,扫描启动的GEL文件并加载文件中包含的GEL函数,如果文件中包含Startup()函数,则包含的所有函数都运行
 

gel文件中主要包含PLL, DDR的初始化,具体你可以打开gel文件看看。

在CCS环境下调试时,在load程序之前可以选择运行gel文件,这样在你的应用程序中就不需要再次进行PLL及DDR的初始化。

在CCS环境下也可以不用gel文件,此时需要在程序运行起来后在应用程序中初始化PLL及DDR等,但是需要注意的是由于DDR未被初始化,所以此时的代码不能放在DDR。

在脱离CCS环境调试时,在加载程序前需要保证PLL及DDR初始化。

GEL文件中主要是对芯片的初始化。

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

1、GEL文件的改变

使用CCS Setup工具,可以为在系统配置中的每一个处理器指定一个启动GEL文件。当CCS启动时,GEL文件加载到PC机的内存中,如果定义了StartUp()函数则执行该函数。在CCS(V2.3或更早版本),主机和目标板的初始化工作都在Startup()函数中执行。但对于支持Connect/Disconnect的CCS,这样的GEL文件有可能没有正确执行,因为CCS启动时和目标处理器是断开的。当Startup()函数试图访问目标处理器时会出错。一个新的回调函数OnTargetConnect()来执行目标处理器的初始化工作。

2、GEL回调函数

(1)Startup()函数

如果指定的GEL文件中包含Startup()函数,当CCS启动时执行Startup()函数。支持Connect/Disconnect的CCS启动时,Startup()函数中不包括访问目标处理器的代码,目标处理器由回调函数OnTargetConnect()来初始化。

推荐:

建立基本的CCS内存映射关系(不需要访问目标处理器);任何不需要访问目标处理器的基本初始化。

不推荐:

Get_Reset()(该函数通过仿真器复位目标处理器);通过GEL_BreakPtAdd()设置断点;GEL_TextOUT()和GET_OpenWindow(),因为StartUp()执行时CCS的任何控制窗口还没有打开。

不支持Connect/Disconnect的CCS GEL文件中的StartUp()函数:

StartUp()

{

setup_memory_map();

GEL_Reset();

init_emif();

}

支持Connect/Disconnect的CCS GEL文件中的StartUp()函数:

StartUp()

{

setup_memory_map();

}

(2)OnTargetConnect()函数

推荐:

绝对最小的系统初始化处理,保证CCS在目标处理器上处于一种可信赖的状态。例如:禁止看门狗时钟、DSP复位结束。

每一次和目标处理器建立连接时都调用OnTargetConnect()函数。

OnTargetConnect()

{

// place critical target initialization steps here

GEL_Reset();

init_emif();

}

对某些平台,必须调用GEL_Reset()函数使得CCS处于一种“Good”状态,可以通过测试来确定是否需要调用GEL_Reset()函数。应该尽可能的降低GEL startup functions复杂度——包括减少GEL_Reset()的调用。

(3)OnPreFileLoaded()函数

在加载program/symbol(.out)文件之前该回调函数执行。在该函数中执行另外的目标处理器初始化操作以保证程序可以加载和调试是一个好的选择。

OnPreFileLoaded()

{

FlushCache();

IER = 0;

IFR = 0;

init_emif();

}

(4)OnReset() 函数

当目标处理器复位后该函数被调用。如果需要每次重新启动程序,设计了软复位,GEL_Restart()在此处调用。

OnReset(int nErrorCode)

{

init_emif();

}

(5)OnRestart() 函数

当程序复位时调用该函数。

OnRestart(int nErrorCode )

{

GEL_TextOut("Turn off cache segmentn");

*(int *)0x1848200 = 0;

*(int *)0x1848204 = 0;

*(int *)0x1848208 = 0;

*(int *)0x184820c = 0;

GEL_TextOut("Disable EDMA eventn"); */

*(int *)0x01A0FFA8 = 0;

*(int *)0x01A0FFB4 = 0;

*(int *)0x01A0FFB8 = 0XFFFFFFFF;

*(int *)0x01A0FFE8 = 0;

*(int *)0x01A0FFF4 = 0;

*(int *)0x01A0FFF8 = 0xFFFFFFFF;

IER = 0;

IFR = 0;

}

3、存储器映射

CCS存储器映射告诉调试器目标处理器的哪些存储区域可以访问哪些不能访问。CCS存储器映射一般在StartUp()函数种执行。

(1)GEL_MapAdd()函数

该函数添加一个存储区域到存储区映射中。

(2)GEL_MapOn()和GEL_MapOff()函数

可以调用GEL_MapOn() or GEL_MapOff()来打开或关闭存储区映射。当存储区映射关闭时,CCSStudio假定可以访问所有的存储区空间。

(3)GEL_MapReset()函数

GEL_MapReset()函数清除所有的存储区映射。没有存储区映射时,缺省设置是所有的存储区空间都不能访问。

4、尽量避免使用GEL初始化

可以考虑在GEL文件中使用GEL_MapAdd()建立存储区映射以准许CCS可以调试,但是不在GEL文件中执行外设设置例如:EMIF寄存器初始化、看门狗禁止。

因为GEL语法和C兼容,inif_emif()函数可以在.c文件中实现,和应用程序链接在一起。但是要注意以下几点:

使用“volatile”来保证变量不被优化。例如:

*(volatile int *)EMIFA_SDRAMTIM = 0x00000618;

在编译调试过程中避免在GEL文件中进行外设设置,当到达了最终程序时,需要一个智能加载软件从FLASH或主机加载程序对EMIF进行设置,然后通过(E)DMA或memcpy()拷贝程序/数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CCS:GEL文件 的相关文章

随机推荐

  • 每天讲解一点PyTorch 【7】np.transpose torch.from_numpy

    今天开始讲解 numpy中transpose支持高维度 np transpose torch from numpy float img cv2 imread img path img shape cv2 imshow img img img
  • android进程间通信!该如何高效实用Kotlin?论程序员成长的正确姿势

    开头 很多人工作了十年 但只是用一年的工作经验做了十年而已 高级工程师一直是市场所需要的 然而很多初级工程师在进阶高级工程师的过程中一直是一个瓶颈 移动研发在最近两年可以说越来越趋于稳定 因为越来越多人开始学习Android开发 造成市场参
  • 织梦系统基本参数php,织梦后台系统基本参数新增的变量数据库修改

    织梦后台系统设置 系统基本参数里面除了系统自带的参数之外 很多站长为了效果也增加了不少自定义的变量 但是如果有的变量不需要 或者是更换模板变量功能没起到作用 就需要修改自定义变量 修改自定义变量有二种途径和方法 方式一 推荐用这个 直接通过
  • np.frombuffer()

    numpy frombuffer numpy frombuffer buffer dtype float count 1 offset 0 Interpret a buffer as a 1 dimensional array Parame
  • 解决谜题获取3个月Jetbrains全家桶正版使用权

    最近 Jetbrains没事搞事 搞了一个解谜活动 成功解答出谜题的同学可以获得三个月Jetbrains全家桶的正版使用权 就算没有这个奖励 光是这个解谜过程就非常有意思 所以我就来给大家介绍一下 当然其实我也是看别人的文章介绍之后才发现有
  • 最新综述:自动驾驶中的多模态三维目标检测

    PaperWeekly 原创 作者 张一帆 学校 华南理工大学本科生 研究方向 CV Causality Abstract 在过去几年 自动驾驶取得了蓬勃的发展 但是由于驾驶环境的复杂多变 实现完全自动依然是一个非常艰巨的任务 自动驾驶汽车
  • Linux 入侵痕迹清理技巧(仅限学习安全知识)

    vim bash history 查看历史操作命令 history history记录文件 more bash history history c echo gt bash history 使用vim打开一个文件 vi test txt 设
  • 键盘 Fn 键 的锁定与解锁

    Dell 笔记本 Fn Esc 锁定与解锁切换
  • Spring+ quartz 之 多任务动态定时(任务中起任务)

    参见上一篇Spring quartz 多任务定时 执行 与cronExpression表达式 可以知道如何设置多个规则的定时任务 但有时需要客户自己设置指定的时间来启动新的任务处理不同的事情 实现方式 用户在前台自行维护任务列表和任务执行时
  • 小程序上线发布后图片不显示

    造成的原因和解决办法 图片的url里面有中文 图片路径中文会造成解析乱码 发布线上就更加解析会有问题 及时将图片路径转成数字或者英文标题 再同步线上更新 图片的HTTP应为小写的http以及图片的后缀为小写的 png或者 jpg 微信小程序
  • 个人对爬虫框架Scrapy的理解

    Scrapy是一个为了爬取网站数据 提取结构性数据而编写的应用框架 我们只需要实现少量代码 就能够快速的抓取的数据内容 Scrapy使用了Twisted一部网络框架来处理网络通讯 可以加快我们的下载速度 不用自己去实现异步框架 并且包含了各
  • python模拟(验证码)登录

    模拟 验证码 登录流程 1 验证码的识别 获取验证码图片的文字数据 2 对post请求进行发送 处理请求参数 3 对响应数据进行持久化存储 示例网站 https www nowapi com app account login 云打码平台
  • 全面了解 Nginx 主要应用场景(转)

    作者 RayeWang www raye wang 2017 02 24 quan mian liao jie nginxdao di neng zuo shi yao 前言 本文只针对Nginx在不加载第三方模块的情况能处理哪些事情 由于
  • VBA下弹框打开excel文件并读取数据

    话不多说 直接上代码 Sub LoadExcelData Dim wkbk As Workbook 定义一个工作薄 Dim myFileName As String 定义要读取的文件路径 Dim dataRow As Integer 定义数
  • 小程序报错解决

    错误一 http localhost 3000 不在以下 request 合法域名列表中 点击详情勾选不校验https即可
  • mcu调试之日志格式化输出的一种方法

    简介 在日后的维护过程中也是很宝贵的东西 怎么能说删除就删除呢 这里提供日志格式化输出的一种方式 主要用于平时调试 那些调试信息是那么的宝贵 代码示例 include
  • 填充书架

    leetCode 1105 填充书架 附近的家居城促销 你买回了一直心仪的可调节书架 打算把自己的书都整理到新的书架上 你把要摆放的书books都整理好 叠成一摞 从上往下 第i本书的厚度为books i 0 高度为books i 1 按顺
  • 【OpenCV】 人脸识别

    目录 一 前言 二 人脸识别案例 实现步骤及完整代码 步骤1 灰度化处理 步骤2 将灰度图再次进行 行列压缩 步骤3 直方图均值化 步骤4 使用模型 对每一个像素点遍历 图像甄别 人脸识别案例 源码分享 结果测试 可对人脸框选识别 三 车辆
  • Oracle内存管理PGA详解

    当用户进程连接到数据库并创建一个对应的会话时 Oracle服务进程会为这个用户专门设置一个PGA区 用来存储这个用户会话的相关内容 当这个用户会话终止时 系统会自动释放这个PGA区所占用的内存 这个PGA区对于数据库的性能有比较大的影响 特
  • CCS:GEL文件

    gel文件的应用 GEL文件与CMD文件 GEL文件的功能同cmd的功能基本相同 用于初始化DSP 但它的功能比cmd的功能有所增强 GEL在CCS下有一个菜单 可以根据DSP的对象不同 设置不同的初始化程序 GEL 通用扩展语言 无类型语