1 2407_ch3调试环境.pptVIP

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

第三章 C语言程序编写和调试环境简介 3.1 C编译器概述 DSP C语言以ANSI C为基础,并对ANSI C进行了相应的 限定和扩展。 TMS320C2XX C编译器:主要功能是把标准的ANSI C语言程序转换为C2XX能够识别执行的汇编语言代码。 TMS320C2x/C2xx/C5x的C编译器可以在编译器输出的汇编语言中直接嵌入汇编语言指令。这种能力是C语言的扩展——asm语句。asm语句能够实现一些C无法实现的功能。例:asm( clrc INTM); ??? 对于嵌入的汇编指令,编译器不会进行语法检查,编程者必须确认嵌入的指令合理有效。 ?? ? 使用asm指令的时候应小心不要破坏C语言的环境。如果C代码中插入跳转指令和标识符可能会引起不可预料的操作结果。能够改变块或其它影响汇编环境的指令也可能引起麻烦。 ?? ? 对带asm语句的代码使用优化器时要特别小心。尽管优化器不能删除asm指令,但它可以重新安排asm指令附近的代码顺序,这样就可能会引起不期望的结果 ?不要修改C变量,但可以任意读取C变量当前值。 ?不要在内嵌汇编语句中书写修饰性汇编代码(如.text、.data等),否则会破坏汇编环境。 ? 内嵌汇编语句可以用来在编译输出结果中添加注释,以改善编译器输出汇编程序的可读性。。 asm(“ ***** this is an assembly language comment”); 3.2 访问I/O空间 要在程序中访问io空间地址,必须首先用关键字“ioport”对要访问的地址进行定义。 语法:ioport type port hex_num ioport 声明io空间端口变量的关键字; type变量类型,可以为char, short, int或unsigned int; port hex_num端口号,port后面接16进制数字。 /*******************************************/ ioport unsigned int port10; /******************************************/ 注:声明io空间地址必须在C文件起始声明,不允许在函数中使用ioport声明io空间地址。 例如: ioport unsigned port10; /*定义I/O空间变量10h*/ { … port10=a; /*将a写到端口10h*/ … b=port10; /*从端口10h读入b*/ … } 3.3 访问数据空间 访问DSP数据空间是利用指针来实现的. 例如: *(unsigned int *)0x1000=a; /*将a的值写入数据空间1000h地址*/ b = *(unsigned int *)0x1000; /*读出数据空间1000h地址的值,赋给b*/ 可见访问DSP数据空间地址不需要对要访问的单元预先定义,利用指针直接访问就可以了. 3.4 系统初始化 C程序开始运行时,必须首先初始化C运行环境,这是通过c_int0函数完成的,这个函数在运行支持库(rts,runtime-support library)中。连接器会将这个函数的入口地址放置在复位中断向量处,使其可以在初始化时被调用。 c_int0函数进行以下工作以建立C运行环境: ?为系统堆栈产生.stack块,并初始化堆栈指针。 ?从.cinit块将初始化数据拷贝到.bss块中相应的变量。 ?调用main函数,开始运行C程序。 用户可以对c_int0函数进行修改,修改后的函数必须完成以上任务。 3.5 利用TMS320C2XX C编译器开发应用程序的步骤 开发DSP的C语言应用程序,需要四种类型的文件: 1、C语言文件或汇编语言文件(.C或.ASM) 复位和中断向量需要用汇编语言编写 2、头文件(.H)

文档评论(0)

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

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

1亿VIP精品文档

相关文档