[工学]4 c54x软件开发.pptVIP

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]4 c54x软件开发

2003.2.16 DSP原理及应用 1、DSP系统软件设计的一般过程 2、DSP C语言的特点 3、C54x的存储器结构及CMD链接命令文件 4、DSP C语言的存储结构 5、DSP C语言的中断编程 6、C54X的混合编程 7、DSP C语言的结构及组成 开发软件+仿真器+目标系统 开发软件:C54x采用目前流行的集成开发环境CCS: 版本主要有:CCS 2.2 for 5000 CCS 3.1 CCS 3.3 仿真器: 软件仿真器 simulator,是一种模拟DSP芯片各种功能并在非实时条 件下进行软件调试的调试工具,它不需目标硬件支持,只需在计算机上运行。 硬件仿真器 emulator,目前流行的有: TDS 560,XDS 510,XDS 100 目标系统:DSK(DSP Starter Kit),EVM,各种公司的学习开发板,自己设计的系统 国内较知名的公司:北京“闻亭”、“合众达”等 2 C54x C语言 相同点: 1)结构化程序设计的思想,以函数为单位 2)大部分变量、常量、结构体、枚举、联合体、指针的定义 3)局部变量、全局变量、静态变量、动态变量 4)宏定义、宏展开、宏调用 5)算术、关系、逻辑、位操作运算符以及运算符之间的优先级和结合性 6)函数的组织:顺序结构、分支结构、循环结构 不同点: 1、所处理数据的性质不同;程序结构不同 PC :采集好的,数据量大;DSP:实时采集,量小 2、数据的输入输出设备不同 3、“死循环”的对待上不同。 4、语法结构及细节上的不同 2.1DSP C语言的数据结构 1、C54X的C语言数据类型及其表示范围 可以在 type.h中定义 typedef float f32; typedef long s32; typedef int s16; typedef unsigned char u8; typedef unsigned int u16; typedef unsigned long u32; 2、C语言中常量和变量的定义 1)C语言常量的定义 define: #define 符号常量名 字符串 #define TURE 1 不占用存储空间 const: 用来定义整型、字符、字符串 const int port1=0x0; int *const p=x;//const的位置 const int * q=x; 2)C语言中变量的定义:与ANSI C一致 3) 寄存器变量:一般谨慎使用 3、MMR的定义和访问 C:\ti\c5400\dsk5402\include目录下 regs.h和regs54x.h定义了片内寄存器及其所包含的控制和状态比特,这些定义采用宏替换定义#define,regs54x.h是regs.h的扩展和补充。 1)先定义MMR的地址,再使用指针方式访问 统一定义法:把同种类型的寄存器统一定义,使用宏参数进行区分。 例:McBSP串口接收寄存器的定义: #define DRR2_ADDR(port) (port? 0x40:0x20) 单独定义法:使用不同的寄存器名称分别定义其地址。 #define DRR20_ADDR 0x20 //寄存器的地址宏定义 #define DRR21_ADDR 0x40 访问:使用指针方式 *(volatile unsigned int *)DXR1_ADDR(port)=value Vari= *(volatile unsigned int *)DRR1_ADDR(port) 地址变量:指定了具体地址值的指针变量,一般要用 volatile关键字说明,只要定义好了,之后的读写就与普通 指针一样。 unsigned int *ctrl; 改为 volatile unsigned int * ctrl; while(*ctrl!=0xff); 特别当该变量在中断函数中被赋值,而在主函数的循环中被用到 时,必须采用volatile声明

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档