CN100365570C - 运用于dsp的动态加载方法 - Google Patents
运用于dsp的动态加载方法 Download PDFInfo
- Publication number
- CN100365570C CN100365570C CNB2003101040510A CN200310104051A CN100365570C CN 100365570 C CN100365570 C CN 100365570C CN B2003101040510 A CNB2003101040510 A CN B2003101040510A CN 200310104051 A CN200310104051 A CN 200310104051A CN 100365570 C CN100365570 C CN 100365570C
- Authority
- CN
- China
- Prior art keywords
- functional module
- space
- program
- section
- module 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.)
- Expired - Lifetime
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims description 22
- 230000000295 complement effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 238000000151 deposition Methods 0.000 claims 1
Abstract
本发明一种运用于DSP的动态加载方法涉及一种运用于数字信号处理器的动态加载方法,特别涉及一种运用于DSP的动态加载程序的方法,本发明是利用ADSP21065本身的加载程序和软件复位程序,修改其加载起始地址而实现,使用本发明方法后在不需要额外的RAM开销情况下程序的动态加载,可最大限度的利用DSP的内存空间,有利于大量的程序放入DSP内运行。
Description
技术领域
本发明涉及一种运用于DSP数字信号处理器的动态加载方法。
背景技术
ANALOG公司的ADSP21065处理器,是一款经济型的DSP数字信号处理器。该处理器在使用中,主要的缺点是内存RAM空间小,只有512kbit。当设计的运行程序大于512kbit时,就不能容纳和执行运行程序。ANALOG公司在提供ADSP21065处理器时,提供了一种弥补其内存RAM空间小的办法,在一定程度上缓解了运行程序量大的困难。但是,所用办法需要扩展有足够的RAM空间,掉电存放程序的外存ROM也需要有足够大的空间,而按该办法加载程序,还需要按一定的规则使用寄存器,给这种处理器的使用者带来极大的不便。而目前一般小内存RAM的DSP数字信号处理器,在应用中运行大程序都存在着同样的问题。
发明内容
本发明的目的在于:针对目前使用小内存DSP数字信号处理器运行大程序存在的实际问题,为用户提供一种简单、快捷、不需要额外增加内存RAM空间,就可以在其RAM内连续运行大型程序的动态加载方法。
本发明的目的是通过下述技术方法來实现的:
运用于DSP数字信号处理器的动态加载方法,包括以下步骤:
第一步,在存放待运行程序的DSP数字信号处理器的外存ROM中,设置有加载程序的代码段、以及按功能将待运行程序模块化的A、B、C、…各功能模块程序代码段,它们都分别放置在ROM的不同地址处;
第二步,对A、B、C、…每段功能模块程序代码段,添加加载其它功能模块程序的条件,即包括接收外部选择信号的代码和加载其它段功能模块程序的地址代码;
第三步,在DSP数字信号处理器的内存RAM空间中,设置有控制加载程序代码段的空间X,而其余空间为程序运行空间;
在初始加电时RAM中的空间X为随机数,加载ROM空间的加载程序代码段和A段功能模块程序,即在DSP数字信号处理器的RAM空间中运行A段功能模块程序;
当接收外部选择信号时,改写空间X的A段功能模块程序地址代码为其它段功能模块程序的地址代码,在DSP数字信号处理器复位后,从外存ROM中调入其它相应B段或C段或D段、…的功能模块程序运行;
第四步,需要在DSP数字信号处理器的RAM空间中运行ROM空间中的全部程序时,先对DSP数字信号处理器加电,其内存RAM中的空间X为随机数,将外存ROM中的A段功能模块程序调入RAM空间运行;A段功能模块程序运行结束时,改写RAM中空间X的A段功能模块程序地址代码为B段功能模块程序的地址代码,在DSP数字信号处理器复位后,从外存ROM中将B段功能模块程序调入RAM中运行;当B段功能模块程序运行结束时,改写空间X的B段功能模块程序的地址代码为C段功能模块程序的地址代码,在DSP数字信号处理器复位后,从外存ROM中将C段功能模块程序调入RAM中运行;依序类推,直到DSP数字信号处理器的内存RAM,将ROM中存贮的全部程序运行完毕;
需要在DSP数字信号处理器的RAM空间中运行ROM空间中的某段功能模块程序时,只需将RAM中空间X的现有地址代码,改写成ROM空间中相应段功能模块程序的地址代码,即可从ROM中将该段功能模块程序调入DSP数字信号处理器的RAM空间中运行;如此反复,便实现了DSP数字信号运行程序的动态加载。
本发明的优点在于:有效地解决了使用小内存的DSP数字信号处理器运行大程序存在的实际问题,为用户提供了一种简单、快捷、不需要额外增加内存RAM空间,就可以在其RAM内连续运行大型程序的动态加载方法,成功的实现了最大限度地利用DSP数字信号处理器的小内存,來运行大型程序的目的与需求。
具体实施方式
本发明可以利用ADSP21065数字信号处理器本身的加载程序和软件复位程序,修改其加载模块化程序的地址代码而实现。
实施例1:在运行程序被分成三段功能模块情况下,运用于ADSP2 1 065数字信号处理器的程序动态加载方法
(1)将ADSP21065外存ROM中存放的运行程序按功能模块化,模块化后的功能模块程序代码段为A、B、C功能模块代码段;
对A、B、C每个功能模块程序代码段,添加加载其它功能模块程序的条件,即接收外部选择信号的代码和加载其它段功能模块程序的地址代码;
在ROM存储器中的地址分别存放:加载程序代码段、A功能模块程序代码段、B功能模块程序代码段,C功能模块程序代码段;
设定A功能模块程序代码段,在ROM中的地址代码为非OX12345678数码和0X8765432 1数码的任何十六位进制数码;
设定B功能模块程序代码段,在ROM中的地址代码为十六位进制的OX12345678数码;
设定C功能模块程序代码段,在ROM中的地址代码为十六位进制的0X87654321数码;
(2)将ADSP21065内存RAM中的一个空间X,设置为控制加载程序代码段的空间,而其余空间为程序运行空间;
在初始加电时RAM中的空间X为随机数,加载ROM空间的加载程序代码段和A段功能模块程序,即在ADSP21065处理器的RAM空间中运行A段功能模块程序;
当接收外部选择信号要求ADSP21065处理器运行B段功能模块程序时,改写空间X的A段功能模块程序的十六位进制地址数码,为B段功能模块程序的十六位进制地址数码OX12345678,在ADSP21065处理器复位后,即从ROM中调入B段功能模块程序运行;
当接收外部选择信号要求ADSP21065运行C段功能模块程序时,改写空间X的B段功能模块程序的十六位进制地址数码OX12345678,为C段功能模块程序的十六位进制地址码0X87654321,在ADSP21065处理器复位后,即从ROM中调入C段功能模块程序运行;
当接收外部选择信号要求ADSP21065再次运行A段功能模块程序时,改写空间X的C段功能模块程序的十六位进制地址码0X87654321,为OX12345678和0X87654321数码以外的任何十六位进制数码,在ADSP21065处理器复位后,即从ROM中调入A段功能模块程序运行;如此反复,便实现了程序的动态加载。
这样实现了在不需要额外的RAM开销情况下程序的动态加载,最大限度地利用DSP的内存空间,有利于大量的程序放入DSP内运行。
实施例2:在运行程序被分成5段功能模块情况下,运用于ADSP21065数字信号处理器的程序动态加载方法
(1)将存放在ADSP21065处理器外存ROM中的程序按功能模块化,模块化后的功能模块程序代码段为A、B、C、D、E功能模块代码段;
对A、B、C、D、E每个功能模块程序代码段,添加加载其它功能模块程序的条件,即接收外部选择信号的代码和加载其它段功能模块程序的地址代码;
在ROM存储器中的地址分别存放有:加载程序代码段、A功能模块程序代码段、B功能模块程序代码段、C功能模块程序代码段、D功能模块程序代码段、E功能模块程序代码段;
设定A功能模块程序代码段,在ROM中的地址代码为非OXOOABCDEF、OXOOFEDCBA、OXABCDEF00、OXFEDCBA00的任何十六位进制代码;
设定B功能模块程序代码段,在ROM中的地址代码为十六位进制代码OXOOABCDEF;
设定C功能模块程序代码段,在ROM中的地址代码为十六位进制代码OX00FEDCBA;
设定D功能模块程序代码段,在ROM中的地址代码为十六位进制代码OXABCDEFO0;
设定E功能模块程序代码段,在ROM中的地址代码为十六位进制代码OXFEDCBA00;
(2)将ADSP21065内存RAM的一个空间X,设置为控制加载程序代码段的空间,而其余空间为程序运行空间;
在初始加电时RAM的空间X为随机数,加载ROM空间中的加载程序代码段和A段功能模块程序,即在ADSP21065处理器的RAM空间中运行A段功能模块程序;
当外部选择信号要求ADSP21065处理器运行B段功能模块程序时,改写X空间的A段功能模块程序的地址代码为OXOOABCDEF,在ADSP21065处理器复位后,从ROM中调入B段功能模块程序运行;
当外部选择信号要求ADSP21065处理器运行C段功能模块程序时,改写X空间的B段功能模块程序的地址代码为OXOOFEDCBA,在ADSP21065处理器复位后,从ROM中调入C段功能模块程序运行;
当外部选择信号要求ADSP21065处理器运行D段功能模块程序时,改写X空间的C段功能模块程序的地址代码为OXABCDEF00,在ADSP21065处理器复位后,从ROM中调入D段功能模块程序运行;
当外部选择信号要求ADSP21065处理器运行E段功能模块程序时,改写X空间的D段功能模块程序的地址代码为OXFEDCBA00,在ADSP21065处理器复位后,从ROM中调入E段功能模块程序运行;
当外部选择信号要求ADSP21065处理器运行A段功能模块程序时,改写X空间的E段功能模块程序的地址代码为不是OXOOABCDEF、OXOOFEDCBA、OXABCDEF00和OXFEDCBA00的其它任何十六位进制代码,在ADSP21065处理器复位后,从ROM中调入A段功能模块程序运行。
如此反复,这样就实现了不需要额外增加RAM内存空间,就可以在其内有效的连续运行大型程序。
Claims (1)
1.运用于DSP数字信号处理器的动态加载方法,包括以下步骤:
第一步,在存放待运行程序的DSP数字信号处理器的外存ROM中,设置加载程序的代码段、以及按功能将待运行程序模块化的A、B、C、…各功能模块程序代码段,它们都分别放置在ROM的不同地址处;
第二步,对A、B、C、…每段功能模块程序代码段,添加加载其它功能模块程序的条件,即包括接收外部选择信号的代码和加载其它段功能模块程序的地址代码;
第三步,在DSP数字信号处理器的内存RAM空间中,设置控制加载程序代码段的空间X,而其余空间为程序运行空间;
在初始加电时,RAM中的空间X为随机数,加载ROM空间的加载程序代码段和A段功能模块程序,即在DSP数字信号处理器的RAM空间中运行A段功能模块程序;
当接收外部选择信号时,改写空间X的A段功能模块程序的地址代码为其它段功能模块程序的地址代码,在DSP数字信号处理器复位后,从外存ROM中调入其它相应B段或C段或D段、…的功能模块程序运行;
第四步,需要在DSP数字信号处理器的RAM空间中运行ROM空间中的全部程序时,先对DSP数字信号处理器加电,其内存RAM中的空间X为随机数,从外存ROM中将A段功能模块程序调入RAM空间运行;A段功能模块程序运行结束时,改写RAM中空间X的A段功能模块程序的地址代码为B段功能模块程序的地址代码,在DSP数字信号处理器复位后,从外存ROM中将B段功能模块程序调入RAM中运行;当B段功能模块程序运行结束时,改写空间X的B段功能模块程序的地址代码为C段功能模块程序的地址代码,在DSP数字信号处理器复位后,从外存ROM中将C段功能模块程序调入RAM中运行;依序类推,直到DSP数字信号处理器的内存RAM将ROM中存放的全部程序运行完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101040510A CN100365570C (zh) | 2003-12-18 | 2003-12-18 | 运用于dsp的动态加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101040510A CN100365570C (zh) | 2003-12-18 | 2003-12-18 | 运用于dsp的动态加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1629805A CN1629805A (zh) | 2005-06-22 |
CN100365570C true CN100365570C (zh) | 2008-01-30 |
Family
ID=34842931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101040510A Expired - Lifetime CN100365570C (zh) | 2003-12-18 | 2003-12-18 | 运用于dsp的动态加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100365570C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833464A (zh) * | 2010-04-16 | 2010-09-15 | 深圳市五巨科技有限公司 | 一种移动终端分段加载应用程序的方法及装置 |
CN101546267B (zh) * | 2008-03-24 | 2012-08-22 | 大唐移动通信设备有限公司 | 向数字信号处理器的外存加载程序的方法、系统及装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100464297C (zh) * | 2007-01-26 | 2009-02-25 | 北京中星微电子有限公司 | 一种实现软件移植的方法、系统及芯片 |
CN101441572B (zh) * | 2007-11-21 | 2012-04-11 | 上海摩波彼克半导体有限公司 | Dsp芯片中实现运行代码加载的方法 |
CN101685421B (zh) * | 2008-09-24 | 2011-11-23 | 大唐移动通信设备有限公司 | 一种dsp内存的获取方法和装置 |
CN101834608B (zh) * | 2009-03-10 | 2014-05-07 | 华为技术有限公司 | 一种多通道编解码器运行方法及装置 |
CN103345456B (zh) * | 2013-06-21 | 2015-12-02 | 烽火通信科技股份有限公司 | 调节BootLoader启动地址的电路及方法 |
CN109656628A (zh) * | 2018-12-24 | 2019-04-19 | 中国科学院电子学研究所 | 一种基于网络接口的数据加载方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446165B1 (en) * | 1999-07-30 | 2002-09-03 | International Business Machines Corporation | Address dependent caching behavior within a data processing system having HSA (hashed storage architecture) |
CN1427968A (zh) * | 2000-03-09 | 2003-07-02 | 太阳微系统有限公司 | 用于在无虚拟存储管理器的数据处理设备中预加载类的系统和方法 |
CN1440157A (zh) * | 2003-03-28 | 2003-09-03 | 北京港湾网络有限公司 | 通信设备微处理器代码在线并行加载方法 |
-
2003
- 2003-12-18 CN CNB2003101040510A patent/CN100365570C/zh not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446165B1 (en) * | 1999-07-30 | 2002-09-03 | International Business Machines Corporation | Address dependent caching behavior within a data processing system having HSA (hashed storage architecture) |
CN1427968A (zh) * | 2000-03-09 | 2003-07-02 | 太阳微系统有限公司 | 用于在无虚拟存储管理器的数据处理设备中预加载类的系统和方法 |
CN1440157A (zh) * | 2003-03-28 | 2003-09-03 | 北京港湾网络有限公司 | 通信设备微处理器代码在线并行加载方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546267B (zh) * | 2008-03-24 | 2012-08-22 | 大唐移动通信设备有限公司 | 向数字信号处理器的外存加载程序的方法、系统及装置 |
CN101833464A (zh) * | 2010-04-16 | 2010-09-15 | 深圳市五巨科技有限公司 | 一种移动终端分段加载应用程序的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1629805A (zh) | 2005-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100365570C (zh) | 运用于dsp的动态加载方法 | |
US4254463A (en) | Data processing system with address translation | |
CN107273212A (zh) | 一种动态分配内存的方法及系统 | |
CA2233217A1 (en) | A system and method for loading applications onto a smart card | |
GB2459939A (en) | DMA engine for high bandwidth real-time critical applications | |
JPH08502612A (ja) | データ処理システムおよびオペレーティング・システム | |
CN102023843B (zh) | 函数的调用方法、装置及智能卡 | |
EP0867806A3 (en) | Operating system provision for computer system | |
CA2264232A1 (en) | Systems and methods for providing dynamic data referencing in a generic data exchange environment | |
WO2002013010A3 (en) | Method, system, and program for invoking stored procedures and accessing stored procedure data | |
CN103309684A (zh) | 动态加载应用的方法及装置 | |
CN101126978A (zh) | 一种多级菜单实现方法 | |
GB2423172B (en) | Apparatus and method for garbage collection | |
CN104077266B (zh) | 多内核操作系统实现方法和实现装置及系统 | |
CN101309149B (zh) | 一种地址处理方法和装置 | |
CA2378406A1 (en) | Method for operating a portable data carrier configured for executing reloadable functional programs | |
CN101493775A (zh) | 嵌入式系统的动态加载系统及其加载方法 | |
CN104572485B (zh) | 双系统共用内存的分配方法及装置 | |
CN102455907B (zh) | 多卡手机应用软件设计方法 | |
US5615140A (en) | Fixed-point arithmetic unit | |
CN1079004C (zh) | 在数字蜂窝结构系统中的基站系统的装载方法 | |
CN109976920A (zh) | 一种用于教育操作系统的并发式控制的实现方法及装置 | |
CN101576744A (zh) | 一种plc机器码执行方法 | |
EP1445674A3 (en) | Operating system for a programmable controller of a hydraulic system | |
CN1110919C (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200914 Address after: Room 101, No. 88, Shangpo street, Shangpo village, Rongcheng County, Baoding City, Hebei Province Patentee after: CETC Cyberspace Security Research Institute Co.,Ltd. Address before: 610041, No. 6, pioneering Road, hi tech Zone, Sichuan, Chengdu Patentee before: The 30th Research Institute of China Electronics Technology Group Corporation |
|
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20080130 |