CN112199121A - Dsp按需扩容加载程序方法 - Google Patents

Dsp按需扩容加载程序方法 Download PDF

Info

Publication number
CN112199121A
CN112199121A CN202011044864.5A CN202011044864A CN112199121A CN 112199121 A CN112199121 A CN 112199121A CN 202011044864 A CN202011044864 A CN 202011044864A CN 112199121 A CN112199121 A CN 112199121A
Authority
CN
China
Prior art keywords
dsp
function
program
running
capacity
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
Application number
CN202011044864.5A
Other languages
English (en)
Other versions
CN112199121B (zh
Inventor
邵永杰
钟瑜
唐洪军
谢玲
方科
吴海燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southwest Electronic Technology Institute No 10 Institute of Cetc
Original Assignee
Southwest Electronic Technology Institute No 10 Institute of Cetc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southwest Electronic Technology Institute No 10 Institute of Cetc filed Critical Southwest Electronic Technology Institute No 10 Institute of Cetc
Priority to CN202011044864.5A priority Critical patent/CN112199121B/zh
Publication of CN112199121A publication Critical patent/CN112199121A/zh
Application granted granted Critical
Publication of CN112199121B publication Critical patent/CN112199121B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开的一种DSP按需扩容加载程序方法,旨在提供一种运行速度快,加载时间少,扩容可靠的程序扩容方法。本发明通过下述技术方案予以实现:在DSP开发环境中,将DSP需要的各个函数编译出来,将不同的处理函数使用频率写入DSP的同步动态存储器中,并形成DSP函数部署蓝图;函数被调用时,DSP引导程序根据预先安排的DSP函数部署蓝图进行输函数代码搬移,从SDRAM中拷贝到DSP的内部运行RAM上的运行位置1、运行位置2的指定存储空间中的扩容引导程序;然后在内部RAM高速运行,将程序代码写入DSP不同的处理函数代码运行在DSP的高速数据缓冲区,按需加载DSP扩容程序;加载完毕自动跳转到零地址运行。

Description

DSP按需扩容加载程序方法
技术领域
本发明涉及DSP数字信号处理、测控、通信等领域,特别涉及软件无线电。
背景技术
随着计算机技术的飞速发展,数字信号处理器DSP技术的应用范围越来越广泛,几乎在整个电子、信息产业都有应用。其中应用最广泛的DSP系列产品。在这些DSP系列的系统设计中,引导程序设计是其中的难点之一,系统启动引导的成功与否决定了应用程序的运行环境是否能正确构建,即系统启动成功是正确应用运行的前提。随着软件无线电技术与数字信号处芯片的断发展,人们已经在越来越多的场合应用现场可编程门阵列FPGA与数字信号处理器DSP芯片。由这两种芯片以及必要的外围电路构成的硬件平台能够满足大多数通信应用的需要。虽然单一的数字信号处理芯片能够实现各种功能,但是这两种芯片分别适合完成不同的任务,例如一个扩频通信系统的接收机,可以用FPGA实现扩频信号的捕获与跟踪,而用DSP实现信号的解码及后续处理。因此,用这两种芯片组成软件无线电技术的硬件平台能够很方便地实现各种功能。由于软件无线电的发展,软件无线电平台的处理能力越来越强大、平台上实现的功能越来越多,平台的硬件结构也多种多样,各平台之间无法实现软硬件资源的共享,在实现通用数字中频的工作中,包括DSP程序的扩容需求逐步增大。
随着DSP技术的发展,DSP的功能越来越强,类型也越来越多。由于DSP内部结构的特点,DSP的算法程序一般都存储在外部的非易失性存储器中,在系统上电后,要将算法程序从外部存储器加载到DSP中,再进行相应的数据算法处理。目前基于数字信号处理器(DSP)的多功能系统正变得日益普遍,特别在无线通信方面更是如此。新一代超高性能DSP使基站可以承载更多的语音、数据以及视频信息通道。为了适应不断变化的环境,DSP系统变得越来越复杂,功能也逐渐多样化,在同一DSP系统中实现多种功能,并能够进行不断的升级和扩充。这与有限的DSP运行内存形成了一定的矛盾,为了实现这种特性,DSP系统必须在维持开机的情况下实现代码的动态加载,以便高效地再配置系统,但是普通的动态加载由于需要代码传输和DSP复位二需要毫秒级以上的配置时间,这对于一些强实时性的应用环境来说是不能够满足的。目前,大多数数字信号处理器不带内部可擦写存储器,程序一般在系统上电时,从外部只读存储器ROM读入DSP程序空间随机存取记忆体RAM中,然后从指定的地址开始运行程序空间RAM中的指令,该过程称为DSP程序的引导加载过程。在实时DSP应用系统中,通常将应用程序存储在外部非易失性存储器(如FLASH、EEPROM、PROM等)中。系统上电后,DSP将外部程序存储器的程序代码加载到可高速存取的RAM中,加载完成后自动跳转到零地址开始运行。因此DSP程序烧写及自动加载是实时DSP系统设计的重要部分。芯片的烧写与自加载是一个DSP系统能够顺利运行的基本条件。一般程序要烧写到外扩的Flash芯片中,再由Flash芯片引导自启动。Bootloader程序运行在DSP中,用来将Flash芯片的数据复制搬移到DSP的1K字节大小的RAM内。然而DSP内部FLASH不满足空间应用抗辐照指标,无法直接从外部FLASH引导。传统TMS320C6727的Flash芯片自启动往往需要利用JTAG仿真器将程序烧写到Flash芯片中去,如果更改程序必须拆开机箱连上仿真器才能重新烧写,这样在外场试验时很不方便。而传统的烧写/加载方案在调试、更新程序时需要反复外接仿真器,配置跳线,并且只能加载运行指定地址空间上的工程。这些对处于安装调试阶段的系统影响不大,但在诸如航天设备、大型机械或其他恶劣环境中工作,难以直接进行仿真器连接的DSP系统中,无法采用普通的烧写/加载方案对其进行更新和调试。目前的数据处理硬件平台大多采用FPGA+DSP的架构。传统的加载方式是给FPGA和DSP各配备一片PROM,上电后各自完成程序的加载。这样就增大了硬件的尺寸,并且加大了电源的开销,当然还有经济方面的耗费。DSP编译链接时CMD文件中,程序的首地址要和通过HPI方式加载的代码的首地址一致。DSP的代码加载到0x18000-0x1ffff地址内时,hex文件中的地址信息已经超过了64K的范围,所以要选择合适的hex转bin工具,因为一般的转换工具转换的地址范围最大是64K。
发明内容
针对上述问题,本发明提供一种运行速度快,加载时间少,程序扩容可靠性高的DSP按需扩容加载程序方法。
为实现上述目的。本发明提供一种DSP按需扩容加载程序方法,具有如下技术特征:在DSP开发环境中,将DSP需要的各个函数编译出来,将不同的处理函数使用频率写入DSP的同步动态存储器(SDRAM)中,并形成DSP函数部署蓝图,DSP函数部署蓝图放置在DSP的内部运行RAM中;函数被调用时,DSP引导程序根据预先安排的DSP函数部署蓝图进行输函数代码搬移,从SDRAM中拷贝到DSP的内部运行RAM上的运行位置1、运行位置2的指定存储空间中的扩容引导程序;然后在内部RAM高速运行,将程序代码写入DSP不同的处理函数代码运行在DSP的高速数据缓冲区,按需加载DSP扩容程序;加载完成后自动跳转到零地址开始运行DSP程序启动,运行调用一个外部函数,判断该函数是否是扩容函数,如果不是,则直接调用并继续运行,如果该函数是扩容函数,则根据DSP函数部署蓝图执行函数代码搬移,然后继续运行。
本发明相比于现有技术的有益效果是:
运行速度快。本发明在DSP开发环境中将DSP需要的各个函数编译出来,将不同的处理函数使用频率写入DSP的同步动态存储器(SDRAM)中,并形成DSP函数部署蓝图,DSP函数部署蓝图放置在DSP的内部运行RAM中;这种方法减少了加载时间,并且不必保证了DSP程序的运行速度。
加载时间少。本发明根据预先的安排DSP函数部署蓝图进行输函数代码搬移,从SDRAM中拷贝到DSP的内部运行RAM上的运行位置1、运行位置2;将不同的处理函数写入DSP本身的SDRAM,当此函数被调用时会根据预先的安排进行输函数代码搬移,按需加载DSP程序扩容,搬移过程取决于DSP总线的速度,按需加载的减少了不必要的资源请求,节省流量,实现按需所取,一般情况下小于1ms,减少了加载时间。
程序扩容可靠性高。本发明将写入DSP不同的处理函数代码运行在DSP的高速数据缓冲区,按需加载DSP程序扩容;这种方法可以根据需要加载不同的DSP函数,相当于对DSP的内存进行了扩容。由于任何函数的处理都是在DSP的最快运行状态下执行的,使用灵活方便,运行速度快的同时也不必中断应用程序。DSP芯片访问片外存储器时通过外部存储器具有很强的接口能力接口,不仅具有很高的数据吞吐率(最高达1200MB/s),而且可以与目前几乎所有类型的存储器直接接口。用户不需要控制初始化的每一个步骤,只需要向EMIFSDCTL寄存器的INIT位写1,申请对SDRAM作初始化。然后,EMIF就会自动完成所需要的各步操作。大大减轻了设计人员的开发难度和使用灵活的方便性,程序扩容具有较高的可靠性。
本发明提供一种DSP按需扩容加载程序方法是一种通用型的解决方法,具有很强实用性。适用于TI公司、AD公司的以及目前国产化DSP,型号不限于TMS320C6713、TMS320C6416TMS320C6455、TMS320C6678等可见的所有DSP器件。
附图说明
下面结合附图和实施例对本专利进一步说明。
图1是本发明的DSP函数部署蓝图;
图2是DSP程序扩容搬迁示意图;
图3是DSP程序扩容搬迁流程示意图;
下面结合附图进一步详细描述本发明的技术方案。
具体实施方式
参阅图1-图3。根据本发明,在DSP开发环境中,将DSP需要的各个函数编译出来,将不同的处理函数使用频率写入DSP的同步动态存储器(SDRAM)中,并形成DSP函数部署蓝图,DSP函数部署蓝图放置在DSP的内部运行RAM中;函数被调用时,DSP程序根据预先的安排DSP函数部署蓝图进行输函数代码搬移,从SDRAM中拷贝到DSP的内部运行RAM上的运行位置1、运行位置2;写入DSP不同的处理函数代码运行在DSP的高速数据缓冲区,按需加载DSP程序扩容;DSP程序启动,运行调用一个外部函数,判断该函数是否是扩容函数,如果不是,则直接调用并继续运行,如果该函数是扩容函数,则根据DSP函数部署蓝图执行函数代码搬移,然后继续运行。
在DSP在开发环境中,将DSP需要的各个函数FUC_1拷贝参数、FUC_2拷贝参数、FUC_3拷贝参数、FUC_...拷贝参数、FUC_n拷贝参数,拷贝参数写入的初始地址,从这些初始地址开始不断地将有效数据写入DSP的内存存放地址和运行地址,并形成按存放大小DSP函数部署蓝图。根据编译出来的FUC_1、FUC_2、FUC_3、FUC_...、FUC_n的拷贝参数部署蓝图大小,并放置在DSP函数的内部运行RAM中由DSP函数部署蓝图的拷贝参数决定的具体运行位置,写操作完成后,向DSP的内存地址0x0077f写数据0x8000,开始执行。
内部运行RAM是DSP的高速数据缓冲区,函数代码运行在DSP的高速数据缓冲区。
本说明书中公开的所有特征,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

Claims (4)

1.一种DSP按需扩容加载程序方法,具有如下技术特征:在DSP开发环境中,将DSP需要的各个函数编译出来,将不同的处理函数使用频率写入DSP的同步动态存储器(SDRAM)中,并形成DSP函数部署蓝图,DSP函数部署蓝图放置在DSP的内部运行RAM中;函数被调用时,DSP引导程序根据预先安排的DSP函数部署蓝图进行输函数代码搬移,从SDRAM中拷贝到DSP的内部运行RAM上的运行位置1、运行位置2的指定存储空间中的扩容引导程序;然后在内部RAM高速运行,将程序代码写入DSP不同的处理函数代码运行在DSP的高速数据缓冲区,按需加载DSP扩容程序;加载完成后自动跳转到零地址开始运行DSP程序启动,运行调用一个外部函数,判断该函数是否是扩容函数,如果不是,则直接调用并继续运行,如果该函数是扩容函数,则根据DSP函数部署蓝图执行函数代码搬移,然后继续运行。
2.如权利要求1所述的DSP按需扩容加载程序方法,其特征在于:在DSP在开发环境中,将DSP需要的各个函数FUC_1拷贝参数、FUC_2拷贝参数、FUC_3拷贝参数、FUC_...拷贝参数、FUC_n拷贝参数,拷贝参数写入的初始地址,从这些初始地址开始不断地将有效数据写入DSP的内存存放地址和运行地址,并形成按存放大小DSP函数部署蓝图。
3.根据编译出来的FUC_1、FUC_2、FUC_3、FUC_...、FUC_n的拷贝参数部署蓝图大小,并放置在DSP函数的内部运行RAM中由DSP函数部署蓝图的拷贝参数决定的具体运行位置,写操作完成后,向DSP的内存地址0x0077f写数据0x8000,开始执行。
4.如权利要求1所述的DSP按需扩容加载程序方法,其特征在于:内部运行RAM是DSP的高速数据缓冲区,函数代码运行在DSP的高速数据缓冲区。
CN202011044864.5A 2020-09-28 2020-09-28 Dsp按需扩容加载程序方法 Active CN112199121B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011044864.5A CN112199121B (zh) 2020-09-28 2020-09-28 Dsp按需扩容加载程序方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011044864.5A CN112199121B (zh) 2020-09-28 2020-09-28 Dsp按需扩容加载程序方法

Publications (2)

Publication Number Publication Date
CN112199121A true CN112199121A (zh) 2021-01-08
CN112199121B CN112199121B (zh) 2023-06-06

Family

ID=74007765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011044864.5A Active CN112199121B (zh) 2020-09-28 2020-09-28 Dsp按需扩容加载程序方法

Country Status (1)

Country Link
CN (1) CN112199121B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114398107A (zh) * 2022-01-25 2022-04-26 中国电子科技集团公司第十研究所 一种跨领域多方式加载dsp程序的设计方法及通用平台
CN117406845A (zh) * 2023-12-11 2024-01-16 深圳曦华科技有限公司 复位方法、装置、计算机设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103676739A (zh) * 2013-12-05 2014-03-26 上海交通大学 一种基于嵌入式运动控制板卡的dma数据传输系统及其传输方法
CN103927187A (zh) * 2014-05-09 2014-07-16 成都凯智科技有限公司 嵌入式系统程序执行方法
US20140201372A1 (en) * 2013-01-16 2014-07-17 Oracle International Corporation Creating and debugging resource instances in a cloud computing system
CN104090804A (zh) * 2014-07-15 2014-10-08 四川航天系统工程研究所 一种实时dsp嵌入式系统虚拟内存扩容方法
CN205692152U (zh) * 2015-12-15 2016-11-16 西安富成防务科技有限公司 一种dsp启动方式的改进结构
CN106201636A (zh) * 2016-08-11 2016-12-07 中国电子科技集团公司第二十九研究所 一种dsp片外代码动态加载方法及装置
CN107273212A (zh) * 2017-06-23 2017-10-20 郑州云海信息技术有限公司 一种动态分配内存的方法及系统
CN109213531A (zh) * 2018-09-01 2019-01-15 哈尔滨工程大学 一种基于emif16的多核dsp上电自启动的简化实现方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140201372A1 (en) * 2013-01-16 2014-07-17 Oracle International Corporation Creating and debugging resource instances in a cloud computing system
CN103676739A (zh) * 2013-12-05 2014-03-26 上海交通大学 一种基于嵌入式运动控制板卡的dma数据传输系统及其传输方法
CN103927187A (zh) * 2014-05-09 2014-07-16 成都凯智科技有限公司 嵌入式系统程序执行方法
CN104090804A (zh) * 2014-07-15 2014-10-08 四川航天系统工程研究所 一种实时dsp嵌入式系统虚拟内存扩容方法
CN205692152U (zh) * 2015-12-15 2016-11-16 西安富成防务科技有限公司 一种dsp启动方式的改进结构
CN106201636A (zh) * 2016-08-11 2016-12-07 中国电子科技集团公司第二十九研究所 一种dsp片外代码动态加载方法及装置
CN107273212A (zh) * 2017-06-23 2017-10-20 郑州云海信息技术有限公司 一种动态分配内存的方法及系统
CN109213531A (zh) * 2018-09-01 2019-01-15 哈尔滨工程大学 一种基于emif16的多核dsp上电自启动的简化实现方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
张旭炜;胡挺;: "用自编写程序实现DM642的二次引导装载" *
李振松;杜建伟;党纪红;: "基于DSP平台的航天器软件在轨维护实现方法研究" *
梁朋举;刘建宾;郑丽伟;: "程序蓝图模型重构操作实例研究" *
高源;罗秋凤;: "基于DSP28335程序移植方法的研究与实现" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114398107A (zh) * 2022-01-25 2022-04-26 中国电子科技集团公司第十研究所 一种跨领域多方式加载dsp程序的设计方法及通用平台
CN117406845A (zh) * 2023-12-11 2024-01-16 深圳曦华科技有限公司 复位方法、装置、计算机设备和存储介质
CN117406845B (zh) * 2023-12-11 2024-05-03 深圳曦华科技有限公司 复位方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN112199121B (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
CN111124550B (zh) 一种程序动态加载方法、装置及存储介质
US20050015582A1 (en) Program and information processing method
CN105100191A (zh) 一种云编译实现Java应用安装的方法、装置及系统
CN112199121B (zh) Dsp按需扩容加载程序方法
CN107704285B (zh) 现场可编程门阵列多版本配置芯片、系统和方法
CN106201636B (zh) 一种dsp片外代码动态加载方法及装置
CN101901156A (zh) 一种处理器应用程序动态加载方法及其系统
CN101763273B (zh) 一种在嵌入式系统的扩展存储器中动态装入代码的方法
US8397217B2 (en) Integrating templates into tests
TW202403541A (zh) 第三方行動應用程式中引入小程序的系統、方法、裝置及介質
CN110362356A (zh) 函数数据处理方法、装置、计算机设备和存储介质
JP2007206933A (ja) 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法
EP1514176B1 (en) Method and apparatus for writing data to a non-volatile memory
CN115469912B (zh) 异构实时信息处理系统设计方法
CN114281404B (zh) 一种工控机算法代码的移植方法及装置
CN103631585A (zh) 一种用于开发应用程序的方法及系统
CN105550010A (zh) 一种基于SoC的无线智能程序加载方法及系统
CN108958795B (zh) 一种嵌入式系统中BootLoader代码重利用方法和开发板
KR100478463B1 (ko) 응용 프로그램의 동적링크 방법
Kachman et al. Efficient patch module for single-bank or dual-bank firmware updates for embedded devices
US20040015885A1 (en) Emulator and emulation method
CN113961232A (zh) 提供集成开发环境的终端、方法和平台服务器
CN217640186U (zh) 一种基于tms320f28335的iap在线升级模组
CN112802527B (zh) 嵌入式闪存高速编程的实现方法、嵌入式闪存的编程系统
CN115794260B (zh) 一种简单的dsp软件库动态加载方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant