ImageVerifierCode 换一换
格式:PPT , 页数:14 ,大小:266.50KB ,
资源ID:316563      下载积分:12 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-316563.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第四章C语言程序编写和调试环境简介.ppt)为本站会员(ga****84)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

第四章C语言程序编写和调试环境简介.ppt

1、第三章 C语言程序编写和调试环境简介,DSP软件开发平台主要包括DSP代码生成过程中所必需的C编译器,汇编器和链接器. C编译器:将C语言源代码程序自动地编译成DSP汇编语言源代码程序. 汇编器:将汇编语言源代码文件汇编成机器语言COFF目标文件. 链接器:把汇编生成的可重定位的COFF目标模块和目标库文件组合成一个可执行的COFF目标模块,3.1 C编译器概述,DSP C语言以ANSI C为基础,并对ANSI C进行了相应的 限定和扩展。TMS320C2XX C编译器:主要功能是把标准的ANSI C语言程序转换为C2XX能够识别执行的汇编语言代码。TMS320C2x/C2xx/C5x的C编译

2、器可以在编译器输出的汇编语言中直接嵌入汇编语言指令。这种能力是C语言的扩展asm语句。asm语句能够实现一些C无法实现的功能。例:asm( clrc INTM);, 对于嵌入的汇编指令,编译器不会进行语法检查,编程者必须确认嵌入的指令合理有效。 使用asm指令的时候应小心不要破坏C语言的环境。如果C代码中插入跳转指令和标识符可能会引起不可预料的操作结果。能够改变块或其它影响汇编环境的指令也可能引起麻烦。 对带asm语句的代码使用优化器时要特别小心。尽管优化器不能删除asm指令,但它可以重新安排asm指令附近的代码顺序,这样就可能会引起不期望的结果 不要修改C变量,但可以任意读取C变量当前值。

3、不要在内嵌汇编语句中书写修饰性汇编代码(如.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端口号,

4、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

5、; /*读出数据空间1000h地址的值,赋给b*/可见访问DSP数据空间地址不需要对要访问的单元预先定义,利用指针直接访问就可以了.,3.4 系统初始化 C程序开始运行时,必须首先初始化C运行环境,这是通过c_int0函数完成的,这个函数在运行支持库(rts,runtime-support library)中。连接器会将这个函数的入口地址放置在复位中断向量处,使其可以在初始化时被调用。 c_int0函数进行以下工作以建立C运行环境: 为系统堆栈产生.stack块,并初始化堆栈指针。 从.cinit块将初始化数据拷贝到.bss块中相应的变量。 调用main函数,开始运行C程序。 用户可以对c_i

6、nt0函数进行修改,修改后的函数必须完成以上任务。,3.5 利用TMS320C2XX C编译器开发应用程序的步骤 开发DSP的C语言应用程序,需要四种类型的文件: 1、C语言文件或汇编语言文件(.C或.ASM) 复位和中断向量需要用汇编语言编写 2、头文件(.H) 定义DSP内部寄存器的地址分配,一般具有通用性,书写一次以后可被其他程序反复使用 3、命令文件(.CMD) 主要定义堆栈、程序空间和数据空间分配等 4、库文件rts2xx.lib 默认情况下,该文件可以在“:tic2xxc2000cgtoolslib”目录中找到 注:这4中类型的文件必须存储在同一个文件夹中,3.6 头文件和链接器命

7、令文件示例1、头文件 定义LF240X DSP内部寄存器的地址分配 2、链接器命令文件链接器对命令文件名的大小写是敏感的,空格和空行是没有 意义的,但可以用做定界符MEMORY和SECTIONS是链接命令. MEMORY:标示实际存在的目标系统中可被使用的存储器范围,每个存储器范围都有名字、起始地址和长度。其中PAGE0规定程序存储器,PAGE1规定数据存储器。,SECTIONS:规定在存储器内何处放置输出段,即定义逻辑段与目标存储器的对应关系。 已初始化的段: .cinit:标号标识部分存放已明确初始化的全局变量和静态变量Page 0 .switch :标号标识部分存放对于大型的switch

8、语句的跳转表Page 0 .const:标号标识部分存放已明确初始化的字符串常量、全局常量和静态常量Page 1 .text:标号标识部分存放可执行代码和浮点数常量Page 0 未初始化的段: .bss:标号标识部分存放没有初始化的全局变量和静态变量Page 1 .stack:用该标号定义软件堆栈Page 1,3.7 中断向量定义,.title cvectors.asm ;前面需空格 .ref _c_int0,_nothing ;前面需空格 .sect .vectors ;前面需空格reset: b _c_int0 ;RESET 00H,前面需顶格int1: b _nothing ;_INT1

9、_ISR 02H,前面需顶格int2: b _nothing ;_INT2_ISR 04H,前面需顶格int3: b _nothing ;_INT3_ISR 06H,前面需顶格int4: b _nothing ;_INT4_ISR 08H,前面需顶格int5: b _nothing ;_INT5_ISR 0AH,前面需顶格int6: b _nothing ;_INT6_ISR 0CH,前面需顶格.ref伪指令定义了文件中将引用的中断处理函数_nothing和_c_int0,这两个函数在语言中定义时前面没有“”.sect定义了一个段.vectors,表示开始定义中断向量段,再接下来则开始定义各个

10、中断向量,文本中的每一行对应程序存储器中的两个地址,从h开始(对应复位向量),第二行对应程序地址h(INT1) 每一行的开始(如”RSVECT”)仅仅是一个标志,重要的是在”B”后面,要写明发生此中断时要跳转的地址.,3.8 DSP程序烧写 DSP程序编写完成,调试无误后,就可以将程序烧写到DSP的FLASH(EEPROM)中,使DSP可以脱离仿真器独立运行。 烧写DSP程序也要通过仿真器来进行,仿真器制造者会提供相应的烧写程序。要注意不同型号的DSP往往使用不同的烧写程序,不同类型的仿真器对烧写环境也会有不同的要求,使用前要详细阅读相应说明(readme)。 MP/MC*模式置为0(微计算机

11、模式)仿真RAM不被PS*信号选中DSP烧写步骤:清除flash内容(bc0.bat, bc1.bat) 将FLASH(EEPROM)中的所有位清零(set to 0)。擦除flash内容(be0.bat, be1.bat) 将FLASH(EEPROM)中的所有位置位(set to 1)。把目标程序写进flash中(bp16k.bat, bp32k.bat) 将FLASH(EEPROM)中的所有选中的位清零(set to 0)。,复习,1 已知系统的晶振频率为10MHz,求上电复位后系统的时钟频率为多少,指令周期为多少?2 已知系统的晶振频率为10MHz,SCSR1的配置值为81FEh,求系统

12、的时钟频率为多少?3 对于系统控制和状态寄存器2(SCSR2)中的WD保护位,复位时的缺省值是多少,如何通过软件对其清0?4 对于2407的引脚BOOT EN,将其拉到高电平,当系统复位之后,系统从哪个地址开始执行程序?,5 对于以2407DSP为核心组成的系统,如果程序从片内程序地址0000h开始执行,请问2407的引脚MP/MC应该接高电平还是低电平?6 当一个可屏蔽中断被响应时,( )的中断标志位自动清0。2407有两个中断向量表( )和( )。当需要打开一个外设中断时,需要打开的中断屏蔽位有( )、( )和( )对于2407的DARAM,共有三个块( )、( )和( ),其中的块( )

13、根据配置位既可以映射到程序存储器,也可以影射到数据存储器。 中央算术逻辑单元CALU是( )位,辅助算术逻辑单元是( )位,两者( )同时进行运算。,11 数据存储器页面指针DP是( )位指针,共可以选择( )页。 12输入数据定标移位器ISCALE的移位需要额外占用( )个指令周期。13乘法器MPY进行的是( )位的乘法运算,结果是( )位。乘法运算占用( )个指令周期,运算结果是二进制( )码。14假设溢出方式位OVM1, ACC=7FFF FFFFh,那么ACC加上100后,ACC的结果是多少?15 51系列单片机总线采用的是( )结构,2407DSP总线采用的是( )结构。16 决定程序存储器配置的两个因素是( )和( )。,

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。