C语言DSP开发与应用举例(精_哈工大课件)

合集下载

dsp第四讲第3章C C程序编写基础PPT课件

dsp第四讲第3章C C程序编写基础PPT课件
义和共同体定义。
20 盐城工学院 电气工程学院
DSP应用技2术0
1.定义寄存器文件结构
表3.2 SCI-A和SCI-B的公共寄存器文件
21 盐城工学院 电气工程学院
DSP应用技2术1
[例3.3] SCI寄存器文件结构定义
/******************************************************
第3章 C/C++程序编写基础
1 盐城工学院 电气工程学院
DSP应用技术1
整体概况
概况一
点击此处输入 相关文本内容
01
概况二
点击此处输入 相关文本内容
02
概况三
点击此处输入 相关文本内容
03
2 盐城工学院 电气工程学院
DSP应用技术2
3.1 C/C++编辑器概述
TMS320X28xx的C编译器是一个功能齐全的优化 编译器,可以利用该编译器将标准的ANSI C/C++程 序直接转换成TMS320X28xx处理器的汇编代码。
4 盐城工学院 电气工程学院
DSP应用技术4
3.1.2 输出文件
TMS320X28xx编译器输出下列代码:
(1) 汇编源代码输出
TMS320X28xx编译器可以产生汇编语言源码文件,
方便用户查看由C/C++产生的汇编源代码。
(2) COFF目标文件
通过目标文件格式(COFF)允许用户在连接时定义系
Union SCIFFRX_REG SCIFFRX; //FIFO接收寄存器
Union SCIFFCT_REG SCIFFCT; //FIFO控制寄存器
Uint16 rsvd2; //保留存储空间

DSP原理及开发应用课件8

DSP原理及开发应用课件8
2
5.1 软件开发过程及开发工具
1.建立源程序 2.C编译器(C Compiler) 编译器( Compiler) 3.汇编器(Assembler) 汇编器(Assembler) 4.连接器(Linker) 连接器(Linker) 5.调试工具 6.十六进制转换公用程序(Hex Conversion .十六进制转换公用程序(Hex Utility) Utility)
March 10, 2011 27
2.条件汇编伪指令 .if、 .elseif、 .else、 .endif伪指令告诉汇编器按 if、 elseif、 else 、 endif伪指令告诉汇编器按 照表达式的计算结果对代码块进行条件汇编。 照表达式的计算结果对代码块进行条件汇编。 .if expression — 标志条件块的开始,仅当条件 标志条件块的开始, 为真( expression的值非 0 即为真) 时汇编代码。 为真 ( expression 的值非0 即为真 ) 时汇编代码 。 .elseif expression — 标 志 若 .if 条 件 为 假 , 而.elseif条件为真时要汇编代码块。 elseif条件为真时要汇编代码块。 .else — 标志若.if条件为假时要汇编代码块。 标志若.if条件为假时要汇编代码块。 .endif — 标志条件块的结束,并终止该条件代码 标志条件块的结束, 块。
March 10, 2011 15
5.段程序计数器(SPC) 段程序计数器(SPC) 汇编器为每个段安排一个独立的程序计数 器,即段程序计数器(SPC)。SPC表示 器,即段程序计数器(SPC)。SPC表示 一个程序代码段或数据段内的当前地址。 开始时,汇编器将每个SPC置 开始时,汇编器将每个SPC置0,当汇编器 将程序代码或数据加到一个段内时,相应 的SPC增加。如果汇编器再次遇到相同段 SPC增加。如果汇编器再次遇到相同段 名的段,继续汇编至相应的段,且相应的 SPC在先前的基础上继续增加。 SPC在先前的基础上继续增加。

DSP的C语言编程PPT课件

DSP的C语言编程PPT课件
可见访问DSP数据空间地址不需要对要访问的单元预先定义,利用指针直接访 问就可以了。这样,访问数据空间很容易实现循环结构。
例如 for (i=0; i<cnt; i++) { tmp = *(unsigned int *) (org + i); *(unsigned int *) (org + offset +i) = tmp; }
24
第24页/共88页
无论用哪种方法定义中断服务函数,都须注意以下问题: (1)中断处理函数必须是void类型,而且不能有任何输入参数。 (2)进入中断服务函数,编译器将自动产生程序保护所有必要的寄存器,
例如, asm (“ CLRC INTM”) //开放中断 编译器会直接将参数字符串复制到输出的汇编语言程序中,因此必须保证参数双引
号之间的字符串是一个有效的汇编语言指令。双引号之间的汇编指令必须以空 格、制表符(TAB)、标记符(LABEL)或注释开头,这和汇编语言编程的要 求是一致的。编译器不会检查此汇编语句是否合法,如果语句中有错误,在汇 编的过程中会被汇编器指出。
12
第12页/共88页
2. DATA_SECTION 这个伪指令在名称为section name的命名段中为symbol分配空间。语法为: #pragma DATA_SECTION (symbol, “section name”); 3. FUNC_EXT_CALLED 当使用-pm选项时,编译器将使用程序级的优化。在这个优化层次中,编译
16
第16页/共88页
15.2.7 访问I/O空间
读写I/O空间的功能是TMS320C2000 C编译器对标准C的扩展,是 利用关键字ioport(I/O端口)来实现的。该关键字的用法为: ioport type porthexnum; • ioport指示这是定义一个端口变量的关键字。 • type(类型)必须是char(字符)、short(短整型)、int (整型)或对应的无符号类型。 • porthexnum为定义的端口变量,其格式必须是“port”后面跟 一个16进制数,如“port000A”是定义访问I/O空间地址0Ah的 变量。

C语言DSP开发与应用举例(精_哈工大课件)

C语言DSP开发与应用举例(精_哈工大课件)

J101:短接:微处理器方式运行,即运行片外存储器内的程序; 开路:微控制器方式运行,即运行片内存储器内的程序。 J102:短路:BCLR0与BCLX0短路;
开路:BCLR0与BCLX0未短路。 J103:短路:BSFR0与BSFX0短路;
2020年8月13日
DSP原理及应用
19
未初始化段用于保留存储器空间(通常是RAM), 程序利用这些空间在运行时创建 和存储变量。 C编译器共创建了3个未初始化段。
2020年8月13日
DSP原理及应用
20
(2)C语言与汇编语言的混合编程方法
面向DSP的C语言可以直接嵌人C54xx的 汇编指令或者伪指令。直接嵌入汇编指令一方 面可以在C程序中实现C语言无法实现或者很难 实现的一些硬件控制功能,例如修改中断控制 寄存器、中断使能寄存器、读取状态寄存器和 中断标志寄存器等;另一方面也可以在C程序中 的关键部分用汇编语句代替C语句,以便能优化 程序,从而提高整个程序的运行效益。直接嵌 人汇编指令在结构上好像调用一个特殊命名为 asm的且带有一个字符串常量参数的函数,其 基本格式如下:
2020年8月13日
DSP原理及应用
17
(1)存储器模式
DSP的C编译器将存储器分成两个线性的段,分别是程 序存储器和数据存储器。程 序存储器包含可执行的代 码。数据存储器包含外部变量、静态变量和系统堆栈。
由C程序生成的代码段和数据段将连续地存放在存储器 中。
C编译器生成的段 C编译器对C程序进行编译后生成可以重定位的代码 和数据段,这些段可以用不同的方式分配到存储器以符 合不同系统配置的需要。这些段可以分为两种类型,一 种是已初始化段,另一种是未初始化段。
2020年8月13日
DSP原理及应用

dsp原理及应用 第6章 C语言和汇编语言混合编程

dsp原理及应用 第6章 C语言和汇编语言混合编程
cnf位清0b0被映射到数据存储器空间dsp原理及应用北京理工大学珠海学院信息学院第6章汇编语言和c语言程序设计24在c语言中嵌入实现某一完整功能的多条汇编语句在c语言中调用汇编语言编写的子程序用户必须遵循相关规则自行维护模块的入口和出口代码主要应弄清楚堆栈的使用情况
第6章 汇编语言和C语言程序设计
《DSP原理及应用》
5
北京理工大学珠海学院信息学院
汇编伪指令
第6章 汇编语言和C语言程序设计
说明
技术汇编命令 包含一个已经写好的汇编文件 打印一个文件标题
举例
一般用于一个汇编文件的结尾 .include “240x.h” .title “vectors.asm”
.end .include .title
《DSP原理及应用》
15
北京理工大学珠海学院信息学院
第6章 汇编语言和C语言程序设计 MEMORY { PAGE0:/*程序存储器*/ name1[(attr)]: origin=constant,length=constant; …… namen[(attr)]: origin=constant,length=constant; PAGE1:/*数据存储器*/ name1[(attr)]: origin=constant,length=constant; …… namen[(attr)]: origin=constant,length=constant; PAGE2:/*I/O空间*/ name1[(attr)]: origin=constant,length=constant; …… namen[(attr)]: origin=constant,length=constant; }
.endif
(2) 第二种情况: .loop .endloop

轻松学会DSP——C程序编写和编译课件

轻松学会DSP——C程序编写和编译课件
语言等。
根据个人习惯选择
开发者可以根据自己的习惯和喜好 选择适合自己的开发环境,比如习 惯使用CCS的开发者可以选择CCS 作为开发环境。
根据开发成本选择
开发者还需要考虑开发环境的成本 ,比如购买IDE的费用、学习成本等 。在选择开发环境时,需要根据实 际情况进行综合考虑。
05
DSP程序调试
BIG DATA EMPOWERS TO CREATE A NEW
FFT算法分类
FFT算法有多种实现方式,如基于 蝶形运算的Cooley-Tukey FFT算 法和基于分治思想的FFT算法等。 Cooley-Tukey算法是最常用的 FFT算法,其基本思想是将一个长 度为$N$的DFT分解为多个长度 为$N/2$的Hale Waihona Puke FT,递归计算直到 长度为2的DFT。
FFT算法实现过程
BIG DATA EMPOWERS TO CREATE A NEW ERA
轻松学会DSP——C程序编
写和编译课件
• DSP基础概念 • DSP编程语言 • DSP编译过程 • DSP开发环境 • DSP程序调试 • DSP应用实例
目录
CONTENTS
01
DSP基础概念
BIG DATA EMPOWERS TO CREATE A NEW
数字控制系统有多种类型,如开环控 制系统和闭环控制系统等。开环控制 系统结构简单,但控制精度和稳定性 较差;闭环控制系统具有反馈环节, 能够提高控制精度和稳定性。
数字控制系统的设计方法包括状态空 间法、根轨迹法和频域法等。状态空 间法能够得到系统的全部状态信息, 但计算量大;根轨迹法能够得到系统 的极点位置,但计算精度较低;频域 法能够得到系统的频率响应,但无法 得到系统的全部状态信息。

DSP-CH8-C语言开发PPT课件

DSP-CH8-C语言开发PPT课件
• 用C语言和汇编语言混合编程的方法主要有以下 三种:
• (1)独立编写C程序和汇编程序 • 分开编译或汇编以形成各自的目标代码模块,然
后用链接器将C模块和汇编模块链接起来。例如, 主程序用C语言编写,中断向量文件(vector.asm) 用汇编语言编写。
2021/3/9
授课:XXX
9
1) 若要从C程序中访问汇编程序的变量
• TI公司的CCS集成开发环境能够编译C和C++语言,
• TI公司还提供了DSPLIB和rts.lib等辅助的函数库, 使开发人员能够直接使用fft,fir以及文件存取等特 殊函数,从而大大减少了开发人员的工作量。
2021/3/9
授课:XXX
1
8.2.1 TMS320C54xC/C++编译器支持的数据类型
8.2 DSP芯片C语言开发
• 用C语言开发DSP程序不仅使DSP开发的速度大大加 快,而且开发出来的DSP程序的可读性和可移植性 都大大增加,程序的修改也极为方便。
• 采用C编译器的优化功能可以增加C代码的效率,在 某些情况下C代码的效率甚至接近手工代码的效率。 在DSP芯片的运算能力不是十分紧张时,用C语言开 发DSP程序是非常合适的。
• 将汇编语言程序在.bss块中定义的变量或函数名
前面加一下划线“_”,并将变量说明为外部变 量,
• 同时在C程序中也将变量说明为外部变量。
• 如下例所示:
• 汇编程序:

.bss _var,1
• .global _var ; Declare it as external

• C程序:
• exten int var; /*外部变量*/
2021/3/9

《DSP应用实例》课件

《DSP应用实例》课件

Part Three
DSP应用实例展示
语音处理实例
语音识别:将语音信号转换为文字 语音合成:将文字转换为语音信号 语音增强:提高语音信号的清晰度和可懂度 语音编码:对语音信号进行压缩和编码,以减少传输带宽和存储需求
图像处理实例
● 应用领域:图像处理、视频处理、信号处理等 ● 实例一:图像去噪 ● 实例二:图像增强 ● 实例三:图像分割 ● 实例四:图像识别 ● 实例五:图像压缩 ● 实例六:图像融合 ● 实例七:图像重建 ● 实例八:图像水印 ● 实例九:图像加密 ● 实例十:图像检索 ● 实例十一:图像分类 ● 实例十二:图像生成 ● 实例十三:图像修复 ● 实例十四:图像超分辨率 ● 实例十五:图像风格转换 ● 实例十六:图像合成 ● 实例十七:图像质量评估 ● 实例十八:图像处理算法优化 ● 实例十九:图像处理硬件加速 ● 实例二十:图像处理软件实现 ● 实例二十一:图像处理系统设计
DSP应用实例PPT课件 大纲
,
汇报人:
目录
01 添 加 目 录 项 标 题
02 D S P 技 术 概 述
03 D S P 应 用 实 例 展 示
04 D S P 技 术 实 现 方 法
05 D S P 应 用 实 例 解 析
06 D S P 应 用 实 例 总 结 与展望
Part One
单击添加章节标题
Part Four
DSP技术实现方法
DSP算法实现方法
基于DSP的算法实现方法 基于DSP的算法优化方法 基于DSP的算法测试方言:DSP 编程的主要语 言,具有高效、
简洁的特点
汇编语言:用 于优化代码, 提高执行效率
开发工具:如 CCS、IAR等, 提供代码编辑、 编译、调试等

哈工大C语言课件

哈工大C语言课件

2024/4/5
main() { …① …
a 函数 {③ ②
b();
b函数 {
④ …
a(); ⑦
⑥… ⑤ …
return; return;
}
}
}
30/78
7.4 递归函数〔Recursive Function〕
递归问题的提出 经典的汉诺塔〔Hanoi〕问题 理解递归的概念 有人曾计算过,当n=64时,所需移动
计制造/现成的标准产品 Moe
Curly
2024/4/5
7/78
7.2 函数〔Function〕的定义
假设干相关的函数可以合并成一个“模块〞 一个C程序由一个或多个源程序文件组成 一个源程序文件由一个或多个函数组成
2024/4/5
8/78
函数的分类
函数生来都是平等的,互相独立的,没有 上下贵贱和附属之分 main()稍微特殊一点点 C程序的执行从main函数开始 调用其他函数后流程回到main函数 在main函数中结束整个程序运行
【例7.2】 计算整数n的阶乘n! 如何使函数具有遇到不正确使用或非法数据输入时 防止出错的能力,增强程序的健壮性? 在函数的入口处,检查输入参数的合法性
2024/4/5
20/78
防御性程序设计〔Defensive Programming〕
【例7.2】计算整数n的阶乘n! 如何使函数具有遇到不正确使用或非法数据输入时 防止出错的能力,增强程序的健壮性? 在函数的入口处,检查输入参数的合法性
2024结/4/5 构化〔Structural〕
6/78
7.2 函数〔Function〕的定义
函数是C语言中模块化编程的最小单位
可以把每个函数看作一个模块〔 Module 〕

第4章DSP软件开发与C语言编程

第4章DSP软件开发与C语言编程

30
段名称 .bss .stack .sysmem
未初始化段链接
内容 全局与静态变量 堆栈空间 malloc函数存储区
限制 64K数据 64K数据 64K数据
31
段(Section) .text .cint .pint .switch .const .bss .stack .sysmem
存储器映射表
存储器类型(Type of Memory) ROM 或RAM ROM 或RAM ROM 或RAM ROM 或RAM ROM 或RAM RAM RAM RAM
页面(Page) 0 0 0 0,1 1 1 1 1
32
4.3.2 链接命令文件
29
段名称 .text .cint
.pint .switch
.const
初始化段链接
描述 可执行代码和常量 已初始化的全局与静态变量的C初始 化记录 全局构造器(C++ constructor)表 实现switch语句表
限制 程序 64K数据
程序 程序/64K数据
已初始化的全局与静态const修饰变量, 64K数据 串常量
24
4.3.1 公共目标文件格式COFF
编译、汇编与链接程序建立的目标文件采用共用目标 文件格式(Common Object File Format, COFF),便于 模块化编程、管理代码段和存储器,即不必为程序代码或 变量指定目标地址。
汇编器根据命令用适当的段将各部分程序代码和数据 连在一起,构成目标文件。链接器分配存储单元,即把各 个段重新定位到目标存储器中。
18
Project菜单
19
View菜单
20
Debug菜单
21

dsp课程设计哈工大

dsp课程设计哈工大

dsp课程设计哈工大一、教学目标本课程旨在让学生掌握数字信号处理(DSP)的基本理论、算法和应用,培养学生运用DSP技术解决实际问题的能力。

具体目标如下:1.知识目标:(1)了解数字信号处理的基本概念、原理和算法。

(2)掌握常用DSP算法及其实现方法。

(3)熟悉DSP芯片的结构、原理和编程方法。

(4)了解DSP技术在通信、音频、图像等领域的应用。

2.技能目标:(1)能够运用DSP算法分析和解决实际问题。

(2)具备使用DSP开发工具和软件进行编程和仿真能力。

(3)能够阅读和理解DSP相关的英文资料。

3.情感态度价值观目标:(1)培养学生对DSP技术的兴趣和好奇心。

(2)培养学生团队合作、创新精神和终身学习的意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.数字信号处理基本概念:数字信号、离散时间信号、离散时间系统、Z域等。

2.离散傅里叶变换:DFT的基本概念、计算方法、性质和应用。

3.快速傅里叶变换:FFT的基本概念、计算方法、性质和应用。

4.数字滤波器:滤波器的基本概念、类型、设计和实现。

5.数字信号处理器:DSP芯片的结构、原理和编程方法。

6.DSP应用实例:通信、音频、图像等领域的DSP应用。

三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括:1.讲授法:通过讲解、演示和案例分析,使学生掌握基本概念和理论知识。

2.讨论法:学生进行小组讨论,培养学生的思考能力和团队合作精神。

3.实验法:引导学生动手实践,加深对理论知识的理解和应用能力。

4.案例分析法:通过分析实际应用案例,使学生了解DSP技术在工程中的应用。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《数字信号处理》(或其他公认的优秀教材)。

2.参考书:提供相关的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作课件、视频等多媒体资料,提高教学效果。

4.实验设备:提供DSP开发板、仿真器等实验设备,方便学生动手实践。

哈工程DSP专业课课件

哈工程DSP专业课课件

哈工程DSP专业课
2
本章教学目的
要求同学理解掌握DSP的中央处理单元的组成和程序控制 的原理 理解各状态寄存器的状态位及其作用 理解流水线的原理以及转移、调用、返回指令的执行过程 理解DSP的中断和复位操作
哈工程DSP专业课
3
本章主要内容
3.1 概述 3.2 输入定标部分 3.3 乘法部分 3.4 中央算术逻辑部分 3.5 辅助寄存器与状态寄存器 3.6 程序地址生成与流水线 3.7 转移、调用和返回 3.8 重复指令 3.9 中断与中断管理 3.10复位操作 3.11节能方式
不采用符号扩展;
SXM=l
输入移位器的输出具有符号扩展。
图2-3为当SXM=0时,输入数
图2-4为当SXM=l时,同样的
据被左移8位的情况。送入
移位情况。在移位期间,数据
CALU的数据的MSB位被零填
具有符号扩展。

哈工程DSP专业课
12
3.3 乘法部分
C2XX 使用一个16-bit*l6-bit的硬件乘法器。 它在一 个机器周期内可产生一个带符号或不带符号的32bit乘积。
注:Q31数是一个二进制分数。其中,二进制小数点后有31位 数字。
注:无论状态寄存器ST1的符号扩展方式位(SXM)是为0,还 是为l,乘积移位器中进行的右移总是为符号扩展的。
哈工程DSP专业课
18
移位方式的采用取决于状态寄存器ST1的乘 积移位方式(PM)值。
第一种移位方式 (PM=00)
在将乘积送入CALU或数据存储 器之前,移位器不对乘积进行移 位处理。
输入移位器将该16位数据左移0~16位,然后 向CALU送入32位的结果。
在左移期间,移位器中未使用的LSB被零填充, 而移位器中的MSB则被零或扩展符填充。

第8章 DSP芯片应用举例

第8章  DSP芯片应用举例

位5
位6 位7 译码 模式 亮度 控制 扫描 位限
0
0 1 1
1
1 0 0
1
1 0 0
0
1 0 1
6 h
7 h 8 h 9 h D7-D0分别表示DIG7-DIG0各位译码方式。Di=0则第I位采用非编码方式。否则采用编码方式。
1
0
1
0
A h
D3-D0=0000-1111,对应亮度占空比。0000时对应的亮度最小。
DSP原理及应用
1.2 C语言和汇编语言混合编程
(1)方法一:独立编写C和汇编 (2)方法二:在C程序中直接嵌入汇编
语句 (3)方法三:将C程序编译生成相应汇 编语句,然后对汇编程序 手工优化和修改
DSP原理及应用
2、实验平台介绍
串口通讯模块 TL16C550 语音输入 语音输出 SRAM 模块 128K*16 TLC320AIC10
TMS320VC5402
LCD点阵模块 Address/Data Data MCBPS MCBPS Expans_on
键盘模块
直流电机模块
交通灯模块 Address I/O
I/O Expans_on
测温模块
步进电机模块
实时时钟模块 开关量输出模块 Logging Interface
LED数码显示模块
2.2.1 电源管理 本实验箱使用的电源电压有+1.8V,+3.3V,+5V,±12V。 (1)电源开关:控制整个系统的电源,其上的红灯亮表 示系统已上电。 (2)步进电机电源开关SW301:控制步进电机模块部分 的电源。开关拨向下,步进电机模块断电,开关拨向上, 步进电机模块通电。 (3)直流电机电源开关ZLDJ:控制直流电机模块部分的 电源。开关拨向下,直流电机模块断电,开关拨向上,直 流电机模块通电。 (4)IO输入输出方式选择开关SW601:选择IO输出方式。 开关拨向上,选择IO输出方式一,开关拨向下,选择IO输 出方式二。 (5)复位开关RESET:按下此开关,复位DSP。 (6)中断按键:按下此键可向DSP产生中断信号。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2020/5/12
DSP原理及应用
16
2.DSP的c语言运行环境
DSP的C语言程序能否正确执行,关键是所有的运行 代码是否能保持一个正确的运行环境。包括:存储器模 式,字符串常量,寄存器规则,函数的结构和调用规则 ,C语言和汇编语言混合汇编,中断处理等。本节主要介 绍一下两点:
(1)存储器模式 (2)C语言与汇编语言的混合编程方法
7
volatile
Volatile关键字用来定义一些变量, 保证该变量不会被优化器优化。优化器 会自动分析数据流来避免一切可能存取 内存的操作。如果在写C代码的时候确实 需要用到内存存取的代码,则必须用 volatile关键字来区别这些存取操作。 对存储器映射寄存器都使用volatile关键 字来定义。
2020/5/12
DSP原理及应用
17
(1)存储器模式
DSP的C编译器将存储器分成两个线性的段,分别是程 序存储器和数据存储器。程 序存储器包含可执行的代 码。数据存储器包含外部变量、静态变量和系统堆栈。
由C程序生成的代码段和数据段将连续地存放在存储器 中。
C编译器生成的段 C编译器对C程序进行编译后生成可以重定位的代码 和数据段,这些段可以用不同的方式分配到存储器以符 合不同系统配置的需要。这些段可以分为两种类型,一 种是已初始化段,另一种是未初始化段。
interrupt关键字定义函数既没有参数 也没有返回值。
2020/5/12
DSP原理及应用
11
2020/5/12
DSP原理及应用
12
注意:
在编译后的代码中,c_int00是C语言 程序开始的标志。这是专门为系统复位 中断设定的保留字。系统复位中断将初 始化整个系统并调用main()函数。
2020/5/12
存档器 目标 文件库
COFF 目标文件
链接器
建库工具 运行时 支持库
HEX代码 转换工具
可执行的 COFF文件
调试工具
TMS320C54x
EPROM 编程器
绝对地址 列表器
交叉引用 列表器
2020/5/12
DSP原理及应用
15
C编译器
C编译器的编译时通过运行cl500.exe程序完成 的,编译器运行指令: Cl500 filenames objectfiles Filenames:一个或多个C语言源文件的名称。 Objectfiles:编译器所创建目标文件的文件名
2020/5/12
DSP原理及应用
2
DSP中的C语言
1.数据类型及相互之间的转换 2.C语言关键字
2020/5/12
DSP原理及应用
3
1.数据类型及相互之间的转换
2020/5/12
DSP原理及应用
4
不同类型的数据可以相互转换:
浮点数据向整型数据的转换是以0为中心截断的。 例如:一3.3转换成整型为一3。 此外,当转换后的数据类型可以存储源数据类型时,则指 针型数据和整型数据也可以相互转化。
porthex_num指的是 I/O 端口号,hex_num变量是一 个十六进制数据。必须注意的是,所有的端口变量 在函数级说明端口变矗是无效的,必须在支存级予 以说明:同时在函数原型中不能使用ioport关键字。2020/5/12源自DSP原理及应用9
下面的代码定义 I/O端口为unsigned port10h, 将数据a写 port 10h,然后从port10h读人数据 存到b中:
DSP原理及应用
13
DSP的C语言运行环境
1.C程序设计流程 2.DSP的c语言运行环境
2020/5/12
DSP原理及应用
14
1.C程序设计流程
1. ’C54x应用软件开发流程
开发过程的宏目源文件的是产生一个可C源文以件 由’C54x目标系
统执行的模块。 存档器
汇编 源文件
C编译器
宏库
汇编器
汇编 源文件
2020/5/12
DSP原理及应用
8
ioport
Ioport 关键字读写DSP的I/O端口空间。 ioport关键 字的用法如下:
Ioport type porthex_num
ioport是指定这是个端口变量的关键字;
type是指端口的数据类型,必须是char,short,int 或unsigned;
2020/5/12
DSP原理及应用
10
interrupt
interrupt关键字用来定义一个中断服 务函数,中断服务函数必须保存中断控制 寄存器和返回序列。当C语言程序被中断时, 中断服务程序将保存所有用到的寄存器。 当用interrupt关键字定义一个函数的时候, C编译器会生成寄存器来保存中断控制寄存 器和中断返回序列。
2020/5/12
DSP原理及应用
1
C语言DSP开发
基于上述原因,各个DSP芯片公司都相继推出了 相应的高级语言(如 C语言)编译器,使得DSP芯片的 软件可以直接用高级语言编写而成,从而大大提高了 DSP芯片的开发速度,也使程序的修改和移植变得简 单易行。
本节将介绍TMS320C54系列DSP芯片的C语言的 软件设计和程序开发。
2020/5/12
DSP原理及应用
6
const
const关键字有助于更好地控制对特定 数据对象存储空间的分配。可以用const 关 键字定义任何变量或数组,来保证变 量或数组的值不被改变。
如果定义一个对象为const,则const 段会为此对象分配特定的存储空间。
2020/5/12
DSP原理及应用
C语言DSP开发
使用C语言开发DSP的原因
基于DSP芯片的软件开发,用DSP芯片的汇编语 言编写程序是一件比较繁杂的事情。一般来说,各个 公司的DSP芯片所提供的汇编语言并不相同,即使是 同一公司的芯片,由于芯片的类型不同(如定点和浮 点)、芯片的升级换代,其汇编语言也有所不同,使 用汇编语言开发DSP产品的周期相对较长,因为开发 人员在编写DSP程序之前必须熟悉这种DSP芯片的汇 编语言。而产品一旦开发完毕,如果需要对软件进行 修改和升级都将非常困难,这是因为汇编语言的可读 性和可移植性比高级语言差。
2020/5/12
DSP原理及应用
5
2.C语言关键字
在CCS环境中使用C语言开发程序,可以使用C语言中 常用的一些关键字和表达式。 如:定义数据类型的关键字:char,int,double等。
条件判断关键字:if ,else , switch,case等。 循环语句关键字:for ,while等 注:在C语言中,三目运算符:表达式?语句一:语句二;
相关文档
最新文档