张璞阳2011年9月27日学习要点GEL文件回调函数存储器映射关键词疑惑?GEL是通用扩展语言(GeneralExtensionLanguage)的英文缩写,GEL是一个大小写敏感但缺少类型检测的解释性语言,只有int类型,在语法上可看作是C语言的一个子集。GEL文件GEL支持以下类型的语句:函数定义函数参数调用GEL函数返回语句if-else语句whileordowhile语句GEL注释预处理语句GEL的作用在于扩展CCSStudio的功能,可以用gel来调用一些菜单命令,对DSP的存储器进行初始化配置等,但不是必需的。当希望上电后立刻开启或实现某些功能,那么可以在项目中装载GEL文件(由TI提供或用户自行编写)来实现这个目的。但是建议对于使用仿真器和DSP功能板的仿真环境用户来说,这种GEL语言文件是没必要加入到配置中的。gel语言的重要性在于针对计算机模拟环境的用户,使用gel可以为其准备一个虚拟的DSP仿真环境,但也不是非用不可的。”GEL文件到底需不需要加载?GEL文件GEL函数库StartUp()OnTargetConnect()OnPreFileLoaded()OnFileLoaded()OnReset()OnRestart()OnHalt()7个回调函数GEL_MapAdd()GEL_MapAddStr()GEL_MapDelete()GEL_MapOn()GEL_MapOff()GEL_MapReset()6个存储器映射函数C27x_E1_memory_mapC27x_E3_memory_mapGEL_OpenWindowGEL_CloseWindowGEL_TargetTextOutGEL_TextOut6个其他函数合众达自带evmdm6437.gel文件中用到的GEL函数StartUp(){/*进行CCS存储器映射,告知目标处理器哪些空间可以访问,哪些不可以访问。*/Setup_Memory_Map();}OnTargetConnect()//对处理器进行最小初始化{Setup_Cache();//设置缓存L1P,L1D,L2Setup_Pin_Mux();//设置管脚Setup_Psc_All_On();//设置pscSetup_PLL0_594_MHz_OscIn();//设置dsp主频[DSP@594MHz][Core1.20V]Setup_PLL1_DDR_135_MHz_OscIn();//设置ddr时钟频率Setup_Aemif_8Bit_Bus();//设置Async-EMIF[8-bitbus]}GEL文件—回调函数对于CCS2.4或之后的版本,比如3.3版本启动时,如果指定的GEL文件中包含Startup()函数,Startup()函数中不用包括访问目标处理器的代码,目标处理器由回调函数OnTargetConnect()来初始化。Startup()和OnTargetConnect()函数GEL文件—回调函数在加载program/symbol(.out)文件之前该回调函数执行。在该函数中执行另外的目标处理器初始化操作以保证程序可以加载和调试是一个好的选择。例如,我们可以在该函数中初始化外部存储器。OnPreFileLoaded()函数OnFileLoaded()函数该回调函数在加载program/symbol(.out)文件之后执行。可以建立调试源搜索路径(在没有CCS工程文件的时候),设定断点和探针,完成软件的复位和重启。GEL文件—回调函数OnReset()函数当目标处理器复位后该函数被调用。如果你需要每次重新启动程序设计了软复位,GEL_Restart()在此处调用。如上是DM642EVM.gel文件中的OnReset()函数。GEL文件—回调函数OnRestart()函数OnHalt()函数当程序复位时调用该函数。当CPU停止时调用该函数。还可以通过该回调函数记录变量和寄存器的值送给GEL_TextOut()函数显示出来。GEL文件—回调函数GEL文件GEL函数库StartUp()OnTargetConnect()OnPreFileLoaded()OnFileLoaded()OnReset()OnRestart()OnHalt()7个回调函数GEL_MapAdd()GEL_MapAddStr()GEL_MapDelete()GEL_MapOn()GEL_MapOff()GEL_MapReset()6个存储器映射函数C27x_E1_memory_mapC27x_E3_memory_mapGEL_OpenWindowGEL_CloseWindowGEL_TargetTextOutGEL_TextOut6个其他函数合众达自带evmdm6437.gel文件中用到的GEL函数GEL文件—存储器映射1).GEL_MapAdd(address,page,length,readable,writeable)address:存储器起始地址page:存储器类型0表示程序存储器,1表示数据存储器length:定义的存储器长度readable:定义存储器是否可读,1可读,0不可读writeable:定义存储器是否可写,1可写,0不可写2).GEL_MapAddStr()GEL_MapAddStr是GEL_MapAdd的增强型。Itprovidesthesamereadable/writableattributesthatcanbespecifiedinGEL_MapAdd().However,italsosupportsadditionalparametersformemoryaccesssize,a“sharedmemory”tag,andspecificationofmemorywaitstates.所以GEL_MapAddStr()完全可以替代GEL_MapAdd()!作用:CCSStudio存储器映射告诉调试器目标处理器的哪些存储区域可以访问哪些不能访问。CCSStudio存储器映射一般在StartUp()函数中执行。GEL_MapAddStr(0x01800000,0,0x00010000,R|W|AS4,0);//C64x+Interrupt4).可以调用GEL_MapOn()orGEL_MapOff()来打开或关闭存储区映射。当存储区映射关闭时,CCSStudio假定可以访问所有的存储区空间。5).GEL_MapReset()函数清除所有的存储区映射。没有存储区映射时,缺省设置是所有的存储区空间都不能访问。GEL文件—存储器映射3).GEL_MapDelete()函数可以让存储器映射的一部分被隔离开,当存储器部分区域不可用时,使用该函数将其隔离开,这样调试器就不会访问该区域。GEL文件GEL函数库StartUp()OnTargetConnect()OnPreFileLoaded()OnFileLoaded()OnReset()OnRestart()OnHalt()7个回调函数GEL_MapAdd()GEL_MapAddStr()GEL_MapDelete()GEL_MapOn()GEL_MapOff()GEL_MapReset()6个存储器映射函数C27x_E1_memory_mapC27x_E3_memory_mapGEL_OpenWindowGEL_CloseWindowGEL_TargetTextOutGEL_TextOut6个其他函数合众达自带evmdm6437.gel文件中用到的GEL函数GEL文件—其他函数GEL_TextOut()输出格式化字符串到输出窗口GEL_TargetTextOut输出一个目标处理器上的格式化字符串到输出窗口GEL_CloseWindow关闭一个输出窗口GEL_OpenWindow打开一个输出窗口C27x_E1_memory_map和C27x_E3_memory_map没有查到相关资料?此外,项目添加TI公司提供的GEL文件后往往会在CCS的GEL菜单中出现相关的子菜单,用户可以使用它,主要用于程序的调试控制。GEL文件可以看成你所建项目的“秘书”,可以帮你打打杂,处理一些繁琐的事情。使用关键词!在没有加载GEL函数之前,CCS的GEL菜单下为空。GEL文件—关键词a:menuitem和hotmenu关键词添加二级子菜单b:dialog关键GEL文件—关键词c:slider关键词主要是创建一个可以改变参数的滑动条sliderparam_definition(minVal,maxVal,increment,pageIncre-ment,paramName)参数含义分别为最小值,最大值,步进,页步进和变量名。GEL文件—关键词水晶头里面有8根有色线,网线的另一头,同样的颜色,同样的颜色顺序连接到交换机或者HUB上。其实,在10M/100M的网络环境中,这8根线里,只有4根线是有用的(接触点面从左往右依次是1,2,3,6),其他都没用。1、2点用于发送数据,3、6点用于接收数据。我们单机之所以无法实现联网,其实就是1、2发出去的数据没有回应消息。而3、6则是收不到任何信号。如若有回应,则就构成了回环网络。在合众达板子上边测试了“以太网接口”,测试结果显示“FAIL...errorcode12...quitting”表示测试失败,猜想是否出在回环网线问题?不理解自闭环测试方式是什么意思?关于回环网线疑惑1?疑惑1?测试过程“#defineSW_BREAKPOINTasm(”SWBP0“);”中asm(“SWBP0”)指令是什么意思?学习《TI公司推出的CCS3.3开发环境中文入门指导书》的时候,通过SymbolBrowser(符号浏览器)查看工程源文件中有“dm6437.c”文件(该文件包含EVMDM6437_init()等函数),但是却找不到,不知为何?疑惑2?