DSP课件第八章C语言编程基础

DSP课件第八章C语言编程基础

ID:38555690

大小:296.00 KB

页数:53页

时间:2019-06-14

DSP课件第八章C语言编程基础_第1页
DSP课件第八章C语言编程基础_第2页
DSP课件第八章C语言编程基础_第3页
DSP课件第八章C语言编程基础_第4页
DSP课件第八章C语言编程基础_第5页
资源描述:

《DSP课件第八章C语言编程基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章C语言编程基础为了提高程序开发的效率,同时使程序能与高级语言接轨,目前所有生产DSP芯片的公司都提供了C语言编译器。这样,除了对于一些运算量较大或对运算时间要求很严格的程序代码外,一般性的代码都可采用C语言编程,从而缩短程序的开发周期。C编译器还同时提供了汇编语言接口,可使汇编模块方便地被C语言调用。(1)C编译器(2)C代码优化(3)C代码链接(4)C语言(5)C运行环境和库函数以上5部分不再关注C语言本身的语法,而是关注如何在CCS集成环境中对拥护已经编写好的C代码有效地进行编译、汇编和链接,以生成可执行代码这样的工程问题。8.1C编

2、译器和C优化代码8.1.1C编译器特性C编译器的主要功能是将用户编写的C语言代码翻译为汇编语言程序。(1)支持ANSI标准C。(2)支持ANSI标准实时运行库。(3)汇编程序输出。(4)生成COFF目标文件。(5)编译器的Shell程序。(6)灵活的汇编语言接口。(7)完整的预处理程序。(8)最优化。(9)初始化数据到ROM存储器中。(10)原程序交互列表功能。(11)库构造工具。CCS开发环境可以看成是一个大的软件包,里面包含了源代码编辑器,以及工程文件组织、编译和调试等一切功能模块。该软件包里,shell程序可以完成3个功能:编译、汇编和链

3、接。shell程序缺省在C盘安装时,被安装在C:tic2400cgtool子目录下,对应的文件名为dspcl.exe。(1)编辑器:包括分析器、优化器、代码产生器。把C语言程序编译成汇编语言程序。(2)汇编器:把汇编语言源代码或C语言已经编译成汇编语言代码进行汇编,以产生COFF目标文件。(3)链接器:将文件链接,产生可执行的目标文件。8.1.2Shell程序8.1.3C代码优化C编译器中含有一个C优化程序。启用C优化程序可以提高程序执行速度,减少C程序代码长度。对于C语言,可以采用简化循环,使用软件流水线,重新安排、语句和表达式以及将变

4、量分配到寄存器等方法实施优化。在CCS中,选择菜单Project/BuildOptions选项,可以直接在弹出的对话框中对优先级别进行设置。8.2C程序代码链接C编译器和汇编语言工具为用户链接程序提供了以下两种方法。(1)先编译各个模块,最后将他们链接在一起。(2)一次执行Shell程序的dspcl命令,直接完成各个模块的编译、汇编和链接。在CCS集成环境下,还有少量设置CCS环境和工程文件组织工作需要人工干预。为链接C程序,需要DSP开发人员做以下工作:(1)把运行支持库包含到工程文件中;(2)指定程序运行时的初始化类型;(3)确定如何将由C

5、语言程序编译、汇编和链接产生出的可执行代码分配到物理存储器中。8.2.1把运行支持库包含到工程文件中所有C程序都必须与运行支持库链接。因为运行支持库包含了标准C函数,如sin()函数,以及编译器用来创建和管理CCS中C语言运行环境的函数。运行支持库中包含了一个boot.obj目标模块,C程序链接时必须与它链接。当C程序开始运行时,首先执行boot.obj。链接时,链接器会自动提取boot.obj并链接它。boot.obj包含了用于初始化运行环境的代码和数据。该模块执行以下任务:(1)建立堆栈;(2)处理运行时,初始化表和自动初始化全局变量;(3

6、)调用C语言主程序main();(4)当C语言主程序main()结束时,调用exit()。boot.obj中有一个重要的汇编语言函数_c_int0。它是boot.obj中的起点。链接时,_c_int0被自动定义为程序的入口点。如果程序从复位开始运行,则应将复位向量转移到_c_int0,以便DSP首先执行_c_int0。8.2.2指定初始化类型用C语言编程时,会根据需要定义全局变量和静态变量。有些全局变量和静态变量具有初始值,有些全局变量和静态变量没有初始值。C编译器对C程序编译后,为具有初始值的全局变量和静态变量建立了一个专门的数据块.cini

7、t。该块在程序运行后调入到RAM的.bss中。.cinit调入到RAM中有两种方法:(1)在运行时,自动初始化全局变量和静态变量;(2)在加载时,自动初始化全局变量和静态变量。当创建新工程时,第一种是缺省状态。8.2.3把块分配到物理存储器中把块分配到物理存储器中就是把程序和数据分配到物理存储器中。当使用C编译器对C程序编译后,可产生数据块和代码块。这些块根据各种不同的应用系统硬件配置和扩展情况,可以使用不用的方法将这些块分配到物理存储器中。8.3创建C语言软件8.3.1创建C语言寄存器头文件与汇编语言相同,C语言编程也需要相应的头文件。240

8、7控制寄存器数量较多,为了方便编程,可以将这些寄存器地址定义在一个头文件(*.h)中。这样,在编程时只要将该文件包含其中,直接引用寄存器在*.h中定义

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。