CN106201636A - 一种dsp片外代码动态加载方法及装置 - Google Patents
一种dsp片外代码动态加载方法及装置 Download PDFInfo
- Publication number
- CN106201636A CN106201636A CN201610652377.4A CN201610652377A CN106201636A CN 106201636 A CN106201636 A CN 106201636A CN 201610652377 A CN201610652377 A CN 201610652377A CN 106201636 A CN106201636 A CN 106201636A
- Authority
- CN
- China
- Prior art keywords
- dsp
- code
- sheet
- storage
- data
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式计算机处理控制领域,尤其是一种DSP片外代码动态加载方法。本发明针对现有技术存在的问题,提供一种DSP片外代码动态加载方法。通过设置SRAM配合DSP进行,解决了代码大小超过DSP片内容量大小时,程序无法运行的问题,大大扩展了DSP的使用范围和使用场合,可以实现超长代码的混合加载和运行。本发明在下一次上电后,通过EEPROM将拼接后的文件中DSP外部缓存SRAM中存储代码段拷贝到SRAM指定地址进行存储;通过EEPROM将拼接文件中DSP片内代码存储区存储的代码段拷贝到DSP芯片存储区内;同时通过EEPROM将拼接文件中DSP片内数据区存储的数据段拷贝到DSP数据区内。
Description
技术领域
本发明涉及嵌入式计算机处理控制领域,尤其是一种DSP片外代码动态加载方法及装置。
背景技术
DSP是电子设备中经常使用的一种嵌入式微处理器芯片,常用于系统控制和数字信号处理领域,其特点是时钟主频高、运算速度快,在典型的应用中,使用FLASH或EEPROM作为代码存储器,将执行代码烧入其中,上电后可自动加载运行。由于功能扩展,DSP芯片内部代码存储空间(DSP片内代码容量限制)有限,因此超过DSP芯片容量的代码无法正常运行的,此限制大大影响了此类DSP的应用范围。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种DSP片外代码动态加载方法及装置。通过设置SRAM配合DSP进行 解决了代码大小超过DSP片内容量大小时,程序无法运行的问题,大大扩展了DSP的使用范围和使用场合,可以实现超长代码的混合加载和运行。
本发明采用的技术方案如下:
一种DSP片外代码动态加载方法包括:
步骤1:仿真器将预装文件通过仿真器下载到DSP及DSP外部缓存SRAM中,则DSP片内代码存储区存储代码段,DSP片内数据区存储数据;同时DSP外部缓存SRAM中存储超过DSP芯片内部代码存储空间容量限制的代码段;
步骤2:仿真器将DSP片内代码存储区存储的代码段、DSP片内数据区存储的数据以及DSP外部缓存SRAM中存储的代码段分别存储为3个文件;
步骤3:通过拼接模块将上述3个文件中进行拼接,然后仿真器将拼接后文件烧入EEPROM,去除仿真器;
步骤4:下一次上电后,通过EEPROM将拼接后的文件中DSP外部缓存SRAM中存储代码段拷贝到SRAM指定地址进行存储;通过EEPROM将拼接文件中DSP片内代码存储区存储的代码段拷贝到DSP片内代码存储区内;同时通过EEPROM将拼接文件中DSP片内数据区存储的数据段拷贝到DSP数据区内。
进一步的,步骤3中将上述3个文件中进行拼接具体是,通过任意拼接软件将DSP片内数据区存储的数据存入以DSP片内代码存储区存储的代码段结尾处为开始的地址中;DSP外部缓存SRAM中存储的代码段存入以DSP片内数据区存储的数据结尾处未开始的地址中。
进一步的,所述DSP片内代码存储区存储代码段的大小为DSP芯片容量;所述DSP片内代码存储区存储代码段包括DSP片内第一代码段和Bootloader代码段。
进一步的,所述DSP片内数据区存储数据用于进行数据存储。
一种DSP片外代码动态加载装置包括:
仿真器,用于将预装文件通过仿真器下载到DSP及DSP外部缓存SRAM中,则DSP片内代码存储区存储代码段,DSP片内数据区存储数据;同时DSP外部缓存SRAM中存储超过DSP芯片内部代码存储空间容量限制的代码段;仿真器将DSP片内代码存储区存储的第一代码段、DSP片内数据区存储的数据以及DSP外部缓存SRAM中存储的代码段分别存储为3个文件;通过拼接模块将所述3个文件中进行拼接,然后仿真器将拼接后的数据烧入EEPROM;
EEPROM,用于下一次上电后,通过EEPROM将拼接后的文件中DSP外部缓存SRAM中存储代码段拷贝到SRAM指定地址进行存储;通过EEPROM将拼接文件中DSP片内代码存储区存储的代码段拷贝到DSP芯片存储区内;同时通过EEPROM将拼接文件中DSP片内数据区存储的数据段拷贝到DSP数据区内。
进一步的,数据处理模块将所述3个文件中进行拼接具体是:通过将DSP片内数据区存储的数据存入以DSP片内代码存储区存储的代码段结尾处为开始的地址中;DSP外部缓存SRAM中存储的代码段存入以DSP片内数据区存储的数据结尾处未开始的地址中。
进一步的,所述DSP片内代码存储区存储代码段的大小为DSP芯片容量;所述DSP片内代码存储区存储代码段包括DSP片内第一代码段和Bootloader代码段。
进一步的,所述DSP片内数据区存储数据用于进行数据存储。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
使用此方法及装置解决了代码大小超过DSP片内容量大小时,程序无法运行的问题,大大扩展了DSP的使用范围和使用场合,可以实现超长代码的混合加载和运行。在TI6701的DSP上实现了128KB的代码的运行。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
一、本发明相关说明:
1、预装文件是厂家预装的数据,用户的工程由编译器编译后生成的下载文件。
2、DSP外部缓存SRAM中存储代码段作用是:是整个代码的一部分,是超过DSP芯片内部代码存储空间的那一部分代码。DSP运行中,要随时去读SRAM中的这部分代码。
3、其中DSP片内第一代码段和是Bootloader代码是存满DSP芯片内部代码存储空间的两部分代码。Bootloader 是一段汇编的代码,用于将eeprom中不同段数据的拷贝到不同的存储器中。
4、拼接模块指的是任意的拼接软件。
工作过程是:
1.连接仿真器,由DSP软件开发环境(即CCS)对工程代码进行编译,生成out文件;
2.由仿真器将OUT文件通过仿真器下载到目标板上(目标板是一块电路板,上面有dsp,sram等器件和电路);
3.通过仿真器保存三个文件,分别是DSP片内代码存储区存储代码段文件/ DSP外部缓存SRAM中存储代码段文件(存储在sram中的) / DSP片内数据区存储数据文件;
4.拼接模块将这三个文件拼接为一个文件;
5. 通过仿真器将拼接的这一个文件的内容烧写到eeprom中;
6.去掉仿真器,加电后,代码加载到dsp片内和sram中,数据加载到dsp片内,程序加载成功,开始运行。
实施例一:
以TI公司的6701 DSP芯片为例,芯片容量限制为64KB,实际代码容量约为63KB,用于存放bootloader加载代码的空间设置为1KB。
首先使用数据模块(仿真器)将预装文件下载到DSP及DSP外部缓存SRAM中,此时预装文件各段的代码和数据已经装入各自分配的地址空间中(DSP片内代码存储区存储代码段,DSP片内数据区存储数据;同时DSP外部缓存SRAM中存储代码段);
然后分别将DSP片内代码存储区存储代码段(起始地址0,长度64KB),DSP外部缓存SRAM中存储代码段(起始地址0x2000000,长度0xdda0),DSP片内数据区存储数据(起始地址0x8000000,长度为0x232a)分别存为3个文件,将这3个文件拼接起来,即可作为烧入EEPROM或FLASH的二进制代码;
最后,下一次上电后,通过EEPROM将拼接后的文件中DSP外部缓存SRAM中存储代码段拷贝到SRAM指定地址进行存储;通过EEPROM将拼接文件中DSP片内代码存储区存储的代码段拷贝到DSP芯片存储区内;同时通过EEPROM将拼接文件中DSP片内数据区存储的数据段拷贝到DSP数据区内。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (8)
1.一种DSP片外代码动态加载方法,其特征在于包括:
步骤1:仿真器将预装文件通过仿真器下载到DSP及DSP外部缓存SRAM中,则DSP片内代码存储区存储代码段,DSP片内数据区存储数据;同时DSP外部缓存SRAM中存储超过DSP芯片内部代码存储空间容量限制的代码段;
步骤2:仿真器将DSP片内代码存储区存储的代码段、DSP片内数据区存储的数据以及DSP外部缓存SRAM中存储的代码段分别存储为3个文件;
步骤3:通过拼接模块将上述3个文件中进行拼接,然后仿真器将拼接后文件烧入EEPROM,去除仿真器;
步骤4:下一次上电后,通过EEPROM将拼接后的文件中DSP外部缓存SRAM中存储代码段拷贝到SRAM指定地址进行存储;通过EEPROM将拼接文件中DSP片内代码存储区存储的代码段拷贝到DSP片内代码存储区内;同时通过EEPROM将拼接文件中DSP片内数据区存储的数据段拷贝到DSP数据区内。
2.根据权利要求1所述的一种DSP片外代码动态加载方法,其特征在于步骤3中将上述3个文件中进行拼接具体是,通过任意拼接软件将DSP片内数据区存储的数据存入以DSP片内代码存储区存储的代码段结尾处为开始的地址中;DSP外部缓存SRAM中存储的代码段存入以DSP片内数据区存储的数据结尾处未开始的地址中。
3.根据权利要求1所述的一种DSP片外代码动态加载方法,其特征在于所述DSP片内代码存储区存储代码段的大小为DSP芯片容量;所述DSP片内代码存储区存储代码段包括DSP片内第一代码段和Bootloader代码段。
4.根据权利要求1所述的一种DSP片外代码动态加载方法,其特征在于所述DSP片内数据区存储数据用于进行数据存储。
5.一种DSP片外代码动态加载装置,其特征在于包括:
仿真器,用于将预装文件通过仿真器下载到DSP及DSP外部缓存SRAM中,则DSP片内代码存储区存储代码段,DSP片内数据区存储数据;同时DSP外部缓存SRAM中存储超过DSP芯片内部代码存储空间容量限制的代码段;仿真器将DSP片内代码存储区存储的第一代码段、DSP片内数据区存储的数据以及DSP外部缓存SRAM中存储的代码段分别存储为3个文件;通过拼接模块将所述3个文件中进行拼接,然后仿真器将拼接后的数据烧入EEPROM;
EEPROM,用于下一次上电后,通过EEPROM将拼接后的文件中DSP外部缓存SRAM中存储代码段拷贝到SRAM指定地址进行存储;通过EEPROM将拼接文件中DSP片内代码存储区存储的代码段拷贝到DSP芯片存储区内;同时通过EEPROM将拼接文件中DSP片内数据区存储的数据段拷贝到DSP数据区内。
6.根据权利要求5所述的一种DSP片外代码动态加载装置,其特征在于数据处理模块将所述3个文件中进行拼接具体是:通过将DSP片内数据区存储的数据存入以DSP片内代码存储区存储的代码段结尾处为开始的地址中;DSP外部缓存SRAM中存储的代码段存入以DSP片内数据区存储的数据结尾处未开始的地址中。
7.根据权利要求5所述的一种DSP片外代码动态加载装置,其特征在于所述DSP片内代码存储区存储代码段的大小为DSP芯片容量;所述DSP片内代码存储区存储代码段包括DSP片内第一代码段和Bootloader代码段。
8.根据权利要求5所述的一种DSP片外代码动态加载装置,其特征在于所述DSP片内数据区存储数据用于进行数据存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610652377.4A CN106201636B (zh) | 2016-08-11 | 2016-08-11 | 一种dsp片外代码动态加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610652377.4A CN106201636B (zh) | 2016-08-11 | 2016-08-11 | 一种dsp片外代码动态加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106201636A true CN106201636A (zh) | 2016-12-07 |
CN106201636B CN106201636B (zh) | 2019-03-26 |
Family
ID=57514089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610652377.4A Active CN106201636B (zh) | 2016-08-11 | 2016-08-11 | 一种dsp片外代码动态加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201636B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083469A (zh) * | 2019-05-11 | 2019-08-02 | 肖银皓 | 一种异构硬件组织运行统一内核方法及系统 |
CN111930638A (zh) * | 2020-10-16 | 2020-11-13 | 中国人民解放军国防科技大学 | 星载接收机中dsp芯片混合运行和存储检测方法 |
CN112114850A (zh) * | 2020-07-15 | 2020-12-22 | 北京航空航天大学杭州创新研究院 | 一种基于串口的stm32单片机片内和片外flash程序分散加载方法 |
CN112199121A (zh) * | 2020-09-28 | 2021-01-08 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Dsp按需扩容加载程序方法 |
CN112559071A (zh) * | 2020-12-14 | 2021-03-26 | 上海航天控制技术研究所 | 一种用于dsp的分段双冗余引导加载方法 |
CN114091038A (zh) * | 2021-11-30 | 2022-02-25 | 中国科学院长春光学精密机械与物理研究所 | 一种基于dsp6701的高可靠性程序引导、回写方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000040028A (ja) * | 1998-07-24 | 2000-02-08 | Nec Mobile Commun Ltd | Cpu制御によるdspプログラム領域の拡張方式 |
CN102004650A (zh) * | 2009-09-01 | 2011-04-06 | 中兴通讯股份有限公司 | 一种数字信号处理器版本的二次加载方法及系统 |
CN102520976A (zh) * | 2011-11-17 | 2012-06-27 | 四川九洲电器集团有限责任公司 | 一种dsp程序的固化方法 |
CN103677897A (zh) * | 2013-11-06 | 2014-03-26 | 天津瑞能电气有限公司 | 系统芯片及对系统芯片的烧写方法 |
CN103729202A (zh) * | 2012-10-12 | 2014-04-16 | 成都飞机设计研究所 | 一种基于gel脚本的dsp可靠在线flash烧写方法 |
-
2016
- 2016-08-11 CN CN201610652377.4A patent/CN106201636B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000040028A (ja) * | 1998-07-24 | 2000-02-08 | Nec Mobile Commun Ltd | Cpu制御によるdspプログラム領域の拡張方式 |
CN102004650A (zh) * | 2009-09-01 | 2011-04-06 | 中兴通讯股份有限公司 | 一种数字信号处理器版本的二次加载方法及系统 |
CN102520976A (zh) * | 2011-11-17 | 2012-06-27 | 四川九洲电器集团有限责任公司 | 一种dsp程序的固化方法 |
CN103729202A (zh) * | 2012-10-12 | 2014-04-16 | 成都飞机设计研究所 | 一种基于gel脚本的dsp可靠在线flash烧写方法 |
CN103677897A (zh) * | 2013-11-06 | 2014-03-26 | 天津瑞能电气有限公司 | 系统芯片及对系统芯片的烧写方法 |
Non-Patent Citations (1)
Title |
---|
吴海洲 等: "基于TMS320C6455的DSP加载模式研究", 《电子测量技术》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083469A (zh) * | 2019-05-11 | 2019-08-02 | 肖银皓 | 一种异构硬件组织运行统一内核方法及系统 |
CN110083469B (zh) * | 2019-05-11 | 2021-06-04 | 广东财经大学 | 一种异构硬件组织运行统一内核方法及系统 |
CN112114850A (zh) * | 2020-07-15 | 2020-12-22 | 北京航空航天大学杭州创新研究院 | 一种基于串口的stm32单片机片内和片外flash程序分散加载方法 |
CN112114850B (zh) * | 2020-07-15 | 2023-03-10 | 北京航空航天大学杭州创新研究院 | 一种基于串口的stm32单片机片内和片外flash程序分散加载方法 |
CN112199121A (zh) * | 2020-09-28 | 2021-01-08 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Dsp按需扩容加载程序方法 |
CN112199121B (zh) * | 2020-09-28 | 2023-06-06 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Dsp按需扩容加载程序方法 |
CN111930638A (zh) * | 2020-10-16 | 2020-11-13 | 中国人民解放军国防科技大学 | 星载接收机中dsp芯片混合运行和存储检测方法 |
CN111930638B (zh) * | 2020-10-16 | 2020-12-29 | 中国人民解放军国防科技大学 | 星载接收机中dsp芯片混合运行和存储检测方法 |
CN112559071A (zh) * | 2020-12-14 | 2021-03-26 | 上海航天控制技术研究所 | 一种用于dsp的分段双冗余引导加载方法 |
CN114091038A (zh) * | 2021-11-30 | 2022-02-25 | 中国科学院长春光学精密机械与物理研究所 | 一种基于dsp6701的高可靠性程序引导、回写方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106201636B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106201636A (zh) | 一种dsp片外代码动态加载方法及装置 | |
CN102880498B (zh) | 在安卓系统的装置上虚拟sd卡的方法 | |
WO2016091071A1 (zh) | 加载Linux内核驱动的方法及装置 | |
CN108829465B (zh) | 一种基于直接读写flash的本地动态加载系统及方法 | |
US9547489B2 (en) | System and method for modifying a sequence of instructions in a read-only memory of a computing device | |
CN108897547B (zh) | 一种软件自动化部署方法及装置 | |
TW201301039A (zh) | 韌體燒錄方法 | |
CN107870769A (zh) | 操作系统的安装方法及装置 | |
CN104731622B (zh) | 一种应用程序的加载方法、装置和移动终端 | |
CN105739961A (zh) | 一种嵌入式系统的启动方法和装置 | |
CN105224419A (zh) | 一种安卓系统中的用户数据镜像加载方法、装置及终端 | |
CN104866324A (zh) | 一种便携操作系统构建方法及便携存储器 | |
US20090013124A1 (en) | Rom code patch method | |
CN105094878A (zh) | 一种集成系统库文件的方法和装置 | |
CN106648759A (zh) | 一种通用编程器固件的更新方法 | |
CN113238819A (zh) | 一种适用于U-Boot的驱动文件动态加载方法及系统 | |
CN111190584B (zh) | Ehis-db系统版本发布方法、装置、计算机设备和存储介质 | |
CN105045718A (zh) | 基于Linux嵌入式系统的调试系统、方法及修改方法 | |
CN113590491B (zh) | 一种测试平台和产品测试方法 | |
CN108345430B (zh) | 一种Nand flash元件及其运行控制方法和装置 | |
CN104021022A (zh) | 一种分区调整方法及电子设备 | |
CN112199121A (zh) | Dsp按需扩容加载程序方法 | |
CN106020812A (zh) | 一种针对dsp平台航天器软件的动态在轨维护方法 | |
CN107463423B (zh) | 依赖包工具的验证方法、存储介质、电子设备及系统 | |
CN108958795B (zh) | 一种嵌入式系统中BootLoader代码重利用方法和开发板 |
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 |