- 1、本文档共82页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP C语言:C运行环境(1) 存储模型:C程序的代码和数据如何定位 ??系统定义 –.cinit存放C程序中的变量初值和常量 –.const 存放C程序中的字符常量、浮点常量和用const声明的常量 –.switch 存放C程序中switch语句的跳针表 –.text 存放C程序的代码 –.bss为C程序中的全局和静态变量保留存储空间 –.far 为C程序中用far声明的全局和静态变量保留空间 –.stack 为C程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果 –.sysmem用于C程序中malloc、calloc和realloc函数动态分配存储空间 ??用户定义 –#pragmaCODE_SECTION (symbol, section name) –#pragmaDATA_SECTION (symbol, section name) DSP C语言:C运行环境(2) 寄存器使用规则 –C编译器如何使用DSP的寄存器 –函数进入和返回前,寄存器的保护 ??函数调用规则 –函数间的参数传递通过寄存器和系统堆栈进行 –调用函数与被调用函数必须对各自的寄存器进行保护 –从被调用函数返回前,被调用函数必须归还所有已占用的堆栈空间 ??C和ASM混合编程 –C和ASM混合编程时,必须遵循寄存器使用规则和函数调用规则 –被C调用的ASM函数,其函数名前应加“_” ??中断服务程序 –ASM编写的中断服务程序必须对所有用到寄存器进行保护,以免破坏C运行环境 –C编写的中断服务程序应用interrupt关键字声明 DSP C语言:C运行环境(2) 系统初试化 在运行C程序前,必须建立C运行环境,此任务由C引导程序_c_int00完成;c程序在连接的时候需要rst.lib库。 ??_c_int00包含在库函数中,build时自动将其链接进可执行程序中,程序的入口地址必须设为_c_int00起始地址。 ??_c_int00的源程序存放在由rts.src分离出来的boot.asm中,用户可根据需要修改 –设置堆栈指针, –初始化全局变量:将.cinit”段“中数据拷贝到.bss”段“中 –调用C程序的主函数main() ??不同系列的DSP,其C编译器对C运行环境的处理略有不同,具体参考各自的《Optimizing C Compiler User’s Guide》 DSP C语言:软件build流程 目标文件地址是浮动的,能被重定位??链接器用.cmd文件对链接目标,进行重定位–列出目标文件、库文件和链接器选项–用MEMORY命令描述目标系统存储空间配置–用SECTIONS命令描述“段”如何定位??Hex转换程序也使用.cmd文件,配置转换选项 CCS 软件开发方法 传统软件开发方法 用ASM或ASM和C混合编程,从零开始 ??分配存储器空间 ??编写硬件资源头文件 –DSP片内部分: ??描述片内寄存器地址 ??描述片内寄存器控制/状态位域 –DSP板上资源头文件 ??描述片外外设寄存器地址 ??描述片外外设寄存器控制/状态位域 ??编写应用专用的外设驱动程序 –片内/片外外设初试化程序 –片内/片外外设操作程序 ??编写中断向量表和中断服务程序 ??编写应用专用的算法 ??编写主控程序顺序、死循环执行 TI倡导的DSP软件架构 TI免费提供的基础软件 CSL库:Chip Support Library芯片支持库 –定义DSP片内外设资源,实现片内外设基本操作 ??DDK:Driver Development Kit 设备驱动程序开发包 –设计标准的设备驱动程序模型,方便开发新的设备驱动程序 ??DSPLIB/IMGLIB:Signal Processing Library –数学运算、矩阵运算、FFT、滤波、卷积、相关等信号处理函数 –压缩、分析、滤波和格式转换等图像/视频处理函数 ??DSP/BIOS:嵌入式实时、多任务操作系统 –实时、多任务内核 –实时分析 ??Reference Frameworks:程序参考架构 –C程序初试骨架,通过其可以迅速创建特定的应用程序 ??XDAIS:DSP Algorithm Standard,DSP算法标准 –规定一系列算法编程规则,遵循这些规则的算法,可以相互调用 DSP/BIOS:功能 抢先型实时、多任务操作系统内核 –基于优先级的、抢先型实时调度程序 –支持多线程管理与调度 –支持4种线程类型:HWI、SWI、TSK、IDL –支持3种作业间的通信方式:Mailboxes、Semaphores、Queues –支持周期函数,方便实现固定时间间隔的数据采集,简化多速率系统的设计 –提供存储器管理,实现动态存储器分配 ??实时分析模块 –分析
文档评论(0)