




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 如何构建一个完整的工程重点1.完整工程的构成难点1.通用扩展语言GEL4.1 一个完整的工程由哪些文件构成n头文件:定义寄存器数据结构,全局变量n库文件:定义库函数n源文件:源代码nCMD文件:分配存储空间4.1.1头文件头文件是以.h为后缀的文件。h即为“head”的缩写。序号文件名主要内容1DSP28_Adc.h模数转换(ADC)寄存器的相关定义2DSP28_CpuTimers.h32位CPU定时器寄存器的相关定义3DSP28_DefaultISR.hF2812默认中断服务程序的定义4DSP28_DevEmu.hF2812硬件仿真寄存器的相关定义5DSP28_Device.h包含所
2、有的头文件、目标CPU类型的选择(F2812或F2810)、常用标量的定义等内容6DSP28_Ecan.h增强型CAN寄存器的相关定义7DSP28_Ev.h事件管理器(EV)寄存器的定义8DSP28_GlobalPrototypes.h全局函数的声明9DSP28_Gpio.h通用输入输出(Gpio)寄存器相关定义10DSP28_McBsp.h多通道缓冲串行口(McBsp)寄存器相关定义11DSP28_PieCtrl.hPIE控制寄存器的相关定义12DSP28_PieVect.hPIE中断向量表的定义13DSP28_Sci.h串行通信接口(SCI)寄存器的相关定义14DSP28_Spi.h串行外
3、围设备接口(SPI)寄存器的相关定义15DSP28_SysCtrl.h系统控制寄存器的相关定义16DSP28_Xintf.h外部接口寄存器的相关定义17DSP28_XIntrupt.h外部中断寄存器的相关定义4.1.2 库文件n库文件是以.lib为后缀的文件nLib即“library”的缩写nCCS中库文件的默认路径为:C:CCStudio_v3.3c2000cgtoolslibn库文件不仅包含了寄存器的地址与对应标示符的定义,还包含了C/C+运行支持库函数,如系统启动函数_c_int00等。静态库与动态库的区别(1) lib是编译时需要的,而dll是运行时需要的。如果要完成源代码的编译,有l
4、ib就够了。如果要使动态链接的程序运行起来,有dll就够了。当然,在开发和调试阶段,最好两者都有。静态库与动态库的区别(2) 一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。静态编译的lib文件优点是给用户安装时就不需要再挂动态库了。但也有缺点,就是导致应用程序比较大,而且失去了动态库的灵活性,在版本升级时,同时要发布新的应用程序才行。静态库与动态库的区别(3)
5、在动态库的情况下,有两个文件,一个是引入库(.lib)文件,一个是dll文件,引入库文件包含被dll导出的函数的名称和位置,dll包含实际的函数和数据,应用程序使用lib文件链接到所需要使用的dll文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是dll中所要调用的函数的内存地址,这样当一个或多个应用程序运行时再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。 4.1.3 源文件n源文件是以.c为后缀的文件nC即为“source”的缩写n源文件是整个工程的核心,包含了所有需要实现的功能的代码F2812常用的源文件序号文件名主要
6、内容1DSP28_Adc.cAD初始化函数2DSP28_CpuTimers.cCPU定时器初始化函数3DSP28_ECan.c增强型Can初始化函数4DSP28_Ev.c事件管理器Ev初始化函数5DSP28_Gpio.c通用I/O模块初始化函数6DSP28_Mcbsp.c多通道缓冲串行口初始化函数7DSP28_Sci.c串行通信接口初始化函数8DSP28_Spi.c串行外围接口初始化函数9DSP28_SysCtrl.c系统控制模块初始化函数10DSP28_Xintf.c外部接口初始化函数11DSP28_XIntrupt外部中断初始化函数12DSP28_InitPeripherals.c包含了其
7、他的外设初始化函数13DSP28_PieCtrl.cPIE控制模块初始化函数14DSP28_PieVect.c对PIE中断向量进行初始化15DSP28_DefaultIsr.c包含了F2812所有外设中断函数16DSP28_GlobalVariableDefs.c定义了F2812的全局变量和数据段程序CMD文件nCMD文件的作用是为代码和数据分配存储空间nCMD文件有两种:一种是分配RAM空间,用于将程序下载到RAM空间一种是分配FLASH空间,用于将程序固化到FLASH空间4.2 通用扩展语言GEL GEL是General Extended Language的缩写,即通用扩展语言,是一种类似
8、于C的解释性语言。用户可以通过在文件中使用GEL语言来创建函数,从而扩展CCS的功能。通过GEL,可以访问目标板的存储器,并为CCS的GEL菜单添加选项。 4.2.1 GEL语法 GELGEL语法支持的语句类型语法支持的语句类型序号GEL语法支持的语句1GEL函数,包括函数的定义、参数、调用2Return语句3If-else语句4While语句5GEL注释语句6预处理语句 GELGEL是是C C语言的一个子集语言的一个子集4.2.2-1 GEL函数的定义 GEL函数定义如下,斜体字表示变量: funcName(parameter1 ,parameter2 , parameter n) stat
9、ements funcName GEL函数名 parameters 有效的GEL参数 statements 有效的GEL语句定义平方函数square(a) return a*a;square(1.5)=2.25;square(3)=9。定义初始化对话框函数dialog Init(filename “File to be Loaded”, CPUname “CPU Name”,initValue “Initialization Value”) GEL_Load(filename, CPUname); a=initValue;4.2.2-2 GEL函数的参数GEL参数可以是以下任意一种:一个实际的
10、/仿真的DSP目标板符号值。一个数字常量,如果传递的是表达式或者常数值。一个字符串常量。分析GEL函数参数Initialize(a,filename,b)targVar=b;a=0;GEL_Load(filename);return b*b;下面是对函数Initialize的正确调用:Initialize(targetSymbol,“C:CCStudio_v3.3MyProjectsgpioDebuggpio.out”,28*4+2.52)。4.2.2-3 GEL函数的调用 通常可以在可以输入C表达式的任何地方调用一个GEL函数;可以从任何能接受有效C表达式的对话框中调用一个GEL函数;还可以
11、在一个GEL函数中调用另一个GEL函数。 4.2.3 GEL语句n返回语句nIf-else语句nWhile语句n注释语句n预处理语句GEL返回语句GEL在一个函数里支持标准C的返回语句,其一般形式为:return expression;GEL if-else语句GEL支持标准C的if-else语句。通用格式为:if(expression) statement1else statement2GEL while语句GEL的while语句类似于标准C的while语句,但是GEL不支持标准C的continue和break语句。通用格式为:while(expression) statementGEL注释
12、GEL支持标准C语言的注释。GEL的注释,限用字符/*和*/,可以跨越若干行。 GEL预处理语句GEL支持标准C的#define预处理关键字,这也是唯一可用的预处理关键字。下面的语句,使预处理器用给定的字符序列取代标识符,其中字符序列前后的空格都不要: #define identifier token-sequence下面的语句(第一个标识符和括号之间没有空格)是一个宏定义,其参数是标识符列表: #define identifier(identifier-list) token-sequence4.2.5 使用关键字在GEL菜单中添加GEL函数4.2.5-1 关键字hotmenu使用关键字ho
13、tmenu,将一个GEL函数添加到GEL菜单里,则该函数一旦被选中就立即执行。这个关键字用于不需要传递参数的GEL函数。其语法如下: hotmenu funcname statements 4.2.5-2 关键字dialog使用关键字dialog,向GEL菜单添加GEL函数,并为参数输入创建一个对话框。从GEL菜单选择该函数时,会出现一个对话窗口,并提示输入参数。函数定义时紧跟在参数后面的字符串用来在对话窗口里描述参数。其语法如下: dialog funcName(paramName1 “param1 definition”, paramName2 “param2 definition”,)
14、statements4.2.5-3 关键字slider使用关键字slider,向GEL菜单添加GEL函数。当从GEL菜单执行该函数时,就会出现滑动条来控制传递给GEL函数的值。每次移动滑动条,就用新的参数来调用GEL函数,该参数反映的是滑动条的位置。其格式如下:Slider parma_definition(minVal,maxVal,increment,pageIncrement,paraName) statements; 4.2.7 解读c2812.gelStartUp函数 文件里的第一个函数就是Startup,顾名思义,就是启动时执行的函数。前面已经讲到过,在Setup Code Composer Studio软件中,可以为在系统配置中的每一个处理器指定一个启动GEL文件,例如为F2812指定一个c2812.gel。当CCS启动时,GEL文件将加载到计算机的内存中,如果GEL文件内包含了Startup函数,系统就会自动执行该函数中的内容。OnReset函数 当执行Debug-Reset命令时, OnReset函数被调用。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届湖北省孝感市汉川市第二中学高三一诊考试英语试卷含答案
- 2025年云南省昆明市禄劝县一中高考英语二模试卷含答案
- 初级消防设施操作员习题库及答案
- 分析化学练习题库(含答案)
- 海洋石油钻探的深海地质调查进展考核试卷
- 电气机械设备施工安装考核试卷
- 继续拓展调味品与发酵制品相关主题考核试卷
- 电力设备维护与保养管理考核试卷
- 玻璃行业生产过程中的能源管理考核试卷
- 航标反射器设计原理考核试卷
- 全友家居导购员销售流程及常用销售话术
- 2025年建筑施工安全管理人员安全生产考试题库
- 十万头生态养猪场项目可行性报告
- 2025年安全评价师职业资格考试真题回顾与模拟试题
- 2025年陕西省高考适应性检测(三)语文试题及参考答案
- 湖北省武汉市2025届高中毕业生四月调研考试语文试卷及答案(武汉四调)
- 2024国家安全教育大学生读本题库
- 工序自检、互检、巡检制度(共8页)
- 《春夜喜雨》PPT
- 银行间债券市场非金融企业债务融资工具持有人会议规程
- 管道铺设用地征收
评论
0/150
提交评论