dsp程序在线仿真和固化到FLASH两种状态下运行的区别(包你明白)
Flash做为DSP程序加载和引导

Flash做为DSP程序加载和引导1 引言在现代数字信号处理系统中,采用Flash做为DSP程序加载和引导是一种常用的方法,它为用户对那些将来可能需要改变数据或代码的系统维护提供了有效手段。
利用Flash器件,能够实现在线程序编写,减少EPROM程序烧写带来的麻烦。
2 Flash AM29LV800B简介Flash存储器又称闪存,它结合了ROM和RAM的特点,不仅具备电子可擦除可编程(EEPROM)功能,而且不会断电丢失数据同时能快速读取数据,它具有在线电擦写、低功耗、大容量、擦写速度快等特点,属于EEPROM的改进产品。
2.1主要性能AM29LV800BB-90EC是AMD公司AM29LV800B系列的一种器件,其主要性能如下:访问时间:90 ns;存储容量:8Mbit;工作温度范围:-55~+125℃:在线编程电压:3.0~3.6 V;低功耗:读操作时电流为7 mA,编程/擦除时电流为15 mA。
2.2引脚功能说明A0-A18:19根地址线;DQ0-DQ14:15根数据线;DQ15/A-1:当配置为16位字模式时,该引脚为数据I/O,组成16位字的最高位DQ15;当配置为8位字节模式时,该引脚为地址输入,为地址线的最低有效位A-1;2.3工作模式2.3.1读模式为了读取数据,系统需将CE和OE设为低电平,同时将WE设为高电平。
在器件上电或硬件复位后,器件默认设置为读模式。
2.3.2写模式为了向器件写入数据或指令,系统需将CE和WE置为低电平,同时将OE 置为高电平,写操作需要4个周期,前3个周期向两个特定地址写入3个特定字符,第4个周期将所需数据写入相应地址:2.3.3复位向器件的任意地址写入特定指令,该器件复位,复位后默认为读模式。
2.3.4自动选择模式向器件两个特定地址写入3个特定的字符,该器件就进入自动选择模式。
在该模式下获取器件的厂商号和设备号,系统必须通过复位指令断开。
2.3.5擦除模式片擦除是一个6周期操作,需向两个特定地址写入4个特定字符。
仿真器与DSP开发一般常见问题

z DSP仿真器为什么必须连接目标系统(Target)?DSP的仿真器同单片机的不同,仿真器中没有DSP,提供IEEE标准的JTAG口对DSP 进行仿真调试,所以仿真器必须有仿真对象,及目标系统。
目标系统就是你的产品,上面必须有DSP。
仿真器提供JTAG同目标系统的DSP相接,通过DSP实现对整个目标系统的调试。
z仿真工作正常对于DSP的基本要求1)DSP电源和地连接正确。
2)DSP时钟正确。
3)DSP的主要控制信号,如RS和HOLD 信号接高电平。
4)C2000的watchdog关掉。
5)不可屏蔽中断NMI上拉高电平。
z CCS或Emurst运行时提示“Can't Initialize Target DSP”1)仿真器连接是否正常? 2)仿真器的I/O设置是否正确? 3)XDSPP仿真器的电源是否正确? 4)目标系统是否正确? 5)仿真器是否正常?6)DSP工作的基本条件是否具备。
建议使用目标板测试。
z为什么CCS需要安装Driver?CCS是开放的软件平台,它可以支持不同的硬件接口,因此不同的硬件接口必须通过标准的Driver同CCS连接。
z Link的cmd文件的作用是什么?Link的cmd文件用于DSP代码的定位。
由于DSP的编译器的编译结果是未定位的,DSP 没有操作系统来定位执行代码,每个客户设计的DSP系统的配置也不尽相同,因此需要用户自己定义代码的安装位置。
以C5000为例,基本格式为:-o sample.out-m sample.map-stack 100sample.obj meminit.obj-l rts.libMEMORY {PAGE 0: VECT: origin = 0xff80, length 0x80PAGE 0: PROG: origin = 0x2000, length 0x400PAGE 1: DATA: origin = 0x800, length 0x400}SECTIONS {.vectors : {} >PROG PAGE 0.text : {} >PROG PAGE 0.data : {} >PROG PAGE 0.cinit : {} >PROG PAGE 0.bss : {} >DATA PAGE 1}z如何将OUT文件转换为16进制的文件格式?DSP的开发软件集成了一个程序,可以从执行文件OUT转换到编程器可以接受的格式,使得编程器可以用次文件烧写EPROM或Flash。
dsp程序在线仿真和固化到FLASH两种状态下运行的区别(包你明白)

dsp程序在线仿真和固化到FLASH两种状态下运行的区别(包你明白)dsp程序在线仿真和固话到FLASH两种状态下运行的区别1.程序烧写至RAM(1)准备(2)新建工程(3)设置头文件索引路径(4)配置仿真器(5)添加源文件(6)添加库(7)其他说明(8)编译及调试A.编译B.调试2.程序烧写至Flash(1)设置Properties→General(2)添加源文件及修改主函数(3)设置头文件索引路径(4)编译及下载准备:S5.5;2.F28335核心板;3.XDS100V3仿真器1.程序烧写至RAM在程序调试阶段,程序烧写至RAM,配合仿真器对程序进行调试。
在Properties→General中①在Manage Configurations中设置Debug为Active;②在Linker command file中选择28335_RAM_lnk.cmd。
(1)准备在Workspace新建文件夹Project,在文件夹下拷入文件“DSP2833x_common和DSP2833x_headers”(可从TI官方文件获得)(2)新建工程Project →New CCS Project,新建工程名Exam_F28335_ADC_SeqModeTest,从DSP2833x_headers\cmd中拷贝DSP2833x_Headers_nonBIOS.cmd到Exam_F28335_ADC_SeqModeTest 文件夹下,并新建一个Source文件夹,保存源文件(3)设置头文件索引路径右键点击工程名,选择Properties,在C2000 Complier下的Include Options,添加"${PROJECT_ROOT}\..\DSP2833x_headers\include""${PROJECT_ROOT}\..\DSP2833x_common\include"点击OK后,工程文件的Include栏中有添加的索引路径,如下图说明添加成功(失败,则为灰色)(4)配置仿真器右键点击工程名,选择NEW →Target Configuration File,设置File Name点击Finish出现如下界面,选择仿真器型号XDS100V3,器件型号选择TMS320F28335,点击右侧Save,保存配置。
DSP系统应用中FLASH在线编程方法

摘 要: 介绍了在TI公司TMS320VC33 DSP应用系统中,通过JTAG口对DSP外部FLASH存储器实现在线编程在线编程的方法,给出了示例源程序,完成了DSP系统加电后的自动装载运行。 关键词: DSP JTAG FLASH存储器 在线编程 Bootload
2 TMS320VC33简介 TMS320VC33是美国TI公司推出的TMS320C3X系列的32位浮点数字信号处理器,它是在TMS320C31浮点DSP的基础上开发的一个价格更低的DSP,该产品具有高速、低功耗、低成本、易于开发等显著优点。TMS320VC33采用内部1.8V,外部3.3V供电,因而它的功耗比原有型号TMS320C31的功耗降低了大约一个数量级,而且能支持高达150M/FLOPS的运行速率。其主要特性如下: CPU是32bit的高性能CPU:可进行16/32b整数和32/40b的浮点操作;内含8个扩展精度寄存器;有2个地址发生器、8个辅助寄存器和2个辅助寄存器算术单元(ARAU)。 片内存储器为32bit指令字、24bit地址线、34K×32b(1.1Mb)的双静态RAM。 外围接口具有启动程序装载功能;内含5倍频的锁相环(PLL)时钟发生器;片内存储器可映射外设,其中包括一个串行口、两个32bit定时器和一个DMA;具有四个内部译码页选,可大大简化TMS320VC33与I/O及存储器的接口。3 TMS320VC33程序引导功能 TMS320VC33具有两种存储器映射方式,即MP(Microprocessor Mode)方式和MC/BL(Microcomputer/Bootloader Mode)方式,两种方式下中断向量的位置不同。常用的是MC方式。在该方式下,MCBL/MP引脚接高电平,内部ROM被映射到000~FFF空间。这段ROM中含有器件生产厂家固化的引导程序引导程序(BootLoader),该引导程序可以将DSP实时运行的程序和数据从外部低速ROM或串行口装入到高速RAM中。 TMS320VC33复位后即运行内部固化的引导程序,引导程序通过查询四个中断引脚来确定装入方式。这些引脚为低电平有效,查询顺序依次为INT3、INT0、INT1、INT2;当INT3有效时,为串行装入方式;当INT0有效时,从外部地址0x001000处装入(BOOT1);当INT1有效时,从外部地址0x400000处装入(BOOT2);当INT2有效时,从外部地址0xfff000处装入(BOOT3)。 TMS320VC33具有四个快速页选信号,用于对外部地址空间寻址,其映射如表2所示。
单片机原理及应用(第三版)张毅刚-课后习题答案完整版

第 1 章思考题及习题 1 参考答案一、填空1. 除了单片机这一名称之外,单片机还可称为或。
答:微控制器,嵌入式控制器.2. 单片机与普通微型计算机的不同之处在于其将、、和三部分,通过内部连接在一起,集成于一块芯片上。
答:CPU、存储器、I/O 口、总线3. AT89S52 单片机工作频率上限为MHz 。
答:33 MHz 。
4. 专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低和提高。
答:成本,可靠性。
二、单选1. 单片机内部数据之所以用二进制形式表示,主要是A.为了编程方便 B .受器件的物理性能限制C.为了通用性 D .为了提高运算速度答:B2. 在家用电器中使用单片机应属于微计算机的。
A .辅助设计应用B.测量、控制应用C.数值计算应用 D .数据处理应用答:B3. 下面的哪一项应用,不属于单片机的应用范围。
A .工业控制B.家用电器的控制C.数据库管理D.汽车电子设备答:C三、判断对错1. STC系列单片机是8051 内核的单片机。
对2. AT89S52 与AT89S51 相比,片内多出了4KB 的Flash 程序存储器、128B 的RAM 、1个中断源、 1 个定时器(且具有捕捉功能)。
对3. 单片机是一种CPU。
错4. AT89S52 单片机是微处理器。
错5. AT89C52 片内的Flash程序存储器可在线写入,而AT89S52 则不能。
错6. 为AT89C51 单片机设计的应用系统板,可将芯片AT89C51 直接用芯片AT89S51 替换。
对7. 为AT89S51 单片机设计的应用系统板,可将芯片AT89S51 直接用芯片AT89S52 替换。
对8. 单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP的长处。
对四、简答1. 微处理器、微计算机、微处理机、CPU 、单片机、嵌入式处理器它们之间有何区别?答:微处理器、微处理机和CPU 它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
DSP程序在线升级报告(本人觉得最给力的资料)

DSP程序在线升级唐俊松*******************.cn2015/12/04 1. 引言一般而言,DSP程序更新是在CCS环境下通过JTAG接口来实现的。
但JTAG烧写程序只能实现一对一烧写(即电脑到DSP),且不能远距离烧写程序。
而当产品发布后或需要同时升级多个DSP程序时,通过JTAG烧写程序则很难实现。
在线程序升级的主要思想是通过串口通信更新程序,通过串口通信可实现程序远程升级且可同时实现对多个DSP的程序更新,这有效地解决了JTAG烧写程序所存在的弊端。
1. 通过JTAG更新DSP程序2. 通过串口(RS232)更新DSP程序图1.1 通过不同方式实现DSP程序更新2. 程序在线升级的基本思想基于串口通信的程序在线升级功能框图如图2.1所示,底层程序(Prog Local)和应用程序(Prog App)分别由两个独立的CCS Project产生。
底层程序(Prog Local)是产品发布前通过JTAG烧写固化在DSP指定Flash空间中的程序,不允许用户修改和擦除,主要用于实现与上位机的通信,同时在需要升级程序时将上位机发送过来的程序代码烧写到FLASH中。
应用程序(Prog App)是可以更新的程序。
通过CCS编译产生程序代码文件(hex),然后通过RS232通信将程序代码发送到DSP,继而由底层程序(Prog Local)将应用程序代码烧写到应用程序所对应FLSH空间(Prog App)中。
图2.1 DSP程序在线升级功能框图在线升级程序流程图如图2.2所示。
DSP上电复位后先运行底层程序,在底层程序中判断是否需要升级,如不需要升级,则跳转到应用程序执行。
如需要升级,则擦除应用程序对应FLASH区,并将升级代码写入到应用程序FLASH区中。
图2.2 DSP程序更新流程图3. 在线程序升级的具体实现3.1 FLASH分配要实现程序在线升级,必须使底层程序和应用程序相互独立。
DSP外挂FLASH在线编程的研究与实现

目前 DSP已经被广泛的应用到了各种数字信号处理系统 中 ,如果 DSP系统要脱离仿真器运行的话 ,就必须将程序代码 存储在非易失性存储器中 。 Flash就是一种高密度 、非易失性 的电可擦写的存储器 。它体积小 、功耗低 、可进行多次 (一万 次以上 )的电擦写 ,而且成本比传统的 EPROM 要低 ,很适合于 低功耗 、小尺寸和高性能的便携式系统 。与硬盘相比 ,它还具 有抗振动 、抗干扰等优点 [1 ] 。于是怎样对 Flash进行在线擦除 和读写 ,以及怎样将 Flash中的数据在上电时加载进 DSP内部 的 RAM ,是 Flash在 DSP系统中得到应用要解决的基本问题 。
3 编程原理及具体实现过程
在 CCS集成开发环境下 ,通过仿真器对 Flash烧写的步骤 如下 。
2549 - 2554.
[ 7 ] Zhang X P. , DesailM. D. Adap tive denoising based on SURE risk [ J ]. IEEE Signal Processing Letters, 1998: 5 (10) : 265 - 267.
[ 8 ] 董卫军 , 卢燕宁. 利用小波分析进行图像去噪 [ J ]. 微机发 展. 2003, 13 ( 7) : 88 - 90.
本设计采用的是 TI公司的一款 16位高速低功耗的 DSP 芯片 TM S320VC5509A (以下简称 C5509A )和 AMD公司生产的 Flash存储器 AM29LV800。 C5509A 片内拥有 128 ×16k 高速 RAM ,性价比很高 ,被广泛应用于嵌入式手持设备 、通信数据 采集等领域 。C5509A 的数据和程序空间统一编址 ,通过四个 片选信号 ,可寻址 16K字节的外部数据 /程序空间 ,并可通过 EM IF (外部存储器接口 )实现多种存储器的无缝连接 。
DSP外部Flash存储器在线编程的软硬件设计.

DSP外部Flash存储器在线编程的软硬件设计摘要:详细介绍DSP与Flash存储器的两种硬件接口方式及在线编程,分析了两种硬件接口方式下在线编程的区别,给出了相应的在线编程核心代码并在实际电路上测试通过,可作为DSP嵌入式系统设计的参考。
关键词:在线编程;Flash存储器;硬件握手;软件握手引言随着嵌入式系统向体积更小、性能更高的方向发展,传统的DIP(双列直插)集成电路因体积庞大、元器件I/O引脚数量受封装限制等缺陷,已逐渐淡出人们的视线。
在嵌入式产品设计中,大量采用SMT贴片元器件,既提高了性能,又节省了宝贵的空间。
由于采用贴片元器件,无法将Flash存储器等元器件从电路板上取下来单独进行编程。
专用编程器的方式已经很少采用,取而代之的是采用基于仿真器连接的JTAG接口的在线编程方式。
这种在系统带电编程的方式不受时间和空间的限制,随时随地都可进行,且产品软件版本升级容易。
在嵌入式系统中,为了实现程序的脱机自动运行,程序往往固化在电可擦除的Flash存储器中。
要实现一个嵌入式系统的带电脱机运行,在线编程就成为嵌入式系统开发过程的必经之路。
由于在线编程涉及到硬件和软件方面的内容,因此要从顶层设计和系统的角度来考虑在线编程。
硬件设计要为软件设计作铺垫,尽可能简化软件设计。
本文以TI公司的DSP芯片TMS320C6711D和AMD公司的4 Mb Flash存储器AM29LV400B为例来介绍两种在线编程方式。
1 DSP与Flash存储器的两种硬件连接关系1.1 以Ready信号作为硬件握手带有Ready信号的TMS320C6711D的EMIF(Exterhal Memory Interface)接口与Flash存储器AM29LV400B的硬件连接如图1所示。
由于AM29LV-400B输出的就绪信号/忙信号()为OD(漏极开路)输出,需要在该信号上加上拉电阻并连接到VCC。
1.2 采用无Ready硬件连接的软件握手不带Ready信号的TMS320C6711D与Flash存储器AM29LV400B的硬件连接如图2所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
dsp程序在线仿真和固话到FLASH两种状态下运行的区别
1.程序烧写至RAM
(1)准备
(2)新建工程
(3)设置头文件索引路径
(4)配置仿真器
(5)添加源文件
(6)添加库
(7)其他说明
(8)编译及调试
A.编译
B.调试
2.程序烧写至Flash
(1)设置Properties→General
(2)添加源文件及修改主函数
(3)设置头文件索引路径
(4)编译及下载
准备:S5.5;2.F28335核心板;3.XDS100V3仿真器
1.程序烧写至RAM
在程序调试阶段,程序烧写至RAM,配合仿真器对程序进行调试。
在Properties→General中
•①在Manage Configurations中设置Debug为Active;
•②在Linker command file中选择28335_RAM_lnk.cmd。
(1)准备
在Workspace新建文件夹Project,在文件夹下拷入文件
“DSP2833x_common和DSP2833x_headers”(可从TI官方文件获得)
(2)新建工程
Project →New CCS Project,新建工程名
Exam_F28335_ADC_SeqModeTest,
从DSP2833x_headers\cmd中拷贝
DSP2833x_Headers_nonBIOS.cmd到Exam_F28335_ADC_SeqModeTest 文件夹下,并新建一个Source文件夹,保存源文件
(3)设置头文件索引路径
右键点击工程名,选择Properties,在C2000 Complier下的Include Options,添加
"${PROJECT_ROOT}\..\DSP2833x_headers\include"
"${PROJECT_ROOT}\..\DSP2833x_common\include"
点击OK后,工程文件的Include栏中有添加的索引路径,如下图说明添加成功(失败,则为灰色)
(4)配置仿真器
右键点击工程名,选择NEW →Target Configuration File,设置File Name
点击Finish出现如下界面,选择仿真器型号XDS100V3,器件型号选择TMS320F28335,点击右侧Save,保存配置。
可以点击Test Connection测试仿真器是否连接成功,见调试部分。
(5)添加源文件
复制需要的.c及.asm文件到source文件夹,复制到文件夹中后会自动出现在工程列表中。
一般有DSP2833x_common\source中的
DSP2833x_ADC_cal.asm DSP2833x_CodeStartBranc h.asm
DSP2833x_DefaultIsr.c DSP2833x_Gpio.c
DSP2833x_SysCtrl.c DSP2833x_usDelay.asm
以及DSP2833x_headers\source中的DSP2833x_GlobalVariableDefs.c 如果用到定时器,需要添加DSP2833x_CpuTimers.c
如果用到ADC,则需要添加DSP2833x_Adc.c
如果用到中断,需要添加DSP2833x_PieCtrl.c、 DSP2833x_PieVect.c 如果用到SCI,需要添加DSP2833x_Sci.c
其他的类推。
(6)添加库
如果程序中有三角函数或者开根号等运算,推荐只用fastPTS或IQmath库来计算,在C2000 Linker下的Flie Search Path中添加。
(官网下载)
在主函数中,需要添加头文件:
#include “math.h”
#include “C28x_FPU_FastPTS.h”
具体可参考链接
在Include library flie or command file中添加
”rts2800_fpu32.lib”
在Add <dir> to library search path中添加索引路径
"${PROJECT_ROOT}\..\DSP2833x_common\lib"
然后将最下面的Disable automatic RTS selection选中,如下图
点击Build,在Link Order中,点击Add添加库文件。
(7)其他说明
•①cmd文件的选择则根据运行模式选择:
在线仿真模式:28335_RAM_link.cmd
Flash烧写模式:F28335.cmd
•②在main.c文件中需要引用头文件
#include “DSP28x_Project.h”//包含所有的外设头文件及宏定义
(8)编译及调试
A.编译
点击或选择Build Project,编译工程文件,编译成功后工程列表中出现Binaries(包含.out文件)和Debug文件夹。
(验证程序)
B.调试
•①通断电顺序:
通电:将仿真器连接电脑,然后接通电源,最后打开仿真软件。
断电:仿真软件内部断开连接,关闭软件,断开电源,最后拔掉仿真器。
仿真器不为开发板/核心板供电
•②将仿真器连接电脑。
CCS软件自身集成仿真器驱动,因此插上仿真器后会自动安装驱动。
查看:右键“我的电脑”→“管理”→“设备管理器”
•③连接电源,板上有灯亮起。
连接成功后,点击.ccxml文件中的Test Connection,出现下图界面,界面中各项最后均为succeed则连接成功。
•④点击,进入下图Debug界面,表示连接成功,进入调试界面
变量观察:选中该变量,然后右键“Add Watch Expression”
2.程序烧写至Flash
在程序调试完成后,需要将程序烧写至Flash,这样可去掉仿真器,直接上电即可运行程序。
首先按照1中提到的步骤建立工程并完成程序的调试,调试完成后,对工程进行如下修改,将程序烧写至Flash:
(1)设置Properties→General
•①在Manage Configurations中设置Release为Active;
•②在Linker command file中选择F28335.cmd
在Predefined Symbols中添加预定义FLASH,如下图
根据板子的实际情况,如有需要,则要改变晶振设置等,一般采用默认值,如下图所示
设置完成后,点击OK,最终工程中原有的28335_RAM_lnk.cmd文件变成”Exclude from Build”模式,新添加了文件
F28335.cmd。
(2)添加源文件及修改主函数
在原工程的“Source”文件夹中添加源文件DSP2833x_MemCopy.c (路径DSP2833x_common\source)。
在主函数初始化部分InitPieVectTable();后添加:
#ifdef FLASH
MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsR unStart);
InitFlash(); //初始化Flash
#endif
(3)设置头文件索引路径
按照1中方式添加头文件索引路径和库函数及其索引路径
(4)编译及下载
•①点击或选择Build Project,编译工程文件,编译成功后工程列表中新增Release文件夹。
•②点击下载程序,将出现如下界面,将程序下载至FLASH中,中间不能出现间断。
下载成功后,点击下图中红色按钮,退出Debug界面
断开供电电源→断开仿真器,需要拔下JTAG插头,而不是仅断开仿真器的USB端,否则程序会出错→重新对板子供电
则程序烧写至FLASH,上电后即可使用。