CN103530264A - 一种dsp串行在线烧写装置 - Google Patents
一种dsp串行在线烧写装置 Download PDFInfo
- Publication number
- CN103530264A CN103530264A CN201310498046.6A CN201310498046A CN103530264A CN 103530264 A CN103530264 A CN 103530264A CN 201310498046 A CN201310498046 A CN 201310498046A CN 103530264 A CN103530264 A CN 103530264A
- Authority
- CN
- China
- Prior art keywords
- dsp
- programming
- flash
- serial
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
一种DSP串行在线烧写装置,主要包括DSP芯片和Flash外部存储器,DSP芯片连接控制计算机,Flash外部存储器连接DSP芯片,工作时,控制计算机通过串行接口对DSP软件进行编写,实现文件烧写功能后,再通过编程器完成DSP芯片的首次烧写,随后进行在线DSP程序烧写时,通过串口用已烧写的DSP程序去烧写将要烧写的目标程序,然后覆盖更新原Flash存储器中的DSP程序,实现DSP上电复位后自动加载运行。本发明直接通过串口烧写目标代码,方法简单灵活、稳定可靠,由于烧写过程简单,极大提高了产品的研发速度、缩短了研制周期。
Description
技术领域
本发明涉及一种在线烧写装置,尤其是一种DSP串行在线烧写装置。
背景技术
现今高速DSP的内存不再基于Flash结构,而是采用存取速度更快的RAM结构。DSP掉电后,其内部RAM中的程序和数据将全部丢失,所以在脱离仿真器的环境中,通常的做法是事先将程序的可执行代码存入片外的EPROM或Flash中,在DSP***上电后,将自动的把存储在DSP芯片外部非掉电易失存储器内的用户程序代码搬移到DSP芯片中高速的片内RAM或***中的扩展存储器内,搬移成功后自动执行代码,完成DSP***上电的自启动。在目前的应用中,选择DSP和Flash组成的自举***模式比较普遍,而对于Flash程序的烧写方法一般利用烧写工具将编程器能够识别的目标文件烧写到Flash相应的位置,上电复位后自动进行自举。在实际工程应用中,从产品的研制到产出,通常需要不断的改进和完善DSP软件***,从而需要反复烧写DSP程序,而运用传统的DSP程序烧写方法则需要通过电路板上的JTAG口连接烧写器,从而导致产品不断的拆卸。然而在工程应用中,对于固化了的产品结构,一般不支持频繁的拆卸和插拔,这对于产品的研发设计过程中进行的DSP反复烧写十分不利,严重的还会减缓产品的研发进度。。
发明内容
为解决上述问题,本发明的目的在于提供一种可以在不拆卸和插拔DSP芯片的情况下进行DSP软件在线烧写的装置。
本发明通过以下技术方案予以实现。
一种DSP串行在线烧写装置,主要包括DSP芯片和Flash外部存储器, DSP芯片连接控制计算机,Flash外部存储器连接DSP芯片,工作时,控制计算机通过串行接口对DSP软件进行编写,实现文件烧写功能后,再通过编程器完成DSP芯片的首次烧写,随后进行在线DSP程序烧写时,通过串口用已烧写的DSP程序去烧写将要烧写的目标程序,然后覆盖更新原Flash存储器中的DSP程序,实现DSP上电复位后自动加载运行。
所使用的DSP芯片为浮点型数字信号处理器TMS320C6713。
所使用的Flash存储器为ATMEL公司AT49BV163DT-70TU。
本发明在DSP芯片中第一次烧写了具有烧写Flash功能的程序后,以后更改DSP程序则无需专用的烧写工具,也无需拆卸已装好的产品,直接通过串口烧写目标代码,方法简单灵活、稳定可靠,由于烧写过程简单,极大提高了产品的研发速度、缩短了研制周期。
附图说明
图1为本发明的构件框图;
图2为本发明的引脚连接图;
图3为本发明的Flash擦除流程图;
图4为本发明的写Flash流程图。
具体实施方式
以下通过实例形式,对本方案的内容作进一步详细说明,但不应就此理解为本方案所述主题的范围仅限于以下的实施例,在不脱离本方案上述技术思想情况下,凡根据本领域普通技术知识和惯用手段做出的各种修改、替换和变更,均包括在本方案的范围内。
如图1所示,一种DSP串行在线烧写装置,主要包括DSP芯片和Flash外部存储器, DSP芯片连接控制计算机,Flash外部存储器连接DSP芯片,工作时,控制计算机通过串行接口对DSP软件进行编写,实现文件烧写功能后,再通过编程器完成DSP芯片的首次烧写,随后进行在线DSP程序烧写时,通过串口用已烧写的DSP程序去烧写将要烧写的目标程序,然后覆盖更新原Flash存储器中的DSP程序,实现DSP上电复位后自动加载运行。
所使用的DSP芯片为浮点型数字信号处理器TMS320C6713。
所使用的Flash存储器为ATMEL公司AT49BV163DT-70TU。
DSP处理器在复位后可以自动从外部存储设备自动加载程序运行,我们将这种方式称为“引导”。TI公司的新一代浮点型数字信号处理器TMS320C6713提供了一系列的外部引脚BOOTMOODE[4:0]来完成芯片的状态配置。***上电后,复位信号RESET有效,芯片复位。在RESET信号上升沿锁存了BOOTMOODE[4:0]信号,借以决定DSP芯片的存储映射方式、地址0处的存储器类型以及复位后芯片的自举模式。复位结束后,芯片从存储器的0地址开始执行代码。DSP自举***中选用的Flash存储器为ATMEL公司AT49BV163DT-70TU,该Flash的存储容量为16Mbit,***的基本连接如图2所示。
DSP的读写信号OE、WR分别与Flash的OE、WE直接相连;CE连通Flash的CE,从而使能Flash;因为在本***中,对Flash的读写数据设定为16位,故字节使能信号BYTE拉高;Flash的数据线和地址线与DSP相连,这样就构成了一个简单的16位数据并行的自举***。在这样的自举***中,将可执行代码烧写到外部FLASH中,实现DSP上电复位后的自动加载运行。
1.二级装载程序的实现
和以往TI公司的DSP(如3x,4x)采用引导表由固化在DSP内部的引导程序实现程序的自引导不同,TMS320C6000系列DSP采用的是一种新的引导方法,对于TMS320C6713,上电后,若选择从EMIF引导程序,则DSP自动将位于地址空间CE1(0x90000000~0x9FFFFFFF)开头的1KB代码传输到地址空间0处。它的数据传输采用默认时序,用户可以选择外部程序存储器的宽度(8位/16位/32位),然后由EMIF自动将几次读入的数据合成32位数据。传输由DSP中的EDMA通道以单帧的形式自动进行,传输完成后,程序从地址空间0处开始运行。因此,要在TMS320C671x中实现基于FLASH的自引导功能,必须将FLASH配置在DSP的CE1地址空间中。在组合导航***中,由于DSP软件文件比较大,而TMS320C6713 中一级加载的程序段空间只有1K,因此需要编写二级装载程序。二级转载程序的实现如下:
二级Bootloader代码不能超过ROM加载的长度1K,TMS320C6713二级Bootloader代码大小在1K以内,步骤如下:
第一、 配置EMIF寄存器使能访问到所连接的外部存储器;
第二、 从Flash中根据各段的地址信息将其复制到相应的物理地址中;
第三、 跳转至实际应用的入口处。
这里的入口并非main()函数,而是c_int00()函数,因为***必须在此函数运行后才能建立起C语言的运行环境,继而才能进入main()函数。以下是第二步数据传输的代码片断:
mvkl copyTable, a3;//读取复制表地址指针
mvkh copyTable, a3
copy_section_top:
ldw *a3++, b0 ;//段长度
ldw *a3++, b4 ;//段在Flash中的地址
ldw *a3++, a4 ;//段要存放的目标物理地址
nop 2
[!b0] b copy_done ;//判断是否复制完毕
nop 5
copy_loop:
ldb *b4++,b5
sub b0,1,b0
[b0] b copy_loop ;//判断该段是否复制完毕
[!b0] b copy_section_top
zero a1
[!b0] and 3, a3, a1
stb b5, *a4++
[!b0] and -4, a3, a5
[a1] add 4, a5, a3
copy_done: ;//复制完毕,跳转至c_int00()函数入口
mvkl .S2 _c_int00,B0
mvkh .S2 _c_int00,B0
b .S2 B0
nop 5
2.程序烧写实现
TMS320C6713 DSP对AT49BV163DT Flash存储器内数据的读操作,其访问方法与DSP对内部RAM的操作相同。但是对于Flash存储器内数据的写操作则不同,必须严格按照一定的时序,在指定的地址空间中写入特定的控制命令字,才能完成写操作。
通常,在对Flash存储器进行编程之前,必须将Flash存储器中待写的区域进行擦除。当TMS320C6713 DSP软件接收到软件烧写命令后,首先必须关闭中断,完全进入程序烧写流程。关闭中断后整片擦除Flash芯片,擦除操作流程见图3。
在DSP中具体编码实现如下:
unsigned int i;
unsigned char LastToggle_Bit,CurrentToggleBit;
/*-------------关中断----------------*/
IER &=~0x20; //timer1中断IER &=~0x20,int4中断:IER &=~0x4000;*/
IER &=~0x4000;
CSR = 0x00;
//读ID
FLASH_CMD_1=0xaa;
FLASH_CMD_2=0x55;
FLASH_CMD_1=0x90;
FLASH_CMD_1 = 0xaa;
//擦除整片
FLASH_CMD_2 = 0x55;
FLASH_CMD_1 = 0x80;
FLASH_CMD_1 = 0xaa;
FLASH_CMD_2 = 0x55;
FLASH_CMD_1 = 0x10;
//判断是否擦除完毕
LastToggle_Bit = (*(volatile unsigned char*)FLASH_BASE_ADDR) & 0x40;
CurrentToggleBit = (*(volatile unsigned char*)FLASH_BASE_ADDR) & 0x40;
for(i = 0; ; i++)
{
LastToggle_Bit = CurrentToggleBit;
CurrentToggleBit = (*(volatile unsigned char*)FLASH_BASE_ADDR) & 0x40;
if(LastToggle_Bit == CurrentToggleBit) break;
}
确认擦除完成后向串口发送烧写DSP程序命令,等待接收DSP软件代码。上位机收到命令后,通过串口向DSP分包发送需要烧写的程序文件*.bin,DSP收到后验证代码无误则向Flash写入DSP程序,其操作流程如图4所示。
详细编程实现如下:
void WriteFlash(unsigned int Addr,unsigned int Val)
{
FLASH_CMD_1=0xaa;
FLASH_CMD_2=0x55;
FLASH_CMD_1=0xa0;
*(unsigned short *)Addr=Val;
WriteIsOver();
}
其中WriteIsOver()函数是判断本次操作是否完成,因为每次对Flash存储器发出操作命令时,必须等Flash存储器完成本次操作后才能发出下一次的操作指令。
Claims (3)
1.一种DSP串行在线烧写装置,其特征在于:主要包括DSP芯片和Flash外部存储器, DSP芯片连接控制计算机,Flash外部存储器连接DSP芯片,工作时,控制计算机通过串行接口对DSP软件进行编写,实现文件烧写功能后,再通过编程器完成DSP芯片的首次烧写,随后进行在线DSP程序烧写时,通过串口用已烧写的DSP程序去烧写将要烧写的目标程序,然后覆盖更新原Flash存储器中的DSP程序,实现DSP上电复位后自动加载运行。
2.根据权利要求1所述的DSP串行在线烧写装置,其特征在于:所使用的DSP芯片为浮点型数字信号处理器TMS320C6713。
3.根据权利要求1所述的DSP串行在线烧写装置,其特征在于:所使用的Flash存储器为ATMEL公司AT49BV163DT-70TU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310498046.6A CN103530264A (zh) | 2013-10-22 | 2013-10-22 | 一种dsp串行在线烧写装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310498046.6A CN103530264A (zh) | 2013-10-22 | 2013-10-22 | 一种dsp串行在线烧写装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103530264A true CN103530264A (zh) | 2014-01-22 |
Family
ID=49932289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310498046.6A Pending CN103530264A (zh) | 2013-10-22 | 2013-10-22 | 一种dsp串行在线烧写装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103530264A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912376A (zh) * | 2016-07-06 | 2016-08-31 | 中国北方车辆研究所 | 基于tms320f28335pfga的程序烧写*** |
CN107015833A (zh) * | 2017-04-14 | 2017-08-04 | 湖南威胜信息技术有限公司 | 嵌入式设备应用程序的自恢复方法 |
CN108038067A (zh) * | 2017-12-27 | 2018-05-15 | 西安奇维科技有限公司 | 一种通过串口进行dsp程序烧制的方法 |
CN108108179A (zh) * | 2017-12-15 | 2018-06-01 | 中国船舶重工集团公司第七0七研究所 | 一种基于串口的tms32c6713程序烧录flash方法 |
-
2013
- 2013-10-22 CN CN201310498046.6A patent/CN103530264A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912376A (zh) * | 2016-07-06 | 2016-08-31 | 中国北方车辆研究所 | 基于tms320f28335pfga的程序烧写*** |
CN107015833A (zh) * | 2017-04-14 | 2017-08-04 | 湖南威胜信息技术有限公司 | 嵌入式设备应用程序的自恢复方法 |
CN108108179A (zh) * | 2017-12-15 | 2018-06-01 | 中国船舶重工集团公司第七0七研究所 | 一种基于串口的tms32c6713程序烧录flash方法 |
CN108038067A (zh) * | 2017-12-27 | 2018-05-15 | 西安奇维科技有限公司 | 一种通过串口进行dsp程序烧制的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609286B (zh) | 一种基于处理器控制的fpga配置程序远程更新***及其方法 | |
CN102306125B (zh) | 一种flash存储器的数据擦写方法 | |
CN106293807A (zh) | 一种基于DSP的Flash芯片引导加载方法 | |
CN1318979C (zh) | 更新光盘***固件的方法 | |
CN102565671B (zh) | 一种集成电路测试仪在线编程的动态配置方法 | |
TWI454906B (zh) | 資料讀取方法、快閃記憶體控制器與儲存系統 | |
CN103927187B (zh) | 嵌入式***程序执行方法 | |
CN103136028A (zh) | 一种基于fpga的flash存储器远程在线升级方法 | |
CN104200843A (zh) | 闪存烧入器、烧入***及烧入方法 | |
CN103530264A (zh) | 一种dsp串行在线烧写装置 | |
CN102819442B (zh) | 一种嵌入式设备程序烧写的方法及*** | |
CN106303707A (zh) | 一种版本烧录方法、***及终端 | |
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN105955764A (zh) | 一种stm32单片机iap串口程序烧录的改进方法 | |
JP6550269B2 (ja) | プログラム作成支援装置、制御方法およびプログラム | |
CN109669729A (zh) | 一种处理器的启动引导方法 | |
CN104156234A (zh) | 启动多核处理器、bootloader大小端模式自适应的方法及装置 | |
CN102262570A (zh) | 风扇转速表更新方法 | |
CN108182079B (zh) | 一种基于串口的tms320c6748程序加载方法 | |
CN105719692A (zh) | 非易失性存储器件及其操作方法 | |
CN101639786A (zh) | 引导嵌入式操作***启动的方法和装置 | |
CN103793263A (zh) | 一种基于PowerPC处理器的DMA事务级建模方法 | |
CN205986931U (zh) | 一种基于NVMe SSD的交换机 | |
CN109426511B (zh) | 软核更新方法和*** | |
CN101118494A (zh) | 嵌入式设备从外接电子卡启动操作***的***与方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140122 |
|
WD01 | Invention patent application deemed withdrawn after publication |