05TMS320C54x软件开发.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05TMS320C54x软件开发

第5章 TMS320C54x软件开发 5.1 软件开发过程及开发工具 1、软件开发过程 (1)建立源程序 (2)C编译器(C Compiler) (3)汇编器(Assembler) (4)连接器(Linker) (5)调试工具 (6)十六进制转换公用程序 (Hex Conversion Utility) 2、软件开发工具 5.2 公共目标文件格式 5.2.1 COFF文件的基本单元——段 5.2.2 汇编器对段的处理 5.2.3 链接器对段的处理 5.2.4 COFF文件中的符号 5.2.1 COFF文件的基本单元段 段(sections)是COFF文件中最重要的概念 COFF目标文件包含3个缺省的段:text段 data段 bss段 段常两大类:已初始化段 未初始化段 5.2.1 COFF文件的基本单元段 5.2.2 汇编器对段的处理 1.未初始化段 2.已初始化段 3.子段 4.段程序计数器(SPC) 5.2.2 汇编器对段的处理 未初始化段:主要用来在存储器中保留空间,通常将它们 定位到RAM中。 它们在目标文件中没有实际内容,只是保留空间而已 程序可以在运行时利用这些空间建立和存储变量 通过使用.bss和.usect汇编伪指令建立的, 句法分别为: .bss 符号, 字数符号 .usect “段名”,字数 5.2.3 链接器对段的处理 链接器对段的处理有两个功能: (1)将汇编器产生的COFF目标文件(.obj文件)中的 各种段作为输入段,当有多个文件进行链接时, 它将输入段组合起来,在可执行的COFF输出模块 中建立各个输出段 (2)链接器为输出段选择存储器地址 5.2.3 链接器对段的处理 链接器有两个命令完成上述功能,即: MEMORY命令——定义目标系统的存储器配置图,包括对存储器各部分的命名,以及规定它们的起始地址和长度。 SECTIONS命令——告诉链接器如何将输入段组合成输出段,以及在存储器何处存放输出段。子段可以用来更精确地编排段,可用链接器SECTIONS命令指定子段。 5.2.4 COFF文件中的符号 COFF文件中有一个符号表,用于存储程序中的符号 信息。链接器对符号重定位时使用该表,调试工具也 使用该表来提供符号调试。 外部符号指在一个模块中定义,在另一个模块中使用的符号。可使用.def、.ref或.global汇编伪指令将符号定义为外部符号。 .def在当前模块中定义,可以在别的模块中使用的符号 .ref在当前模块中引用,但在别的模块中定义的符号 .global可用于以上任何一种情况 5.3 常用汇编伪指令 5.5 TMS320C54x C语言编程 5.5.1 存储器模式 5.5.2 中断处理 5.5.3 访问IO空间 5.5.4 访问数据空间 5.5.1 存储器模式 1.段 2.C/C++系统堆栈 3.存储器分配 5.5.1 存储器模式 C54x将存储器处理为程序存储器和数据存储器两个线性块 程序存储器:包含可执行代码 数据存储器:包含外部变量、静态变量和系统堆栈 编译器的任务:产生可重定位的代码,允许链接器 将代码和数据定位进合适的存储空间 C编译器对C语言编译后除了生成3个基本段, ( .text、 .data、 .bss外) 还生成.cinit、.const、.stack、.sysmem段 5.5.1 存储器模式 .stack不同于DSP汇编指令定义的堆栈。DSP汇编程序中要将堆栈指针SP指向一块RAM,用于保存中断、调用时的返回地址,存放PUSH指令的压栈内容。 .stack定义的系统堆栈实现的功能是保护函数的返回地址,分配局部变量,在调用函数时用于传递参数,保护临时结果。 .stack定义的段大小(堆栈大小)可用链接器选项-stack size设定,链接器还产生一个全局符号_ _STACK_SIZE,并赋给它等于堆栈长度的值,以字为单位,缺省值为1K。 5.5.2 中断处理 (1)中断的使能和屏蔽必须由程序员自己来设置 (2)中断程序没有参数传递,即使说明,也会被忽略 (3)中断处理程序不能被正常的C程序调用 (4

文档评论(0)

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

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

1亿VIP精品文档

相关文档