- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)
您可能关注的文档
- 《中国走出去》第五期:风控筑基 中企构建全球版图 - ey.pdf
- 《中华本草》药性数据中的五味规律 - 中国中医药信息杂志.pdf
- 《中华人民共和国公务员法》知识竞赛试题.doc
- 《中坚力量6 堂课》.pdf
- 《重大节能新技术产业化示范工程》 实施方案.pdf
- 《庄子》的养生哲学、伦理政治与主体转化中山大学中文系教授赖锡三一 .pdf
- 《组织行为学》教学与大学生自我同一性探索 - dpi proceedings.pdf
- 【 美尔雅期货1队】 多空较均衡铁矿石或将震荡运行.doc
- 【 专论】 药物安全性研究中免疫系统的病理学评价.pdf
- 【很想要】 倒阳症状,黄版魔鬼yellow devil 【休闲娱乐】.pdf
文档评论(0)