DSP系统的软件设计.pptxVIP

  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文档。上传文档
查看更多
3.4.2 DSP的C语言中段的定义 段是在存储器中占据相邻空间的代码或数据 块。在DSP的C语言中段的定义包含以及两个内 容。 1 ?系统定义段;■bss 为C程序中的全局和静态变量保留存储空间 ■far 为C程序中用far声明的全局和静态变量保 留存储空间 ■stack 为C程序系统堆栈保留存储空间,用于保存 返回地址、函数间的参数传递、存储局部变量和保 存屮间结果 .system 用于C程序中malloc calloc和realloc函 数动态分配存储空间。;2 .用户定义段 包括用户自定义代码段和用户自定义数据段。 格式如下: #pragma CODE_SECTION(symbol,section name); 用于将一段目标代码symbol链接与.text 段不同的存储空间section name段。 symbol是目标代码的起始地址,” section name是用户自定义段名。;用户自定义数据段: #pragma DATA_SECTION(symbol/section name) 用于将一段目标数据symbol链接到与.bss 段不同的存储空间section name11段。 symbol是目标数据的起始地址,” section name是用户自定义段名。;3.5 C程序的结构及组成 完整的C程序由一个主函数main ()和其他 的子函数组成,每一个子函数完成特定的功能。 54x DSP的C语言入口地址固定为 c_intOO,在rts.lib中定义。 C语言支持丰富的数据类型和数据结构,在 CCS集成开发环境中,为C语言提供了完整的支 持硬件的底屋函数库和支持算法的DSP函数库。;在使用C语言的库函数时,在工程中 必须包括相应的函数库和rts.lib运行时支 持库。 下面是一般C语言程序的结构和组成 框架。;//#include包含语句定义程序中使用的函数库对应的?h头文件 #include “函数库 1 #include v函数库2 include “函数库3” ■ ■ ■ //#define定义程序中所有的宏替换 #define宏替换名 替换内容 ■ ■ ■ 〃如果函数调用在函数定义之前,需要对函数进行声明 函数类型函数名(函数参数列表);;//屮断服务程序(函数)的声明 Interrupt void function_name(void); 〃全局变量声明 变量类型全局变量名; ■ ■ ■ 〃本程序的内部函数 函数类型函数名(函数参数列表) { 〃本函数的局部变量定义 ■ ■ ■ 〃本函数中的算法;〃中断服务程序 Interrupt void function_name(void) ( //中断服务程序的局部变塞定义 ■ ■ ■ 〃中断服务程序的算法程序 …} //主函数main() Void main(void)( 〃局部变量定义 for(;;) { . //数据的输入 ■ ■ ■ 〃数据处理函数;通常在CCS工程中需要用户自己编写的文;6.6 C语言的屮断编程 6.6.1 5402 DSP中断寄存器的结构 中断就是暂停正在执行的程序,并进入中 断服务程序(InterruptService Routine.ISR)o __ 5402 DSP的中断按中断源分可分为硬件 中断和软件中断;按中断是否可屏蔽分为可屏 蔽中断和非可丿蔽中断)(例如定时器中断是可 屏蔽的硬件中断。;在5402 DSP内有两个与中断相关的寄存器 ■■中断屏蔽寄存器IMR和中断标志寄存器IFRo 它们都是存储器映像寄存器(MMR) , IMR定 义了可屏蔽的硕件中断,如果IMR的某一位置 L则允许相应的屮断;IFR表示是否发生了中断, 如果IFR的某一位置1,则说明发生了相应的中 断,中断得到处理后,才会将中断标志清零。;以下4种情况会使中断标志清零: ① C54X复位; ② 中断在中断服务程序中得到处理,常用于中 断方式; ③ 将1写到IFR中的相应位,常用于查询方式; ④ 使用适当的中断号执行INTR指令。;在5402 DSP中IMR和IFR寄存器的定义如图 3?2所示。;注意: 在54xx系列的DSP中,不同型号的DSP的 IMR和IFR寄存器的定义有所不同,其中, TINTO表示定时器0的中断位,TINT1表示定时 器1的中断位。;另外,与中断相关的还有状态寄存器ST1中 的INTM位,INTM位是总中断屏蔽位, INTM=O时开放全部可屏蔽中断。具体到某一 个中断是否开放还取决于IMR寄存器的设置。;6.6.2 5402 DSP中断的初始化方法 一般中断的初始化包括以下步骤: ① 清除中断标志寄存器IFR中的中断标志; ② 设置中断屏蔽寄存器IMR中的相应

文档评论(0)

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

大家好!本人在此声明:本账号所有文档均出自网络,如有侵权请联系删除。收集归纳不易,请手下留情。

1亿VIP精品文档

相关文档