代码产生工具及C6000程序结构.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 实时数字信号处理技术 C6000 软件开发(3) 代码产生工具和C6000程序结构 北京理工大学电子工程系 李云杰 (O)010liyunjie@bit.edu.cn 学习目标 软件开发流程和开发工具 C6000程序基本结构 代码产生工具 代码产生工具 ( Code Generation Tools ) C编译器 汇编优化器 汇编器 连接器 其它一些工具 C编译器 C优化器 包括针对C代码的一般优化和针对C6000的优化: 重新安排语句和表达式 把变量分配给寄存器 打开循环… 具有四个优化级别 C优化器 C代码产生器也可以完成一些优化工作 C优化器最重要的优化处理-软件流水 -pm 把一个程序所有的C文件合成一个模块进行优化处理 效率可达汇编语言代码的 70%~80% 汇编优化器 对线性汇编代码(.sa文件)进行优化 输入:用户编写的线性汇编代码 输出:标准汇编代码.asm文件 编程过程不需考虑: 并行指令安排 指令延迟 寄存器使用 效率可达汇编语言代码的 95%~100% 汇编器 产生可重新分配地址的机器语言目标文件 输入: C编译器产生的汇编文件 汇编优化器输出的汇编文件 文档管理器管理的宏库内的宏 输出: 目标代码是TI的COFF格式 汇编代码内除机器指令外,还有汇编伪指令 连接器 根据用户说明的程序和数据存放地址,把汇编器产生的浮动地址代码和数据映射到用户系统的实际地址空间. 输入:可重新分配地址的目标文件( .obj ) 输出:可执行的目标文件( .out ) 其它工具以及C运行库 文档管理器 (Archiver) 建库工具 (Library-build Utility) 十六进制转换工具 (Hex Conversion Utility) 交叉引用列表工具 (Cross-reference Lister) C运行支持库 (Run-time Support Library) \c6000\cgtools\include \c6000\cgtools\lib DSPs程序的仿真模式 C6000程序基本结构 C程序的基本结构 汇编代码结构 线性汇编语言结构 C程序和汇编代码的接口实现 C程序的基本结构 主程序 main.c 连接命令文件.cmd \c6000\cgtools\lib\lnk.cmd C运行库文件rtsxxxx.lib \c6000\cgtools\lib C程序的基本结构 若从EPROM中加载要运行的程序还需要Vectors.asm IST(中断服务表) 被连接分配到0地址 C运行环境入口点:_c_int00 rtsxxx.lib C程序的基本结构 CCS带有一个函数库 dev6x.lib 其中包含有中断向量表, 无需程序员写vectors.asm 中断 “挂” 接也很方便 针对C6000的外设预定义了大量的外设地址和宏定义 regs.h 中有GET_BIT() , SET_BIT(),GET_FIELD()可以方便的对寄存器进行位操作. 几乎所有外设寄存器的地址都已经定义 C程序的基本结构 使用devlib实现中断“挂”接 Preprocesser 中头文件搜索路径设置为: ..\c6000\evm6x\dsp\include 将dev6x.lib文件加入项目 ..\c6000\evm6x\dsp\lib 在.cmd文件中,将.vec段分配在0地址 在主程序中使用#include intr.h包含头文件 在main()中调用intr_reset()函数 调用intr_hook()等函数 C6000编译器的C环境实现 定义: C run-time environment The run time parameters in which your program must function. These parameters are defined by 1.the memory conventions 2.register conventions 3.stack organization 4.function call conventions 5.system initialization. 存储器模型 C6000编译器把整个存储区当作单个线性存储块,并将它分为代码区和数据区 编译器假定目标存储器的全部32-bit地址空间是可用的。 定义存储器映象并将代码和数据分配到目标存储器的是连接器,而非编译器。 Cmd文件是linker使用的。 C6000的存储器映射 程序和数据的存放不是随意的 C6000

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档