CN101067789A - 程序动态加载方法 - Google Patents
程序动态加载方法 Download PDFInfo
- Publication number
- CN101067789A CN101067789A CN 200710041621 CN200710041621A CN101067789A CN 101067789 A CN101067789 A CN 101067789A CN 200710041621 CN200710041621 CN 200710041621 CN 200710041621 A CN200710041621 A CN 200710041621A CN 101067789 A CN101067789 A CN 101067789A
- Authority
- CN
- China
- Prior art keywords
- application program
- dsp
- loading method
- dynamic loading
- program image
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种程序动态加载方法,用于向DSP的目标系统动态加载应用程序,该DSP具有外接非易失性存储器ROM、外接随机存储器SDRAM和片上内存RAM,该方法先根据需要执行的应用程序,制作应用程序映像,并对应生成应用程序映像恢复信息;接着将应用程序映像恢复信息及引导程序固化于ROM,将DSP连接至上位机,系统上电后执行ROM中的引导程序,再与上位机通信,将应用程序映像加载至SDRAM中;随后将应用程序映像按照应用程序映像恢复信息分别复制到RAM和SDRAM的相应位置;最后将DSP复位至应用程序的运行环境,执行应用程序。本发明的方法通过自定义的通信协议以及软件复位,从上位机加载应用程序,可实现应用程序的动态加载,并能保护应用程序的产权。
Description
技术领域
本发明涉及一种程序动态加载方法,特别涉及一种应用于DSP的动态加载程序方法。
背景技术
DSP(Digital Signal Processor,数字信号处理器)因其运算精度高、实时性强等特点,在工业控制、多媒体处理及消费类电子等领域得到了广泛应用。在DSP系统中,应用程序通过仿真调试后必须装载到DSP目标系统后方可成为独立的脱机运行系统。为实现应用程序的装载,必须对DSP进行引导装载设计。
现有技术中的常用做法是将应用程序存放在外部非易失性存储器中,如EPROM、FLASH等,系统上电后DSP开始引导加载。根据选用的DSP的型号和应用程序的大小,可分为一级引导和二级引导。如果应用程序的大小小于DSP复位后自动搬运的大小,可采用一级引导,否则需采用二级引导。二级引导指利用DSP复位后自行搬运的代码实现外部非易失性存储器上其余部分代码的搬运,并在搬运结束后跳转到应用程序入口处执行。
上述引导方法需要将应用程序烧写到非易失性存储器上,不利于保护应用程序产权。而且一旦应用程序需要更新,便要重新烧写,不能实现应用程序的动态加载。申请号为200310104051.0的中国专利中提到了动态加载方法,其通过软件复位,修改DSP加载起始地址实现应用程序的动态加载。在该方法中,能够被加载的应用程序仍然需要事先烧写到非易失性存储器中,并不是真正意义上的动态加载方法。
发明内容
本发明的目的在于提供一种程序动态加载方法,以实现DSP引导时动态地从其他地方加载应用程序,该方法在方便程序更新的同时,也可保护应用程序的产权。
为了达到上述的目的,本发明提供一种应用程序动态加载方法,用于向DSP的目标系统动态加载应用程序,所述的DSP具有一外接非易失性存储器、一外接随机存储器以及一片上内存,所述方法包括下列步骤:(1)根据需要执行的应用程序,制作一应用程序映像,并对应地生成一应用程序映像恢复信息;(2)将所述应用程序映像恢复信息以及一引导程序固化于所述外接非易失性存储器;(3)将所述DSP连接至一上位机,系统上电后所述DSP先执行所述外接非易失性存储器中的引导程序,随即等待与所述上位机通信,当接收到所述上位机发出连接信号后,将所述应用程序映像加载至所述DSP的外接随机存储器中;(4)将收到的所述应用程序映像按照应用程序映像恢复信息分别复制到所述DSP的片上内存和外接随机存储器的相应位置;(5)将所述DSP复位至应用程序的运行环境;(6)执行所述应用程序。
在上述应用程序动态加载方法中,步骤(1)更进一步包括:(1-a)预先定义DSP的片上内存的一段内存空间为第一空间,将应用程序映像恢复信息存储至所述第一空间;(1-b)分配应用程序的存储空间,所述存储空间不得覆盖所述的第一空间;(1-c)根据应用程序使用的所有存储空间,制作应用程序映像。
在上述应用程序动态加载方法中,所述DSP的外接非易失性存储器可为ROM,EPROM以及FLASH其中之一。
在上述应用程序动态加载方法中,所述的应用程序映像恢复信息包括应用程序映像恢复代码以及数据。
在上述应用程序动态加载方法中,所述DSP可通过VEM总线、CAN总线、以太网、光纤、串口以及并口其中任一方式进行通信。
在上述应用程序动态加载方法中,基于所述DSP与其上位机采用的通信协议,所述DSP是通过对应于VEM总线、CAN总线、以太网、光纤、串口以及并口其中任一方式的通信协议获得应用程序映像。
在上述应用程序动态加载方法中,在步骤(1)之后还包括一加密步骤,用以对所述应用程序映像进行加密。
在上述应用程序动态加载方法中,在步骤(4)之前还包括一解密步骤,用以对所述已加密的应用程序映像进行解密。
本发明的应用程序动态加载方法,以外接非易失性存储器的DSP引导加载应用程序映像的方法为基础,通过自定义的通信协议以及软件复位,从上位机加载应用程序,进而实现了应用程序的动态加载,有效地保护了应用程序的知识产权。
附图说明
通过以下对本发明的一实施例结合其附图的描述,可以进一步理解其发明的目的、具体结构特征和优点。其中,附图为:
图1为应用了本发明的应用程序动态加载方法的一个具体实施例的系统架构图;
图2为本发明的应用程序动态加载方法的流程图。
具体实施方式
以下将结合一个具体的实施例对本发明的应用程序动态加载方法作进一步的详细描述。本实施例针对基于DSP的运动控制软件,为方便控制算法的更改和保护,采用上述方法实现控制软件的动态加载。
请参阅图1,为本实施例所用系统架构。在本实施例中,运行Solaris操作系统的SUN工作站10通过以太网20与运行VxWorks操作系统的上位机PowerPC 30通信。PowerPC 30与各运动控制卡50通过VME总线40互连。其中,所述运动控制卡50上包括一DSP,所述DSP的型号可为TMS320C6711,但不限于此。此外,本实施例中各个单元所使用的应用程序映像均存放在SUN工作站10上。
需要说明的是,本发明的应用程序动态加载方法可透过任一种计算机程序语言结合DSP等硬件设备实现,本发明的应用程序动态加载方法中包含一个引导程序,所述引导程序一般预先固化于DSP外接的ROM中,由于ROM为只读存储器,使用者不能随意修改所述引导程序,因此保证了系统的安全性,当DSP上电后,首先从ROM中执行所述引导程序,但本技术领域的一般技术人员都应清楚地知晓本发明的应用程序动态加载方法不仅局限于所述的具体的引导程序,而是透过DSP等硬件设备、软件程序以及接口技术实现应用程序加载。
图2为本发明的应用程序动态加载方法的流程图,如图2所示,首先,执行步骤S1,当DSP上电时,上述引导程序自动从ROM中指定的存储空间搬运1K数据至DSP的内存RAM,由于应用程序的大小小于引导程序,因此,此处需采用二级引导。
接着,执行步骤S2,上述引导程序将ROM中除步骤S1已搬运的1K数据之外的其他数据搬运至DSP内存RAM。
随后执行步骤S3,装载着DSP的运动控制卡50与PowerPC 30建立通信,其首先设置标志位告知PowerPC 30当前DSP板处于等待下载状态,当与PowerPC 30建立通信后,通过交互,实现应用程序映像的下载。本实施例采用的自定义的基于DPRAM(双端口RAM)的通信协议实现通信交互及应用程序映像的下载,但实现通信交互及应用程序映像的下载方式不限于此。
最后执行步骤S4,在应用程序映像成功下载后,通过应用程序映像恢复功能实现应用程序的执行环境恢复,将应用程序按照应用程序映像恢复信息分别复制到所述DSP的片上内存RAM和外接随机存储器SDRAM的相应位置,待恢复完成后,跳转到应用程序的入口地址,开始执行所述应用程序。
此外,需要补充说明的是,本实施例中实现应用程序映像恢复功能的代码可采用汇编语言编写,并放在应用程序未使用的若干中断向量表中,在应用程序开始时,首先需要清除未使用的中断对应的中断向量表。使用者可通过TI(德州仪器)提供的hex6x工具制作应用程序映像,为了进一步保护知识产权,使用者还可采用现有的加密方法,例如DES加密方法对应用程序映像进行加密,在加载完已加密的应用程序映像之后,进行解密,进而实现应用程序映像的恢复。
综上所述,通过本发明的应用程序动态加载方法,成功实现了DSP应用程序的动态加载,方便了应用程序的更新。另外,本实施例中应用程序存放在SUN工作站上,未烧写到DSP板中,因此能够有效保护应用程序的产权。
Claims (8)
1、一种应用程序动态加载方法,用于向DSP的目标系统动态加载应用程序,所述的DSP具有一外接非易失性存储器、一外接随机存储器以及一片上内存,其特征在于,所述方法包括下列步骤:
(1)根据需要执行的应用程序,制作一应用程序映像,并对应地生成一应用程序映像恢复信息;
(2)将所述应用程序映像恢复信息以及一引导程序固化于所述外接非易失性存储器;
(3)将所述DSP连接至一上位机,上电后所述DSP先执行所述外接非易失性存储器中的引导程序,随即等待与所述上位机通信,当接收到所述上位机发出连接信号后,将所述应用程序映像加载至所述DSP的外接随机存储器中;
(4)将收到的所述应用程序映像按照应用程序映像恢复信息分别复制到所述DSP的片上内存和外接随机存储器的相应位置;
(5)将所述DSP复位至应用程序的运行环境;
(6)执行所述应用程序。
2、如权利要求1所述的应用程序动态加载方法,其特征在于,所述步骤(1)更进一步包括:
(1-a)预先定义DSP的片上内存的一段内存空间为第一空间,将应用程序映像恢复信息存储至所述第一空间;
(1-b)分配应用程序的存储空间,所述存储空间不得覆盖所述的第一空间;
(1-c)根据应用程序使用的所有存储空间,制作应用程序映像。
3、如权利要求1或2所述的应用程序动态加载方法,其特征在于,所述的应用程序映像恢复信息包括应用程序映像恢复代码以及数据。
4、如权利要求1所述的应用程序动态加载方法,其特征在于,所述DSP的外接非易失性存储器可为ROM、EPROM以及FLASH其中之一。
5、如权利要求1所述的应用程序动态加载方法,其特征在于,所述DSP可通过VEM总线、CAN总线、以太网、光纤、串口以及并口其中任一方式进行通信。
6、如权利要求5所述的应用程序动态加载方法,其特征在于,所述DSP是通过对应于VEM总线、CAN总线、以太网、光纤、串口以及并口其中任一方式的通信协议获得应用程序映像。
7、如权利要求1所述的应用程序动态加载方法,其特征在于,在步骤(1)之后还包括一加密步骤,用以对所述应用程序映像进行加密。
8、如权利要求7所述的应用程序动态加载方法,其特征在于,在步骤(4)之前还包括一解密步骤,用以对所述已加密的应用程序映像进行解密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100416214A CN100492294C (zh) | 2007-06-05 | 2007-06-05 | 程序动态加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100416214A CN100492294C (zh) | 2007-06-05 | 2007-06-05 | 程序动态加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101067789A true CN101067789A (zh) | 2007-11-07 |
CN100492294C CN100492294C (zh) | 2009-05-27 |
Family
ID=38880353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100416214A Active CN100492294C (zh) | 2007-06-05 | 2007-06-05 | 程序动态加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100492294C (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901156A (zh) * | 2010-07-26 | 2010-12-01 | 四川九洲电器集团有限责任公司 | 一种处理器应用程序动态加载方法及其系统 |
CN101685421B (zh) * | 2008-09-24 | 2011-11-23 | 大唐移动通信设备有限公司 | 一种dsp内存的获取方法和装置 |
CN101546268B (zh) * | 2008-03-25 | 2012-03-14 | 大唐移动通信设备有限公司 | 数字信号处理器可执行文件的加载方法与装置 |
CN102455923A (zh) * | 2010-10-27 | 2012-05-16 | 北京南车时代信息技术有限公司 | 一种工程机械车辆人机界面开机数据处理方法和装置 |
CN102495738A (zh) * | 2011-10-31 | 2012-06-13 | 深圳市五巨科技有限公司 | 移动终端及其应用程序运行方法 |
CN101546267B (zh) * | 2008-03-24 | 2012-08-22 | 大唐移动通信设备有限公司 | 向数字信号处理器的外存加载程序的方法、系统及装置 |
CN102737000A (zh) * | 2011-03-08 | 2012-10-17 | Ls产电株式会社 | 数据传送装置和方法 |
CN102955707A (zh) * | 2011-08-31 | 2013-03-06 | 福建三元达软件有限公司 | 基于前后台系统驱动程序与应用程序的相互加载的方法 |
CN103246525A (zh) * | 2012-02-06 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种实现应用运行的方法及客户端 |
CN103955376A (zh) * | 2014-02-19 | 2014-07-30 | 熊猫电子集团有限公司 | 一种dsp自启动二次按需加载方法 |
CN104820612A (zh) * | 2015-05-22 | 2015-08-05 | 网宿科技股份有限公司 | 一种可执行文件的内存执行方法 |
CN105760194A (zh) * | 2016-02-15 | 2016-07-13 | 清华大学 | 一种dsp控制系统软件升级方法及装置 |
CN107885510A (zh) * | 2017-11-03 | 2018-04-06 | 北京思诺信安科技有限公司 | 一种可同时烧录双dsp的烧录工具及烧录方法 |
CN108170490A (zh) * | 2017-12-07 | 2018-06-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种ima系统数据加载架构及加载方法 |
-
2007
- 2007-06-05 CN CNB2007100416214A patent/CN100492294C/zh active Active
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546267B (zh) * | 2008-03-24 | 2012-08-22 | 大唐移动通信设备有限公司 | 向数字信号处理器的外存加载程序的方法、系统及装置 |
CN101546268B (zh) * | 2008-03-25 | 2012-03-14 | 大唐移动通信设备有限公司 | 数字信号处理器可执行文件的加载方法与装置 |
CN101685421B (zh) * | 2008-09-24 | 2011-11-23 | 大唐移动通信设备有限公司 | 一种dsp内存的获取方法和装置 |
CN101901156A (zh) * | 2010-07-26 | 2010-12-01 | 四川九洲电器集团有限责任公司 | 一种处理器应用程序动态加载方法及其系统 |
CN101901156B (zh) * | 2010-07-26 | 2013-07-31 | 四川九洲电器集团有限责任公司 | 一种处理器应用程序动态加载方法及其系统 |
CN102455923A (zh) * | 2010-10-27 | 2012-05-16 | 北京南车时代信息技术有限公司 | 一种工程机械车辆人机界面开机数据处理方法和装置 |
CN102737000B (zh) * | 2011-03-08 | 2015-07-01 | Ls产电株式会社 | 数据传送装置和方法 |
CN102737000A (zh) * | 2011-03-08 | 2012-10-17 | Ls产电株式会社 | 数据传送装置和方法 |
CN102955707A (zh) * | 2011-08-31 | 2013-03-06 | 福建三元达软件有限公司 | 基于前后台系统驱动程序与应用程序的相互加载的方法 |
CN102495738A (zh) * | 2011-10-31 | 2012-06-13 | 深圳市五巨科技有限公司 | 移动终端及其应用程序运行方法 |
CN103246525A (zh) * | 2012-02-06 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种实现应用运行的方法及客户端 |
CN103246525B (zh) * | 2012-02-06 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种实现应用运行的方法及客户端 |
CN103955376A (zh) * | 2014-02-19 | 2014-07-30 | 熊猫电子集团有限公司 | 一种dsp自启动二次按需加载方法 |
CN104820612A (zh) * | 2015-05-22 | 2015-08-05 | 网宿科技股份有限公司 | 一种可执行文件的内存执行方法 |
CN104820612B (zh) * | 2015-05-22 | 2018-02-09 | 网宿科技股份有限公司 | 一种可执行文件的内存执行方法 |
CN105760194A (zh) * | 2016-02-15 | 2016-07-13 | 清华大学 | 一种dsp控制系统软件升级方法及装置 |
CN107885510A (zh) * | 2017-11-03 | 2018-04-06 | 北京思诺信安科技有限公司 | 一种可同时烧录双dsp的烧录工具及烧录方法 |
CN108170490A (zh) * | 2017-12-07 | 2018-06-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种ima系统数据加载架构及加载方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100492294C (zh) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100492294C (zh) | 程序动态加载方法 | |
US20230024083A1 (en) | Method and System for Executing Applications Using Native Code Modules | |
US11209788B2 (en) | Techniques for improving industrial control systems | |
CN102063315B (zh) | 从外部程序环境调用后绑定函数的方法和系统 | |
CN109598107B (zh) | 一种基于应用安装包文件的代码转换方法及装置 | |
JP2008510238A (ja) | オペレーティングシステム | |
US20190042760A1 (en) | Compiling techniques for hardening software programs against branching programming exploits | |
GB2482700A (en) | Memory access control | |
CN104657258B (zh) | 一种向目标进程内注入Java字节码的方法及装置 | |
CN1330324A (zh) | 数据处理装置与控制非挥发性存储设备重写的方法 | |
Grimshaw et al. | The next logical step toward the world-wide virtual computer | |
CN102567251B (zh) | Bios的控制方法和装置 | |
US7680909B2 (en) | Method for configuration of a processing unit | |
CN1315023C (zh) | 盲设备的人机交互输入输出设备的重定向系统及方法 | |
WO2016160176A1 (en) | Control-flow integrity with managed code and unmanaged code | |
CN108563467B (zh) | 一种符合安全保密的带触摸屏pad及实现方法 | |
KR20070083138A (ko) | 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트방법 | |
CN111984329B (zh) | 一种boot引导软件标准化生成、执行方法及系统 | |
CN106922191B (zh) | 生成和执行受保护的软件项目 | |
JP2006048186A (ja) | 動的コンパイラの生成コードを保護する言語処理系 | |
JP6295914B2 (ja) | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ | |
KR101434794B1 (ko) | 프로그램 해킹 방어 방법 및 시스템 | |
Reichelt et al. | A microkernel api for fine-grained decomposition | |
Henzinger | From models to code: The missing link in embedded software | |
CN117762390A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 201203 Zhangjiang High Tech Park, Shanghai, Zhang Dong Road, No. 1525 Patentee after: Shanghai microelectronics equipment (Group) Limited by Share Ltd Address before: 201203 Zhangjiang High Tech Park, Shanghai, Zhang Dong Road, No. 1525 Patentee before: Shanghai Micro Electronics Equipment Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |