1 GEL文件基本作用
当CCSStudio启动时,GEL文件加载到PC机的内存中,如果定义了StartUp()函数则执行该函数。在CCSStudio(V2.3或更早的版
本中),主机和目标板的初始化工作都在Startup()函数中执行。但是对于支持Connect/Disconnect的CCSStudio(V2.4或之后的
版本,尤其3.1版本),这样的GEL文件有可能没有正确的执行,因为CCSStudio启动时和目标处理器是断开的。这个时候,当
Startup()函数试图访问目标处理器时会出错。
因此,V2.4或之后的版本,尤其3.1版本CCS启动时候,一个新的回调函数OnTargetConnect()来执行目标处理器的初始化工作
2 GEL回调函数
2.1 Startup()函数
    如果指定的GEL文件中包含Startup()函数,当CCSStudio启动时执行Startup()函数。支持Connect/Disconnect的
CCSStudio的启动时,Startup()函数中不包括访问目标处理器的代码,目标处理器由回调函数OnTargetConnect()来初始化。
     推荐:
l         建立基本的CCSStudio内存映射关系(不需要访问目标处理器)
l         任何不需要访问目标处理器的基本初始化
不推荐:
l         Get_Reset()(该函数通过仿真器复位目标处理器)
l         通过GEL_BreakPtAdd()设置断点
l         GEL_TextOUT()和GET_OpenWindow(),因为StartUp()执行时CCSStudio的任何控制窗口还没有打开
不支持Connect/Disconnect的CCSStudio GEL文件中的StartUp()函数:
StartUp()
{
setup_memory_map();
GEL_Reset();
init_emif();
}
支持Connect/Disconnect的CCSStudio GEL文件中的StartUp()函数:
StartUp()
{
setup_memory_map();
}
2.2 OnTargetConnect()函数
绝对最小的系统初始化处理,保证CCSStudio在目标处理器上处于一种可信赖的状态。例如:禁止看门狗时钟、DSP复位结束
每一次和目标处理器建立连接时都调用OnTargetConnect()函数。
OnTargetConnect()
{
// place critical target initialization steps here
GEL_Reset();
init_emif();
}
对某些平台,必须调用GEL_Reset()函数使得CCSStudio处于一种“Good”状态,可以通过测试来确定是否需要调用GEL_Reset
()函数。应该尽可能的降低GEL startup functions复杂度-包括减少GEL_Reset()的调用。
2.3 OnPreFileLoaded()函数
在加载program/symbol(.out)文件之前该回调函数执行。在该函数中执行另外的目标处理器初始化操作以保证程序可以加载和
调试是一个好的选择。
OnPreFileLoaded()
{
FlushCache();
IER = 0;
IFR = 0;
init_emif();
}
2.4 OnReset()函数
当目标处理器复位后该函数被调用。如果你需要每次重新启动程序设计了软复位,GEL_Restart()在此处调用。
*(int *)0x1848204 = 0;
*(int *)0x1848208 = 0;
*(int *)0x184820c = 0;
GEL_TextOut("Disable EDMA event\n"); */
*(int *)0x01A0FFA8 = 0;
*(int *)0x01A0FFB4 = 0;
*(int *)0x01A0FFB8 = 0XFFFFFFFF;
*(int *)0x01A0FFE8 = 0;
*(int *)0x01A0FFF4 = 0;
*(int *)0x01A0FFF8 = 0xFFFFFFFF;
IER = 0;
IFR = 0;
}
3 存储器映射
CCSStudio存储器映射告诉调试器目标处理器的那些存储区域可以访问那些不能访问。CCSStudio存储器映射一般在StartUp()
函数种执行。
3.1 GEL_MapAdd()函数
该函数添加一个存储区域到存储区映射中。
3.2 GEL_MapOn()和GEL_MapOff()函数
可以调用GEL_MapOn() or GEL_MapOff()来打开或关闭存储区映射。当存储区映射关闭时,CCSStudio假定可以访问所有的存储
区空间。
3.3 GEL_MapReset()函数
GEL_MapReset()函数清除所有的存储区映射。没有存储区映射时,缺省设置是所有的存储区空间都不能访问。
4 尽量避免使用GEL初始化
可以考虑在GEL文件中使用GEL_MapAdd()建立存储区映射以准许CCSStudio可以调试,但是不在GEL文件中执行外设设置例如:
EMIF寄存器初始化、看门狗禁止。
因为GEL语法和C兼容,inif_emif()函数可以在.c文件中实现,和应用程序链接在一起。但是要注意以下几点:
使用“volatile”来保证变量不被优化。例如:
*(volatile int *)EMIFA_SDRAMTIM = 0x00000618;       在编译调试过程中避免在GEL文件
中进行外设设置,当到达了最终程序时,需要一个智能加载软件从FLASH或主机加载程序对EMIF进行设置,然后通过(E)DMA或
memcpy()拷贝程序/数据。
    加载了GEL文件以后,并不一定所有的寄存器都是复位值,主程序中没有赋值的寄存器并不一定就是它的上电复位值,
因为加上了仿真器,加载了GEL文件,起到了作用。
     这一点一定要好好注意

gel文件的作用——摘自百度相关推荐

  1. 【DSP开发】gel文件编写

    以下转载自:http://blog.csdn.net/henhen2002/article/details/4573447 GEL--通用扩展语言,无类型语言,只有int类型,当CCS运行时首先执行这 ...

  2. DSP的GEL文件介绍

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

  3. 详述 hosts 文件的作用及修改 hosts 文件的方法

    1 什么是hosts文件? hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联" 数据库 ".当用户在浏览器中输入一个需要登 ...

  4. dsp的gel文件认识

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

  5. CCS中的.gel文件

    CCS的GEL语言是一种交互式的命令,它是解释执行的,即不能被编译成可执行文件.它的作用在于扩展了CCS Studio的功能,可以用gel来调用一些菜单命令,对DSP的存储器进行初始化配置等. 对于不 ...

  6. DSP的GEL文件详解

    转自:点击打开链接 GEL(Genenal Extension Language,通用扩展语言),可以配置CCS的工作环境和初始化CPU,一句话---初始化目标板. 1.初始化外部存储空间 在开始学习 ...

  7. DSP_F28335入门(1)——新建工程之gel文件解释

    https://blog.csdn.net/wordwarwordwar/article/details/83653611 GEL文件是配合CCS集成环境使用的,起到配置CCS环境和初始化dsp环境的 ...

  8. DM642中gel文件

    关于CCS中gel文件的使用,可以参考TI的应用笔记SPRAA74A---Creating Device Initialization GEL File. gel文件在启动CCS的时候一般用来初始化器 ...

  9. 关于CCS中配置DSP时用到的.gel文件

    1 GEL作用 GEL全称General Extended Language,即通用扩展语言文件,GEL文件中由类似C语言的代码构成,是一种解释性语言,文件扩展名为.gel:关于GEL文件作用的个人理 ...

最新文章

  1. 汇编语言--div指令
  2. vue指令写在html中的原理,详解Vue中的MVVM原理和实现方法
  3. 说实话,电脑存储空间大了之后对于你的能力有很大的要求
  4. Delphi 中将对象作为参数传递的使用
  5. Unity 2017 Game Optimization 读书笔记 Dynamic Graphics (5) Shader优化
  6. 张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结
  7. 企业级负载均衡如何实现
  8. paip.C#.NET多线程访问 toolStripStatusLabel
  9. oracle之单行函数之分组函数
  10. ROS仿真-记一次错误 gazebo-2 process has died exit code 2
  11. [求助]请教一个问题!
  12. 【李宏毅2020 ML/DL】P62-65 More about Auto-encoder
  13. 高性能微服务 Dubbo RPC Redis 分布式框架
  14. logistic回归分析优点_SPSS教程|二分类logistic回归及SPSS操作
  15. js代码实现点击按钮出现60秒倒计时
  16. 一元三次方程的解法史
  17. 使用 Kind 在 5 分钟内快速部署一个 Kubernetes 高可用集群
  18. html短信验证登录
  19. android 通知栏图标变白色方格
  20. Python 调试Webservice接口

热门文章

  1. 10个顶尖的CSS编辑器
  2. 计算机视觉基础--边缘检测
  3. Android面试攻略
  4. 滴滴安全技术获美国专利认证 争取技术主导权
  5. 冷月手撕408之操作系统(5)-进程概述
  6. initial、inherit、unset、revert和all的区别
  7. 大工之星编程挑战赛第一周题解
  8. 简历个人计算机水平怎么xie,个人简历计算机水平书写格式
  9. 蓝桥杯第八届真题 :迷宫
  10. 先瑞达医疗冲刺IPO,上市前夕向股东派发股息超5000万美元