DSP软件开发介绍

合集下载

DSP软件开发-PPT课件

DSP软件开发-PPT课件
.copy/.include
.def
.global
.ref
将TMS320各寄存器名定义为全局 符号,这样就可以直接引用寄存器 (符号)
.set伪指令附一常数值给某个符号, Shift .set 5
也可以将符号常数赋给寄存器
ld #shift,A
AuxR1 .set AR1
MVMM AuxR1,sp
从其他文件读取源代码语句。
"cosine",512 "fft_data",1024
d_input: .usect
"d_input", 1024
fft_out: .usect
"fft_out", 512
STACK
.usect
"STACK",10
.bss
d_twid_idx,1
.bss
d_data_idx,1
.bss
d_grps_cnt,1
第一列开始 每区必须用一个或多个空格分开Tab字符键与空
格等效 程序中可以有注释,注释开始在第一列时,前面需标
上星号或分号(*或;),但在其他列开始的注释前面 只能标上分号
5
标号区 标号分大小写,且第一字符不能是数字,后面可以带
冒号(:),但冒号并不处理为标号名的一部分。标号实 际代表了该代码行在程序或数据段中的地址
.bss : > SPRAM
PAGE 1
sine : align(1024){ } > DARAM PAGE 1
15
.text 将代码或数据放入.text段中
.data 将数据放入.data段中
.sect 将代码或数据放入指定的段中。

DSP软件开发过程及CCS简介

DSP软件开发过程及CCS简介

M1SARAM: org = 0x000400, len = 0x400
2
}
SECTIONS
{
.text:
>
.ebss:
>
.cinit:
>
.stack:
>
}
FLASH M0SARAM FLASH M1SARAM
PAGE 0 PAGE 1 PAGE 0 PAGE 1
电气与信息工程学院
DSP技术及应用
• 之内所X 有的存表储示器存范储围器必含须有具可执有行唯代一码的;名字且必须不重叠。

I
表示存储器可以初始化。
• origin 表示存储器范围的起始地址。
• length 表示存储器范围的长度。
电气与信息工程学院
DSP技术及应用
281x 软件开发过程
SECTIONS伪指令的一般语法
SECTIONS {
主要内容 AD初始化函数 CPU定时器初始化函数 增强型Can初始化函数 事件管理器Ev初始化函数 通用I/O模块初始化函数 多通道缓冲串行口初始化函数 串行通信接口初始化函数 串行外围接口初始化函数 系统控制模块初始化函数 外部接口初始化函数 外部中断初始化函数 包含了其他的外设初始化函数 PIE控制模块初始化函数 对PIE中断向量进行初始化 包含了F2812所有外设中断函数 定义了F2812的全局变量和数据段程序
DSP技术及应用
281x 软件开发过程
Linker Command File
MEMORY { PAGE 0: /* Program Space */
FLASH: org = 0x3D8000, len = 0x20000
PAGE 1: /* Data Space */

DSP3(dsp的软件开发)

DSP3(dsp的软件开发)

2013.5主讲教师:任海鹏1. 软件开发流程和开发工具 2. 集成开发环境CCS 3. 实时操作系统DSP/BIOS《DSP原理及应用》2任海鹏任何微处理器只有有了程序才能工作—— 完成需要的操作; 如何给微处理器编程序就是微处理器的软 件开发。

任何微处理器只认识特定规则的二进制代 码,这些代码告诉微处理器完成特定操作。

软件开发的最终目的是给微处理器二进制 代码;《DSP原理及应用》 3 任海鹏最初的软件开发过程按如下步骤:}编程人员首先编制汇编程序,检查汇编程序; }查指令代码,将汇编程序转成二进制代码; }安排存储器的空间,给代码分配相应地址; }将二进制代码的1/0打在纸带上,用光电读入器将二进制代码读入;《DSP原理及应用》4任海鹏软件可以自动实现这些操作}将汇编程序转化成二进制代码——汇编程序。

}用程序给二进制代码安排地址,并将这些二进制代码放入安排好的地址——连接程序。

《DSP原理及应用》5任海鹏z汇编语言软件开发过程编辑软件 编制汇编 编译 程序 二进制 代码 连接 特定机器 存储器不同CPU 定义不同《DSP原理及应用》可以放在任意 同类CPU系统6针对具体系 统的实现门槛太高,使用不便。

任海鹏z能不能用高级语言(如C语言)给机器编程(开发软件)? C语言 编辑环境 C编译 C程序C6000线 性汇编 汇编优化 编制汇编 程序 编译开发变得简单,可以对 底层不太熟悉!特定机器 存储器《DSP原理及应用》连接7二进制 代码任海鹏集成开发环境(Studio) 代码开发需要的工具C编译器,汇编优化器, 汇编器和连接器都是独立的软件——使用复 杂; CCS集成了代码产生、调试、实时分析功能, 所有的开发操作都可以在CCS下完成。

《DSP原理及应用》8任海鹏开发工具和开发流程C6000代码产生工具:CCS集成开发环境 v2《DSP原理及应用》9任海鹏开发工具和开发流程《DSP原理及应用》10/45任海鹏开发工具和开发流程z C/C++编译器作用:对符合ANSI标准的C代码进行编译;构成:语法分析器(Parser)、C优化器(Optimizer)和代码产生器(Code Generator)三个部分: zer)和代码产生器(Code Generator)三个部分: }语法分析器(acp6x.exe)进行语法检查,对宏和包含文件及条件编译进行处理。

简述dsp的应用软件开发流程

简述dsp的应用软件开发流程

简述dsp的应用软件开发流程Developing software applications for Digital Signal Processors (DSP) requires a systematic approach to ensure the efficiency and reliability of the final product. 在为数字信号处理器(DSP)开发软件应用程序时,需要采取系统化的方法,以确保最终产品的效率和可靠性。

The first step in the DSP application software development process is to clearly define the project requirements. 首先,DSP应用软件开发过程的第一步是明确定义项目需求。

This involves understanding the specific functionality and performance goals of the application, as well as any constraints or limitations that may impact the development process. 这包括了解该应用程序的特定功能和性能目标,以及可能影响开发过程的任何限制或限制。

Once the project requirements have been established, the next step is to design the software architecture. 一旦确定了项目需求,下一步是设计软件架构。

This involves defining the overall structure of the application, including the various components and how they interact with each other. 这涉及定义应用程序的整体结构,包括各种组件以及它们之间的交互方式。

第6章 DSP软件设计

第6章 DSP软件设计

参数1 参数1 在A中
© Software College , East China Institute of Technology , 2009 HJF
混合编程函数调用规则(续)
汇编器对被调用函数局部帧的分配
局部帧包括局部变量块和局部参数块两部分,其中局部参数块是 局部帧中用来传递参数到其他函数的部分。如果被调用函数没有 局部变量并且不再调用其他函数或需要调用的函数没有参数,则 不分配局部帧。 对于混合编程而言,若被调用函数是手工编写的汇编程序,则局 部帧由编程者自己完成分配,也不需要在堆栈中进行,而编译器 分配局部帧。 结果返回 函数调用结束后,将返回值置于累加器A中。整数和指针在累加 器A的低16位中返回, 浮点数和长整型数在累加器A 的32位中返 回。
© Software College , East China Institute of Technology , 2009 HJF
混合编程函数调用规则(续)
参数传递规则
函数调用前

将参数置于参数 表中, 表中,调用函数
被调用者分配局 部帧和参数表
SP SP SP 调用者的 调用者的 参数块 调用者的 调用者的 局部变量 高 (a) (b) (c) 返回地址 参数2 参数2 …… 参数n 参数n 调用者的 调用者的 局部变量 参数1 参数1 在A中 参数数据 局部数据 返回地址 参数2 参数2 …… 参数n 参数n 调用者的 调用者的 局部变量 被调用的
© Software College , East China Institute of Technology , 2009 HJF
混合编程
变量和函数命名规则(续)
在C和汇编混合编程的时候,存在C语言和汇编语言的变量以及 函数的接口问题。 在C程序中定义的变量,编译为.asm文件后,都被归到.bss区, 变量名前面都带一个下划线。在C程序中定义的函数,编译后 在函数名前也带了一个下划线。例如: extern int num变成 extern float nums[5]变成 extern void func ( )变成 .bss _num, 1 .bss _nums, 5 _func

DSP软件开发岗位职责

DSP软件开发岗位职责

DSP软件开发岗位职责DSP(数字信号处理)软件开发岗位是一项技术性较高的技术职位,其主要职责包括以下几个方面:1. DSP算法设计与实现在DSP软件开发岗位中,最重要的职责包括对DSP算法的设计与实现,主要为音频、视频压缩、解压缩,通信信号处理、控制等方面,并开发相应的算法库进行封装,提高开发效率和重用性。

为此,岗位工程师需要熟悉DSP相关算法和数据结构,掌握C和汇编等编程语言,熟练应用各种软件开发工具进行程序设计。

2. DSP应用开发DSP应用开发是DSP软件开发岗位的另一个重要职责,通常需要根据客户需求或产品设计要求开发相应的应用软件,例如:嵌入式系统、手机应用、音频处理设备、数字电视、数字相机等等。

此类软件需要运用到低功耗、高效率、实时性等特点,所以工程师需要对硬件系统和操作系统有深入的了解,熟练掌握底层驱动的编写和优化,能够进行系统模块化设计和代码的优化改进。

3. DSP调试优化在开发DSP应用时,会出现诸如编译器或调试器错误、代码死锁以及内存泄漏等Bug,调试和解决这些Bug也是DSP软件开发岗位的职责之一。

为了发现并解决问题,岗位工程师需要掌握调试及测量方法,有严谨的逻辑思维能力,能够分析系统性能问题及其原因,编写有效的测试用例,改善系统性能和稳定性,提高后续的开发效率。

4. 文档撰写在DSP软件开发过程中,对设计和开发的文档进行撰写,为使用者提供详细的技术资料,是岗位工程师另一个重要的职责。

文档内容通常需要包括应用程序的操作方法、系统结构、各种控制和操作的参数、配置和调试信息等等。

因此,岗位工程师应具备一定的写作能力,能够准确地描述和解释技术和设计细节。

5. 其他除上述职责外,DSP软件开发岗位还需要积极参与团队讨论,进行技术分享和团队合作,随时更新技术知识,了解最新的技术发展动态,跟进行业技术趋势,完善公司产品线,提升团队的技术水平和竞争力。

DSP软件开发与C语言编程

DSP软件开发与C语言编程

2020-03-11
山东大学控制学院 张东亮
5
2020-03-11
山东大学控制学院 张东亮
6
2. 软件开发流程
2020-03-11
山东大学控制学院 张东亮
软件开发流程框图
7
软件开发流程
1)编辑:生成源程序(*.asm, *.c)、头文件(*.h) 与命令文件(*.cmd)。 2)编译与汇编:生成目标文件(*.obj ,公共目标文件
• Allows you to halt in non-critical code for debug while time-critical interrupts continue to be serviced.
• Access memory and registers without stopping the processor.
开发系统 与评估板
2020-03-11
山东大学控制学院 张东亮
4
2812 EVM板的主要性能指标如下:
(1) TMS320F2812,运行速度150MIPS。 (2) 片内RAM 18K字。 (3) 扩展RAM 64K字。 (4) 片内16路12位A/D转换器, 最大采样速率12.5MSPS。 (5) 扩展的4路12位D/A转换器DAC7617。 (6) 两路UART串行接口,符合RS-232C标准。 (7) 16路PWM输出。 (8) CAN总线标准接口。 (9) 用户开关与指示灯。 (10) 片内128K字Flash存储器,带128位加密位。 (11) IEEE1149.1兼容的逻辑扫描电路即JTAG接口,用于仿真调试。 (12) +5V电源输入, 板上3.3V, 1.8V电源管理。
目标文件 .bss .data .text

DSP软件开发流程

DSP软件开发流程

软件开发基础
DSP C语言:C运行环境(3) 语言: 运行环境 运行环境( ) 语言
系统初始化
在运行C程序前,必须建立C运行环境,此任务由C引导程序 _c_int00完成 _c_int00包含在库函数中,build时自动将其链接进可执行程序中, 程序的入口地址必须设为_c_int00起始地址 _c_int00的源程序存放在由rts.src分离出来的boot.asm中,用户可 根据需要修改
初试化段和未初始化段
.bss和.usect为未初始化段,用于为变量、堆栈等保留一块存储空 间 .text、.data和.sect为初试化段,用于存放代码块或有初值的数据 块
系统定义的段和用户定义的段
.text、.data和.bss为系统已定义好的段名 用户根据需要用. sect和.usect伪指令来定义段名,创建相应的“段 ”
软件开发基础
软件build流程 流程 软件
.CPP file .C file .ASM file .ASM file .OBJ file Linker .OUT file .HEX file .OBJ file .ASM file Assembler .OBJ file
目标文件地址是浮动的,能被重定位 链接器用.cmd文件对链接目标,进行重定位
加载时定位:PC机系统采用
编程、编译和链接时均未对程序进行绝对定位 程序运行前,由操作系统对程序进行重定位,并加载到存储空间中
软件开发基础
程序定位方式的比较
编译时定位:
ORG xxxx,绝对定位 优点:简单、容易上 手 缺点:程序员必须熟 悉 硬件资源 模块化编程差 工程化不支持 持
链接时定位:
SECTION,相对定位 缺点:灵活、上手较 难 优点:程序员不必熟 悉 硬件资源 模块化编程强 工程化管理支
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TMS320C6200软件开发介绍
(初稿)
软件开发环境(1)
• CCS(Code Compose Studio)集成环境 提供了完整的TMS320系列DSP芯片软件开 发环境,用户可以通过CCS方便的实现 DSP软件的仿真、单步调试、断点调试等, 可以查看DSP系统的各种资源。CCS集成 环境的界面类似于Microsoft Visual C++。
• 硬件调试
运行”Setup CCS“应用程序,在中间的选择栏中选择相应的硬件仿 真器驱动程序(如果驱动程序没有安装,可以使用”Install a device driver”安装驱动程序),设置仿真器使用的IO口和gel文件,保存设置。
工程文件
工程文件中包含下列文件:
• Prj 工程文件,记录了工程所包含的源文件和工程设置
• Gel
EMIF接口控制寄存器初始化文件,存储器接口必须正确的初 始化了以后才能使用,程序要访问外部存储器,必须先利用菜 单命令调用此文件对EMIF口初始化
• Cmd 命令文件,记录了编译时的编译选项,本文件主要用来进行 系统存储器的定义和分配
• C/C++ C/C++语言源文件
• Asm 汇编语言源文件
long double *
宽度 32 64 64 32
注释:long型整数占用8字节长度,但是只有低40位为有效位。
数据类型定义
typedef signed char
TSchar;
typedef unsigned char
TUchar;
typedef signed short int TSint16;
• Sa1 线性汇编语言源文件
注释:1:Sa文件是可选的。
Endianness
Endianness模式定义了多字节数据类型中数据的 存储顺序,共有两种模式:
• Little Endian
Most Significant字节存储在高地址中。
• Big Endian
Most Significant字节存储在低ቤተ መጻሕፍቲ ባይዱ节中。 例如:0x12345678
TMS320C6204性能简介
• 主频:<=200MHz • CPU:2个16位定点乘法器,6个32位定点运算单元; • CPU寄存器:32个32Bits通用寄存器,分为A、B两组,
每组16个; • 数据总线:32Bits • 数据通道:两个数据通道,可同时从内部数据存储器中执
行两个32Bits读和两个32Bits数据写操作;
EMIF接口有4个地址空间:CE0、 CE1、CE2和CE3
2. XBUS
XBUS接口有4个地址空间:XCE0、XCE1、XCE2和XCE3
Setup CCS
• 软件仿真
运行“Setup CCS”应用程序,打开“Import Configurations”对话框, 从“Available Configurations”中选择“C62xx Fast Sim Ltl Endizn”, 单击”Import“按钮,关闭对话框,保存设置。 通过上面的设置我们可以使用CCS对C62xx系列DSP进行快速仿真, Ltl表示使用Little Endian方式。快速仿真不能仿真任何与硬件相关的 操作,如定时器、DMA等。
Byte Address 0x03 0x02 0x01 0x00
Big-Endian
0x78 0x56 0x34 0x12
Little-Endian 0x12 0x34 0x56 0x78
数据类型
数据类型 char short int long
宽度 8 16 32
64(40)
数据类型 float double
软件开发环境(2)
• CCS IDE由于要和硬件打交道,所以在使 用前要进行一定的设置,TI提供了CCS Setup应用程序来完成CCS工作方式的设置。
• CCS可以工作在两种模式下: 1、软件仿真模式; 2、硬件仿真模式。(要使用硬件仿真器和目 标板)
编程语言
• TMS系列DSP芯片支持3种编程语言,开发 人员可以选择任何一种语言进行程序开发, 也可以混合使用各种语言。 1、ANSI C 语言; 2、线性汇编语言; 3、汇编语言。
C6204存储器空间
TMS320C6204存储器采用线性编址方 案,除了CPU内部寄存器外,所有其他设 备(包括外设控制寄存器、外部存储器等) 都编址在一个统一的地址空间中,地址总 线为32位,所以地址空间为:
0x0000’0000 - 0xFFFF’FFFF
C6204地址映射
外部存储器接口
C6204提供了两个外部存储器总线接口: 1. EMIF
typedef unsigned short int TUint16;
typedef signed int
TSint32;
typedef unsigned int
TUint32;
typedef signed long int TSint64;
typedef unsigned long int TUint64;
TMS320C6204结构图
DSP Hareware Resource
• 64KBytes Internal Program RAM • 64KBytes Internal Data RAM • 2 32Bits -Timers • 2 McBSP(Multichannel Buffered Serial Port) • 32Bits EMIF Interface • 32Bits XBUS(Expansion Bus) • 16 Level Interrupt,6 External Interrupt Source
typedef float
TFloat32;
typedef double
TDouble64;
typedef unsigned char
TBool;
注释:程序中只能使用在此处定义的数据类型,不得直接使用int等标准类型定义变量。
C语言库文件
C6000系列处理器使用了两种库文件:
• rts6200.lib、rts6400.lib、rts6700.lib。这三个库使用little endian 模式,分别适用于C6200、C6400、C6700系列处理器。
• rts6200e.lib、rts6400e.lib、rts6700e.lib。这三个库使用Big endian模式,分别适用于C6200、C6400、C6700系列处理器。
相关文档
最新文档