CCS5DSP2812工程文件构建.docx_第1页
CCS5DSP2812工程文件构建.docx_第2页
CCS5DSP2812工程文件构建.docx_第3页
CCS5DSP2812工程文件构建.docx_第4页
CCS5DSP2812工程文件构建.docx_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

总的说一个完整的工程需要由库文件(.lib),头文件(.h),源文件(.c)和 CMD 文件(.CMD)组成,缺一不可。至于各文件内容将在以后中详细说明(1)TI 库的移植1、库文件(.lib)rts2800_ml.lib-大存储器模式IQmath.lib-Q化数学函数库2、TI库 源文件头文件 DSP281x_common DSP281x_headers注意DSP281x_SWPrioritizedDefaultIsr.cDSP281x_SWPiroritizedPieVect.cDSP281x_XintfBootReset.asm这三个文件有需要时才添加3、CMD 文件4、修改TI库两个头文件a、DSP281x_headersincludeDSP281x_Device.h#defineTARGET1/-/ User To Select Target Device:#defineDSP28_F2812TARGET#defineDSP28_F28110#defineDSP28_F28100b、DSP281x_commonincludeDSP281x_Examples.h#define CPU_RATE6.667L/ for a 150MHz CPU clock speed (SYSCLKOUT)/#define CPU_RATE7.143L/ for a 140MHz CPU clock speed (SYSCLKOUT)5、编写文件 包含头文件#include DSP281x_Device.h/ DSP281x Headerfile Include File#include DSP281x_Examples.h/ DSP281x Examples Include File(2)TI库文件解释文件描述DSP281x_GlobalPrototypes.h这个文件包含外设详细的函数原型DSP281x_Adc.cADC具体函数和宏DSP281x_CpuTimers.cCPU-Timer具体函数和宏DSP281x_Ecan.c增强CAN详细函数和宏DSP281x_Ev.cEV详细函数和宏DSP281x_Gpio.cGPIO详细函数和宏DSP281x_Mcbsp.cMcBSP详细函数和宏DSP281x_PieCtrl.cPIE控制详细函数和宏DSP281x_Sci.cSCI详细函数和宏DSP281x_Spi.cSPI详细函数和宏DSP281x_SysCtrl.c系统控制(看门够,时钟,pll等) 详细函数和宏DSP281x_Xintf.cXINTF详细函数和宏DSP281x_Xintrupt.c外部中断详细函数和宏DSP281x_CodeStartBranch.asm当代码导入Flash,OTP或H0 SARAM存储器时,此程序确定代码从哪个分支开始执行。在使用包含的c 初始程序之前,需要关闭看门狗。若程序从xintf zone 7引导执行,择使用DSP281x_XintfBootReset.asm替代。DSP281x_XintfBootReset.asm这个文件说明程序从xintf zone 7引导。 在使用包含的c 初始程序之前,需要关闭看门狗。如果代码导入Flash,OTP或H0 SARAM存储器时,使用DSP281x_CodeStartBranch.asm代替它。DSP281x_DBGIER.asm汇编函数控制来自C的DEBIER寄存器DSP281x_usDelay.asm在微秒内插入一个延时的汇编函数。这个函数是依赖时钟周期的,它必须从具有0 等待-状态的 RAM执行。DSP281x_CSMPasswords.asm包含在工程中,编译代码安全模式密码和保留位置。DSP281x_SWPrioritizedDefaultlsr.c默认的中断服务外壳程序。 你可以选择填充一个函数或将你的ISR重新映射到PIE向量表。注意:这个文件对DSPBIOS 工程没有用。DSP281x_SWPrioritizedLevel.hDSP281x_Defaultlsr.c中的ISR函数原型声明。注意: 这个文件对DSPBIOS 工程没有用。DSP281x_SWPrioritizedPieVect.cDSP281x_Defaultlsr.c中创建带指向ISR函数指针的PIE向量表初始化。为了初始化到默认的ISR位置,这个示例能够被拷贝到PIE向量表。DSP281x_Defaultlsr.c完整PIE向量表的中断服务外壳程序(ISRs)。可以选择填充一个函数或将你的ISR重新映射到PIE向量表。注意:这个文件对DSPBIOS 工程文件没有用。DSP281x_Defaultlsr.hDSP281x_Defaultlsr.c中的ISR函数原型声明。注意: 这个文件对DSPBIOS 工程文件没有用DSP281x_PieVect.c此处是DSP281x_Defaultlsr.c中ISR函数的一个实例,创建一个带指针的PIE向量表结构初始化。为了初始化到默认的ISR位置,可以拷贝这个实例到PIE向量表。详情请看DSP281x_HeaderFiles_QuickStart_Readme.pdfDSP281x_HeaderFiles_QuickStart中文版.doc(3)CMD文件1、用于分配编译产生的各个段至存储器 ,用来分配存储空间的DSP281x_headerscmdDSP281x_Headers_BIOS.cmdDSP281x_headerscmdDSP281x_Headers_nonBIOS.cmd2、CMD 文件又分成两种。一种是分配 RAM 空间的- 微计算机模式(仿真模式) ,用来将程序 load 到 RAM 内进行调试,因为我们大部分时间都是在调试程序,所以多用这类 CMD,另一种是分配 FLASH 空间-微处理器模式,当程序调试完毕后,需要将其烧写到 FLASH 内部进行固化,这个时侯我们就需要使用这类 CMD 文件了注:复位时,芯片采样XMP/MC引脚,以判断采用何种模式运行。如果XMP/MC=1(微处理器模式),第7外部接口(XINTF zone 7)使能,复位向量从外部存储器中取得。此时,必须确保复位向量指向有效的代码执行地址。当然,这种模式只有在具有外部接口的器件上才可以采用,如2812。如果XMP/MC=0(微计算机模式),第7外部接口(XINTF zone 7)不使能,使能内部boot ROM。此时,复位向量从内部boot ROM中取得。没有外部接口的芯片在内部将XMP/MC拉低,以保证总会使能内部boot ROM。(建议此时用0殴电阻)详情请看281x上电引导顺序.docTMS320x281x Boot ROM Reference Guide.pdf(4)实战建立自己的工程文档1、这里只讨论CCSv5 建立的方法,其实是大同小异的,平时多点即可选择自己的Workspace建立工程其他的选择默认即可,点Finish 即可完成若没有Project Explorter 可以在View点即查看,现在点击Project -Build Project 进行工程编译在Console中可以看到xx.out文件即编译成功,可以下载程序并调试烧写等工作(若没有Console 可以在View点击打开)若编译时出现问题可在Problems查看2、工程文件已经完成一半,下面进行复制文件(请参考前四步)DSP281x_headers DSP281x_common 可在TI官网下载,也可以用我的,都是一样的回到CCSv5 点击工程文件右键,Refresh 重新载入文件(这效果比CCS3.3好)3、以下取消没有用的文件没有作用的文件如下(灰色的):接着删除建立工程时自动生成的文件2812_RAM_lnk.cmd 或者采用上面文件即消建立USER文件夹,便于文件管理,如下注意F2812.cmd 为FLASH启动的CMD文件,我将其剪切到USER文件并在main函数中添加代码FLASH启动代码#if 1/ Copy InitFlash function code and Flash setup code to RAMMemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);/ This function must reside in RAMInitFlash();#endif2812_RAM_lnk.cmd 为RAM启动的CMD文件,若使用RAM模式,请取消FLASH启动代码,即可4、添加头文件路径添加如下:有人说没有必要添加那么多文件夹,答案是的,确实没有必要添加那么多,但是多了也没有影响,何必在这些方面讨论添加好后重译rebuild一下文件,(当遇到不太明白的错误时,建议先clear 再rebuild工程)5、以下为修改文件如下执行build project时,运行的时候出现“warning: creating .stack section with default size of 400 (hex) words.”的警告信息,解决方法在在CMD文件添加以下代码-stack 0x400或者参考“编译问题收集”6、再添加 cpu_def.h其定义一些自已试用的数据类型 如以下:typedef CPU_INT08U uint8; /0 255typedef CPU_INT16U uint16; /0 65 535/typedef unsigned intuint16;typedef CPU_INT32U uint32; /0 4 294 967 295/typedef unsigned long uint32;typedef CPU_INT08S sint8;typedef CPU_INT16S sint16;/typedef signedintsint16;typedef CPU_INT32S sint32; /typedef signedlong sint32;typedef sint8 int8;可参考DSP281x_Device.h 自行编写#ifndef DSP28_DATA_TYPES#define DSP28_DATA_TYPEStypedef int int16;typedef long int32;typedef long long int64;typedef unsigned int Uint16;typedef unsigned long Uint32;typedef unsigned long long Uint64;typedef float float32;typedef long double float64;#endif再在includes.h添加其头文件,添加方法请看步骤4、57、备份点击工程文件右键,“clear project” 然后在到文件夹存放的地方压缩即可然后点击工程文件右键“Delete”(方便以后添加)(8)添加TargetConfigurationFile 就是仿真器的连接文件,我以XDS100V1为例,其他的仿真器也是大同小异的建立好之后,一定要点击rebuild 工程意义一个工程只能有一个TargetConfigurationFile 可以在view-TargetConfiguration 打开管理,对多余的进行管理点击绿色小虫即进入调试模式其他的观察变量、设置断点 Graph.在以后课程进行介绍(9)以上方面已经建立自己的工程模板,以下就介绍如何调用工程模板,方法如下解压缩我们(7)步骤中的压缩文件,按以下操作选择压缩后的文件夹点击Finish即可导入应用点击Rename 文便自己以后管理,以下以LED为例“rebuild”一下,即可建立自己新的工程文件其他项目也以此方法题外话,有人说DSP281x_common 、DSP281x_headers 很多工程都用到,没有必要每个工程有份,但这样做法一个好处时方便与人交流,程个工程文件是独立的。在可以看出,不会受外部的文件的影响。导入其他人做的工程时,编译不通过一般情况下都是#include search path 设置不正常造成的,修改一下即可。(5)编译问题收集(1)执行build project时,运行的时候出现“warning: creating .stack section with default size of 400 (hex) words.”的警告信息,不知,以为是CMD文件出现问题,看了半天都找到原因,提示说可以用stack options修改,却没在help里迅速找到解决办法。网上搜了一下,结合CCS4.0版本解答如下:依然在 右键工程-build propertie-C2000 linker-basic options即stack,head sizez处都填入0x400即可,此处估计得根据具体的芯片类型来填,有多种选择,但不能超过最大的范围。或者在CMD文件添加以下代码-stack 0x400(2)warning #10247-D: creating output section csm_rsvd without a SECTIONSwarning #10247-D: creating output section csm_rsvd without a SECTIONS解决方法DSP281x_CSMPasswords.asm 程序加密代码的出错,这个只能在FLASH模式下才能工作,取消其的编译即可参考资料:DSP281x_HeaderFiles_QuickStart_Readme.pdfDSP281x_HeaderFiles_Q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论