CN105867977A - DSP用户程序升级及Flash下载方法 - Google Patents
DSP用户程序升级及Flash下载方法 Download PDFInfo
- Publication number
- CN105867977A CN105867977A CN201610206863.3A CN201610206863A CN105867977A CN 105867977 A CN105867977 A CN 105867977A CN 201610206863 A CN201610206863 A CN 201610206863A CN 105867977 A CN105867977 A CN 105867977A
- Authority
- CN
- China
- Prior art keywords
- dsp
- program
- flash
- internal ram
- initial address
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0024—Peripheral component interconnect [PCI]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种DSP用户程序升级及Flash下载方法,其技术特点是:将主机、FPGA、DSP及两片Flash连接在一起;将二次引导程序及引导服务程序下载到DSP内部RAM中;将Flash下载程序下载到DSP内部RAM中并运行;第二Flash芯片存储的二次引导程序自动复制到DSP内部RAM并开始执行;将第二Flash芯片存储的引导服务程序复制到DSP内部RAM中并开始执行;引导服务程序将从主机接收到的DSP用户程序更新到第一Flash芯片内。本实现DSP用户程序在线更新升级及Flash下载功能,在进行Flash烧写过程中不需要将代码进行格式转换,也不需要专门的烧写工具,大大提高了工作效率。
Description
技术领域
本发明属于信息技术领域,尤其是一种DSP用户程序升级及Flash下载方法。
背景技术
在使用DSP开发设计时,最终的程序代码都要存储在Flash中,在上电复位时将程序代码搬移到SDRAM或SRAM中运行。对于目前的应用系统来说,DSP程序的固化及升级十分不便,主要表现在:(1)目前Flash固化首先需要将生成的.out文件转换为.hex格式,然后利用专用Flash烧写工具将转换后的.hex文件烧写到Flash中;(2)DSP用户程序升级过程中还需要连接JTAG调试工具重复上述过程。
发明内容
本发明的目的在于克服现有技术的不足,提供一种设计合理且使用方便的DSP用户程序升级及Flash下载方法。
本发明解决其技术问题是采取以下技术方案实现的:
一种DSP用户程序升级及Flash下载方法,包括以下步骤:
步骤1、将主机通过FPGA与DSP连接在一起,同时DSP与两片Flash相连接,其中第一Flash芯片存储DSP用户程序,第二Flash芯片存储引导服务程序和二次引导程序;
步骤2、将二次引导程序下载到DSP内部RAM起始地址为0处的1K空间内;
步骤3、将引导服务程序下载到DSP内部RAM起始地址为0XF0000处的64K空间内;
步骤4、将Flash下载程序下载到DSP内部RAM起始地址为0X50000处的64K空间内,运行此程序将二次引导程序从DSP内部RAM中复制到第二Flash芯片的起始地址为0处1K空间内,将引导服务程序从DSP内部RAM中复制到第二Flash芯片的起始地址为0X400处64K空间内;从而完成引导服务程序及二次引导程序从RAM中到FLASH中的固化;
步骤5、将DSP的启动模式设置为ROM加载启动方式,上电后自动将第二Flash芯片存储的二次引导程序复制到DSP内部RAM起始地址为0处的1K空间内并开始执行;
步骤6、通过DSP内部RAM的二次引导程序将第二Flash芯片存储的引导服务程序复制到DSP内部RAM中并开始执行;
步骤7、引导服务程序判断存放在FPGA中的引导标志寄存器状态并分别进行处理:将从主机接收到的DSP用户程序更新到第一Flash芯片内,或者将第一Flash芯片存储的DSP用户程序直接拷贝到DSP内部RAM并运行;
所述主机通过PCIE总线与FPGA相连接,FPGA通过EMIFA总线与DSP相连接,DSP通过EMIFA总线与第一Flash芯片相连接,DSP通过EMIFB与第二Flash芯片相连接。
所述第二Flash芯片存储的二次引导程序位于第二Flash芯片的起始地址为0处,该二次引导程序的大小在1K范围内;所述第二Flash芯片存储的引导服务程序位于第二Flash芯片起始地址的1K后,该引导服务程序的大小在64K范围内。
所述二次引导程序、引导服务程序及Flash下载程序通过cmd文件加载到DSP内部RAM中。
所述二次引导程序复制到DSP内部RAM的起始地址为0的1K空间中;所述引导服务程序复制到DSP内部RAM的起始地址为0xF0000的64K空间中;所述Flash下载程序复制到DSP内部RAM的起始地址为0x50000的64K空间中。
本发明的优点和积极效果是:
本发明设计合理,其采用多级引导方式可方便地将DSP用户程序固化到Flash中,实现DSP用户程序在线更新升级及Flash下载功能,在进行Flash烧写过程中不需要将代码进行格式转换,也不需要专门的烧写工具,其操作方法简便、实用,大大提高了工作效率。
附图说明
图1是本发明的硬件设备连接示意图;
图2是发明的处理流程图。
具体实施方式
以下结合附图对本发明实施例做进一步详述:
一种DSP用户程序升级及Flash下载方法,包括以下步骤:
步骤1、将主机、FPGA、DSP及两片Flash连接在一起,构成DSP升级的硬件环境。
在图1中,主机通过PCIE接口与FPGA相连接,FPGA通过EMIFA总线与DSP相连接,DSP通过EMIFA总线和EMIFB总线与两片Flash相连接。在本实施例中,DSP采用TMS320C6416芯片,FPGA采用Xilinx公司的XC7A200T,FPGA中带有PCIE硬核,主机采用通用的计算机并通过PCIE总线与FPGA通信,FPGA通过EMIFA总线与DSP通信,Flash1存储DSP用户程序,Flash1通过EMIFA总线连接到DSP;Flash2中存储引导程序,Flash2通过EMIFB连接到DSP。然后,按照图2所示的处理流程进行处理。
步骤2、通过cmd文件将二次引导程序(Bootload)加载到DSP内部RAM起始地址为0处的1K空间内;
步骤3、通过cmd文件将引导服务程序(Bootservice)加载到DSP内部RAM起始地址为0XF0000处的64K空间内;
步骤4、通过cmd文件将Flash下载程序(downloadFlash)加载到RAM中起始地址为0x50000的64K空间中;运行该Flash下载程序(downloadFlash),将二次引导程序(Bootload)从RAM中复制到Flash2的CE1空间中起始地址为为0x64000000处,大小为1K;将引导服务程序(Bootservice)从RAM中复制到Flash2的CE1空间中起始地址为0x64000400处,大小为64K。
从而完成引导服务程序及二次引导程序从RAM中到FLASH中的固化。
步骤5、将DSP的启动模式设置为ROM加载启动方式,上电后自动启动DMA方式将Flash2存储的二次引导程序(Bootload)复制到DSP内部RAM起始地址为0处的1K空间内,然后从RAM地址0处开始执行二次引导程序(Bootload)程序。
由于用户程序一般大于1K,因此,需要编写二次引导程序(Bootload)并存放在Flash2起始地址为0处(0x64000000),即二次引导程序(Bootload)存储在Flash2的CE1空间处。在Flash2的1K后(0x64000400)存放引导服务程序(Bootservice),该引导服务程序(Bootservice)的大小在64K范围内。
在具体实施过程时,通过cmd文件将二次引导程序(Bootload)加载到DSP内部RAM起始地址为0的1K空间中。
步骤6、通过DSP内部RAM的二次引导程序(Bootload)将Flash2存储的引导服务程序(Bootservice)复制到DSP内部RAM起始地址为0xF0000的64K空间中,引导服务程序(Bootservice)开始执行。
在具体实施过程时,通过cmd文件将Flash2存储的引导服务程序(Bootservice)复制到DSP内部RAM的64K空间中。
步骤7、引导服务程序(Bootservice)通过判断存放在FPGA中的引导标志寄存器状态分别进行处理:将从主机接收到的DSP用户程序(usercode)更新到Flash1,或者将Flash1中的DSP用户程序(usercode)直接拷贝到DSP内部RAM并运行。
所有步骤中,通过map文件查看各个程序大小并设定各个程序段的空间,避免与RAM及FLASH中其他程序段重叠。
这样,当系统重新上电启动后,根据启动配置首先将EMIFB的CE1空间中前1K数据复制到RAM中运行,即运行二次引导程序(Bootload),将引导服务程序(Bootservice)从Flash2中复制到RAM中起始地址为0xF0000空间中并运行,该引导服务程序(Bootservice)通过判断引导标志寄存器(位于FPGA中)状态决定从Flash1中起始地址为0处复制64K用户程序代码到内部RAM起始地址为0处运行或是进入下载程序模式,以16K为1包接受用户通过PCIE总线下载到FPGA中的程序。从而完成DSP程序更新及Flash下载功能。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (5)
1.一种DSP用户程序升级及Flash下载方法,其特征在于包括以下步骤:
步骤1、将主机通过FPGA与DSP连接在一起,同时DSP与两片Flash相连接,其中第一Flash芯片存储DSP用户程序,第二Flash芯片存储引导服务程序和二次引导程序;
步骤2、将二次引导程序下载到DSP内部RAM起始地址为0处的1K空间内;
步骤3、将引导服务程序下载到DSP内部RAM起始地址为0XF0000处的64K空间内;
步骤4、将Flash下载程序下载到DSP内部RAM起始地址为0X50000处的64K空间内,运行此程序将二次引导程序从DSP内部RAM中复制到第二Flash芯片的起始地址为0处1K空间内,将引导服务程序从DSP内部RAM中复制到第二Flash芯片的起始地址为0X400处64K空间内;完成引导服务程序及二次引导程序从RAM中到FLASH中的固化;
步骤5、将DSP的启动模式设置为ROM加载启动方式,上电后自动将第二Flash芯片存储的二次引导程序复制到DSP内部RAM起始地址为0处的1K空间内并开始执行;
步骤6、通过DSP内部RAM的二次引导程序将第二Flash芯片存储的引导服务程序复制到DSP内部RAM中并开始执行;
步骤7、引导服务程序判断存放在FPGA中的引导标志寄存器状态并分别进行处理:将从主机接收到的DSP用户程序更新到第一Flash芯片内,或者将第一Flash芯片存储的DSP用户程序直接拷贝到DSP内部RAM并运行。
2.根据权利要求1所述的一种DSP用户程序升级及Flash下载方法,其特征在于:所述主机通过PCIE总线与FPGA相连接,FPGA通过EMIFA总线与DSP相连接,DSP通过EMIFA总线与第一Flash芯片相连接,DSP通过EMIFB与第二Flash芯片相连接。
3.根据权利要求1所述的一种DSP用户程序升级及Flash下载方法,其特征在于:所述第二Flash芯片存储的二次引导程序位于第二Flash芯片的起始地址为0处,该二次引导程序的大小在1K范围内;所述第二Flash芯片存储的 引导服务程序位于第二Flash芯片起始地址的1K后,该引导服务程序的大小在64K范围内。
4.根据权利要求1所述的一种DSP用户程序升级及Flash下载方法,其特征在于:所述二次引导程序、引导服务程序及Flash下载程序通过cmd文件加载到DSP内部RAM中。
5.根据权利要求1所述的一种DSP用户程序升级及Flash下载方法,其特征在于:所述二次引导程序复制到DSP内部RAM的起始地址为0的1K空间中;所述引导服务程序复制到DSP内部RAM的起始地址为0xF0000的64K空间中;所述Flash下载程序复制到DSP内部RAM的起始地址为0x50000的64K空间中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610206863.3A CN105867977B (zh) | 2016-04-01 | 2016-04-01 | DSP用户程序升级及Flash下载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610206863.3A CN105867977B (zh) | 2016-04-01 | 2016-04-01 | DSP用户程序升级及Flash下载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105867977A true CN105867977A (zh) | 2016-08-17 |
CN105867977B CN105867977B (zh) | 2019-06-14 |
Family
ID=56628090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610206863.3A Active CN105867977B (zh) | 2016-04-01 | 2016-04-01 | DSP用户程序升级及Flash下载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105867977B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886438A (zh) * | 2017-02-06 | 2017-06-23 | 仓智(上海)智能科技有限公司 | 基于fpga的系统远程更新方法 |
CN106951289A (zh) * | 2017-03-23 | 2017-07-14 | 苏州英威腾电力电子有限公司 | 一种在线升级方法、dsp控制器及升级系统 |
CN107015833A (zh) * | 2017-04-14 | 2017-08-04 | 湖南威胜信息技术有限公司 | 嵌入式设备应用程序的自恢复方法 |
CN107562504A (zh) * | 2017-09-11 | 2018-01-09 | 哈尔滨工程大学 | 一种dsp程序分段加载的串口实现方法 |
CN108279935A (zh) * | 2016-12-30 | 2018-07-13 | 北京中科晶上科技股份有限公司 | 一种针对片上系统的操作系统启动引导方法 |
CN108572831A (zh) * | 2017-12-26 | 2018-09-25 | 中车株洲电力机车研究所有限公司 | 一种软件在线更新升级系统及方法 |
CN109800007A (zh) * | 2018-12-28 | 2019-05-24 | 航天信息股份有限公司 | Dsp芯片在线升级方法以及装置 |
CN110333900A (zh) * | 2019-06-29 | 2019-10-15 | 沃太能源南通有限公司 | 一种升级单片机存储器内boot的方法 |
CN111124966A (zh) * | 2019-11-12 | 2020-05-08 | 上海移远通信科技有限公司 | 一种改善模块资料稳定性方法和装置 |
CN111506333A (zh) * | 2020-04-27 | 2020-08-07 | 湖北三江航天红峰控制有限公司 | 一种双dsp程序在线升级方法及系统 |
CN114816581A (zh) * | 2022-05-20 | 2022-07-29 | 中国电子科技集团公司第三十研究所 | 一种基于arm处理器的无操作系统算法动态加载方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901156A (zh) * | 2010-07-26 | 2010-12-01 | 四川九洲电器集团有限责任公司 | 一种处理器应用程序动态加载方法及其系统 |
US20140122781A1 (en) * | 2012-10-30 | 2014-05-01 | Mangstor, Inc. | Hierarchical flash translation layer |
CN103955376A (zh) * | 2014-02-19 | 2014-07-30 | 熊猫电子集团有限公司 | 一种dsp自启动二次按需加载方法 |
-
2016
- 2016-04-01 CN CN201610206863.3A patent/CN105867977B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901156A (zh) * | 2010-07-26 | 2010-12-01 | 四川九洲电器集团有限责任公司 | 一种处理器应用程序动态加载方法及其系统 |
US20140122781A1 (en) * | 2012-10-30 | 2014-05-01 | Mangstor, Inc. | Hierarchical flash translation layer |
CN103955376A (zh) * | 2014-02-19 | 2014-07-30 | 熊猫电子集团有限公司 | 一种dsp自启动二次按需加载方法 |
Non-Patent Citations (3)
Title |
---|
冀云: "基于FLASH的TMS320C6416自启动实现方法", 《重庆电子工程职业学院学报》 * |
刘富明等: "TMS320C6211DSP的二次引导研究与实现", 《计算机与数据工程》 * |
张晟翀: "CSS下TMS320C6416DSP的二次引导及FLASH在线编程方法研究", 《现代电子技术》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279935A (zh) * | 2016-12-30 | 2018-07-13 | 北京中科晶上科技股份有限公司 | 一种针对片上系统的操作系统启动引导方法 |
CN106886438A (zh) * | 2017-02-06 | 2017-06-23 | 仓智(上海)智能科技有限公司 | 基于fpga的系统远程更新方法 |
CN106951289A (zh) * | 2017-03-23 | 2017-07-14 | 苏州英威腾电力电子有限公司 | 一种在线升级方法、dsp控制器及升级系统 |
CN107015833A (zh) * | 2017-04-14 | 2017-08-04 | 湖南威胜信息技术有限公司 | 嵌入式设备应用程序的自恢复方法 |
CN107562504A (zh) * | 2017-09-11 | 2018-01-09 | 哈尔滨工程大学 | 一种dsp程序分段加载的串口实现方法 |
CN108572831B (zh) * | 2017-12-26 | 2021-07-30 | 中车株洲电力机车研究所有限公司 | 一种软件在线更新升级系统及方法 |
CN108572831A (zh) * | 2017-12-26 | 2018-09-25 | 中车株洲电力机车研究所有限公司 | 一种软件在线更新升级系统及方法 |
CN109800007A (zh) * | 2018-12-28 | 2019-05-24 | 航天信息股份有限公司 | Dsp芯片在线升级方法以及装置 |
CN110333900A (zh) * | 2019-06-29 | 2019-10-15 | 沃太能源南通有限公司 | 一种升级单片机存储器内boot的方法 |
CN111124966A (zh) * | 2019-11-12 | 2020-05-08 | 上海移远通信科技有限公司 | 一种改善模块资料稳定性方法和装置 |
CN111124966B (zh) * | 2019-11-12 | 2021-08-24 | 上海移远通信科技有限公司 | 一种改善模块资料稳定性方法和装置 |
CN111506333A (zh) * | 2020-04-27 | 2020-08-07 | 湖北三江航天红峰控制有限公司 | 一种双dsp程序在线升级方法及系统 |
CN114816581A (zh) * | 2022-05-20 | 2022-07-29 | 中国电子科技集团公司第三十研究所 | 一种基于arm处理器的无操作系统算法动态加载方法 |
CN114816581B (zh) * | 2022-05-20 | 2023-06-02 | 中国电子科技集团公司第三十研究所 | 一种基于arm处理器的无操作系统算法动态加载方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105867977B (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105867977A (zh) | DSP用户程序升级及Flash下载方法 | |
CN100454258C (zh) | 嵌入式系统加载程序与应用程序一体化更新方法 | |
CN106095620A (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN103970557B (zh) | 存储设备启动系统的方法及存储设备 | |
CN108037938B (zh) | 一种eMMC的开卡方法 | |
CN106030526A (zh) | 装置、更新器、控制装置的方法、及控制更新器的方法 | |
CN102567053A (zh) | 一种软件版本回退的方法及装置 | |
CN104077161A (zh) | 一种客户端应用的升级方法及装置 | |
CN105955764A (zh) | 一种stm32单片机iap串口程序烧录的改进方法 | |
CN103970565A (zh) | 一种服务器系统中fpga多途径下载配置实现方法 | |
CN105468373A (zh) | 一种分支合并方法及装置 | |
CN104423993B (zh) | 汽车电子设备软件的更新方法、更新终端及汽车电子系统 | |
CN109213570A (zh) | 一种虚拟机迁移方法、装置、设备及可读存储介质 | |
CN105700890A (zh) | 一种自动删除PCB设计中悬空孔的Skill程序的实现方法 | |
CN105426609A (zh) | 一种自动删除pcb设计中悬空线的方法 | |
CN106462422A (zh) | 用于多系统终端的系统升级方法、升级装置和终端 | |
CN105677422B (zh) | 同时更新监控程序和应用程序及后续更新应用程序的方法 | |
CN115408013A (zh) | Zynq UltraScale+MPSoC平台的固件和文件自动烧写方法 | |
CN106649137B (zh) | 一种Nand Flash坏块管理方法、装置及存储器 | |
CN106603289B (zh) | 一种lmt配置文件平滑升级方法 | |
CN108182079A (zh) | 一种基于串口的tms320c6748程序加载方法 | |
CN103777987A (zh) | 一种类unix操作系统的升级方法及装置 | |
CN109460248A (zh) | 一种基于dsp的用户程序上传方法及系统 | |
KR20150072963A (ko) | 다중시스템 및 이의 부팅 방법 | |
CN108664255A (zh) | 一种软件升级方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |