CN1629805A - 运用于dsp的动态加载方法 - Google Patents
运用于dsp的动态加载方法 Download PDFInfo
- Publication number
- CN1629805A CN1629805A CN 200310104051 CN200310104051A CN1629805A CN 1629805 A CN1629805 A CN 1629805A CN 200310104051 CN200310104051 CN 200310104051 CN 200310104051 A CN200310104051 A CN 200310104051A CN 1629805 A CN1629805 A CN 1629805A
- Authority
- CN
- China
- Prior art keywords
- dsp
- code
- loading
- program
- code segment
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 claims description 43
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 4
Landscapes
- Stored Programmes (AREA)
Abstract
本发明一种运用于DSP的动态加载方法涉及一种运用于数字信号处理器的动态加载方法,特别涉及一种运用于DSP的动态加载程序的方法,本发明是利用ADSP21065本身的加载程序和软件复位程序,修改其加载起始地址而实现,使用本发明方法后在不需要额外的RAM开销情况下程序的动态加载,可最大限度的利用DSP的内存空间,有利于大量的程序放入DSP内运行。
Description
技术领域
本发明涉及一种运用于数字信号处理器的动态加载方法,特别涉及一种运用于DSP的动态加载程序的方法。
背景技术
ANALOG公司的ADSP21065处理器是一款经济型的DSP处理器,也称数字信号处理器。ANALOG公司在提供ADSP21065处理器时,提供了一种弥补其内存空间小的基于RAM的办法,但所用办法需要扩展有足够的RAM空间,同时掉电存放程序的ROM也需要足够大的空间;同时该办法加载需要按一定的规则使用其寄存器,给开发者带来一定的麻烦,不利于大量的程序放入DSP内运行。
发明内容
本发明的目的是实现在不需要额外的RAM开销情况下程序的动态加载,可最大限度的利用DSP的内存空间,有利于大量的程序放入DSP内运行。本发明的技术关键在于:修改编写DSP的加载程序;在运行代码中添加必要的复位加载条件;ROM存储器按设计地址放置相应的程序代码;设计动态复位电路等。
为实现所述目的本发明的操作步骤为:
(1)DSP外接的ROM存放的程序按功能模块化,模块化程序分为代码段,A、B、C段等,在代码段中必须有加载其它代码段程序的条件;
(2)定义与DSP连接RAM的一个RAM空间X作为加载程序中的加载起始码地址和加载条件的RAM空间,其余为程序运行空间;
(3)修改加载程序中的加载起始码地址,并确定模块化的代码段的加载条件。
使用本发明方法后:
1)设备在初次加电时,RAM空间X的数为随机数,不满足加载B和C代码段,满足加载A代码段的条件;加载A代码段的起始码地址,A代码段的程序进入DSP运行环境运行。当外部选择信号要求DSP运行代码B时,DSP运行程序将RAM单元X的数据改写为满足加载B代码段条件的数据,且让DSP运行程序重新复位。
2)由于RAM单元X数据满足加载B代码段的条件,故DSP复位后在运行加载程序时将加载B代码段的起始码地址,B代码段的程序进入DSP运行环境运行。当外部选择信号要求DSP运行代码C段时,DSP运行程序将RAM单元X的数据改写为满足加载C代码段条件的数据,且DSP程序重新复位。
3)由于RAM单元X数据满足加载C代码段的条件,故DSP复位后在运行加载程序时将加载C代码段的起始码地址,C代码段的程序进入DSP运行环境运行。当外部选择信号要求DSP运行代码A时,DSP运行程序将RAM单元X的数据改写为满足加载A代码段条件的数据,且DSP运行程序重新复位。由于RAM单元X数据满足加载A代码段的条件,故DSP复位后在运行加载程序时将加载A代码段的起始码地址,A代码段的程序进入DSP运行环境运行。
如此反复,便实现了程序的动态加载。
ADSP21065 DSP处理器复位的实现,根据实时性要求的高低,可利用硬件系统的看门狗超时实现,加载时间较长,一般为500ms左右;也可利用DSP的片上IO口,用上拉电阻上拉,管脚通过外部延时逻辑实现,加载时间可控制的非常短,达到小于50ms。
在生成ROM中,代码A、B、C的起始地址一定要和其软件本身设置的条件复位地址一致。即应注意加载程序ROM中A、B、C的位置和A、B、C中软件设置的条件复位地址保持一致性,否则程序将不能正常运行。
这样实现在不需要额外的RAM开销情况下程序的动态加载,最大限度地利用DSP的内存空间,有利于大量的程序放入DSP内运行。
具体实施方式
本发明是利用ADSP21065本身的加载程序和软件复位程序,修改其加载起始地址而实现。
实施例1:
(1)将DSP外接的ROM存放的程序按功能模块化,模块化程序分为代码A、B、C段。
ROM存储器代码放置:加载程序代码段、A代码段、B代码段、C代码段。
(2)将DSP连接RAM的一个空间X定义为加载程序中的加载起始码地址和加载条件的空间,其余为程序运行空间;
(3)修改加载程序中的加载起始码地址,并确定模块化的代码段的加载条件;
定义单元X为十六进制0X12345678时,加载程序代码运行后跳至代码B加载程序;单元X十六进制0X87654321时,加载程序代码运行后跳至代码B加载程序;如单元X是不为上述两数,即加载代码A。
1)设备在初次加电时,RAM单元X的数为随机数,不满足加载B和C代码段,加载代码A,进入DSP运行环境运行。当外部选择信号要求DSP运行代码B时,DSP运行程序将RAM单元X数改写为0X12345678,且让DSP重新复位。
2)由于RAM单元X数据为0X12345678,故DSP复位后在运行加载程序时根据判断的条件将加载代码B,即代码B进入DSP运行环境运行。当外部选择信号要求DSP运行代码C时,DSP运行程序将RAM单元X数改写为0X87654321,且让DSP重新复位。
3)由于RAM单元X数据为0X87654321,故DSP复位后在运行加载程序时根据判断的条件将加载代码C,即代码C进入DSP运行环境运行。当外部选择信号要求DSP运行代码A时,DSP运行程序将RAM单元X数改写为不是0X12345678和0X87654321的以外的数,且程序重新复位,则DSP将加载代码A,并运行。
如此反复,便实现了程序的动态加载。
在生成ROM中,代码A、B、C的起始地址一定要和其软件本身设置的条件复位地址一致。即应注意加载程序ROM中A、B、C的位置应和A、B、C中软件设置的条件复位地址保持一致性,否则程序将不能正常运行。
这样实现在不需要额外的RAM开销情况下程序的动态加载,最大限度地利用DSP的内存空间,有利于大量的程序放入DSP内运行。
实施例2:
(1)将DSP外接的ROM存放的程序按功能模块化,模块化程序分为代码A、B段。
ROM存储器代码放置:加载程序代码段、A代码段、B代码段。
(2)将DSP连接RAM的一个空间X定义为加载程序中的加载起始码地址和加载条件的空间,其余为程序运行空间;
(3)修改加载程序中的加载A代码段、B代码段起始码地址,并确定模块化的代码段A代码段、B代码段的加载条件;
实施例3:
(1)将DSP外接的ROM存放的程序按功能模块化,模块化程序分为代码A、B、C段、D段、E段。
ROM存储器代码放置:加载程序代码段、A代码段、B代码段、C代码段。D代码段、E代码段。
(2)将DSP连接RAM的一个空间Y设置为存储加载程序中的加载起始码地址和加载条件的空间;其余为程序运行空间;
(3)修改加载程序中的加载起始码地址,并确定模块化的代码段的加载条件;
定义:单元Y为十六进制0X00ABCDEF时,加载程序代码运行后跳转至代码B加载程序;单元Y为十六进制0X00FEDCBA时,加载程序代码运行后跳转至代码C加载程序;单元Y为十六进制0XABCDEF00时,加载程序代码运行后跳转至代码D加载程序;单元Y为十六进制0XFEDCBA00时,加载程序代码运行后跳转至代码E加载程序;单元Y为非十六进制0X00ABCDEF、0X00FEDCBA、0XABCDEF00、0XFEDCBA00时,加载程序代码运行后跳转至代码A加载程序。
1)设备在初次加电时,RAM单元Y的数为随机数,不满足加载B、C、D和E代码段,加载代码A,进入DSP运行环境运行。当外部选择信号要求DSP运行代码B时,DSP运行程序将RAM单元Y数改写为0X00ABCDEF,且DSP重新复位。
2)由于RAM单元Y数据为0X00ABCDEF,故DSP复位后在运行加载程序时根据判断的条件将加载代码B,即代码B进入DSP运行环境运行。当外部选择信号要求DSP运行代码C时,DSP运行程序将RAM单元Y数改写为0X00FEDCBA,且DSP重新复位。
3)由于RAM单元Y数据为0X00FEDCBA,故DSP复位后在运行加载程序时根据判断的条件将加载代码C,即代码C进入DSP运行环境运行。当外部选择信号要求DSP运行代码E时,DSP运行程序将RAM单元Y数改写为0XFEDCBA00,且DSP重新复位。
4)由于RAM单元Y数据为0XABCDEF00,故DSP复位后在运行加载程序时根据判断的条件将加载代码D,即代码D进入DSP运行环境运行。当外部选择信号要求DSP运行代码B时,DSP运行程序将RAM单元Y数改写为0X00ABCDEF,且DSP重新复位。
5)由于RAM单元Y数据为0X00ABCDEF,故DSP复位后在运行加载程序时根据判断的条件将加载代码B,即代码B进入DSP运行环境运行。当外部选择信号要求DSP运行代码A时,DSP运行程序将RAM单元Y数改写为不是0X00ABCDEF、0X00FEDCBA、0XABCDEF00、0XFEDCBA00的以外的数,且DSP重新复位,则DSP将加载代码A,并运行。
如此反复,任何一段代码运行时均可通过改写RAM单元Y的数据实现对其他代码段的加载,实现了程序的动态加载。
在生成ROM中,代码A、B、C、D、E的起始地址一定要和其软件本身设置的条件复位地址一致。即应注意加载程序ROM中A、B、C、D、E的位置和A、B、C、D、E中软件设置的条件复位地址保持一致性,否则程序将不能正常运行。
这样实现在不需要额外的RAM开销情况下程序的动态加载,最大限度地利用DSP的内存空间,有利于大量的程序放入DSP内运行。
Claims (2)
1、一种运用于DSP的动态加载方法,其操作步骤为:
(1)DSP外接的ROM存放的程序按功能模块化,模块化程序分为代码段,在代码段中必须有加载其它代码段程序的条件;
(2)定义与DSP连接RAM的一个RAM空间X作为加载程序中的加载起始码地址和加载条件的RAM空间,其余为程序运行空间;
(3)修改加载程序中的加载起始码地址,并确定模块化的代码段的加载条件。
2、如权利要求1所述的运用于DSP的动态加载方法,其特征在于:所述的代码段为至少为二段。
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 true CN1629805A (zh) | 2005-06-22 |
CN100365570C 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 (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100464297C (zh) * | 2007-01-26 | 2009-02-25 | 北京中星微电子有限公司 | 一种实现软件移植的方法、系统及芯片 |
CN101834608A (zh) * | 2009-03-10 | 2010-09-15 | 华为技术有限公司 | 一种多通道编解码器运行方法及装置 |
CN101685421B (zh) * | 2008-09-24 | 2011-11-23 | 大唐移动通信设备有限公司 | 一种dsp内存的获取方法和装置 |
CN101441572B (zh) * | 2007-11-21 | 2012-04-11 | 上海摩波彼克半导体有限公司 | Dsp芯片中实现运行代码加载的方法 |
CN103345456A (zh) * | 2013-06-21 | 2013-10-09 | 烽火通信科技股份有限公司 | 调节BootLoader启动地址的电路及方法 |
CN109656628A (zh) * | 2018-12-24 | 2019-04-19 | 中国科学院电子学研究所 | 一种基于网络接口的数据加载方法 |
Families Citing this family (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 | 深圳市五巨科技有限公司 | 一种移动终端分段加载应用程序的方法及装置 |
Family Cites Families (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) |
US6745386B1 (en) * | 2000-03-09 | 2004-06-01 | Sun Microsystems, Inc. | System and method for preloading classes in a data processing device that does not have a virtual memory manager |
CN1183710C (zh) * | 2003-03-28 | 2005-01-05 | 港湾网络有限公司 | 通信设备微处理器代码多块业务板在线同时加载方法 |
-
2003
- 2003-12-18 CN CNB2003101040510A patent/CN100365570C/zh not_active Expired - Lifetime
Cited By (8)
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内存的获取方法和装置 |
CN101834608A (zh) * | 2009-03-10 | 2010-09-15 | 华为技术有限公司 | 一种多通道编解码器运行方法及装置 |
CN101834608B (zh) * | 2009-03-10 | 2014-05-07 | 华为技术有限公司 | 一种多通道编解码器运行方法及装置 |
CN103345456A (zh) * | 2013-06-21 | 2013-10-09 | 烽火通信科技股份有限公司 | 调节BootLoader启动地址的电路及方法 |
CN103345456B (zh) * | 2013-06-21 | 2015-12-02 | 烽火通信科技股份有限公司 | 调节BootLoader启动地址的电路及方法 |
CN109656628A (zh) * | 2018-12-24 | 2019-04-19 | 中国科学院电子学研究所 | 一种基于网络接口的数据加载方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100365570C (zh) | 2008-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1629805A (zh) | 运用于dsp的动态加载方法 | |
CN1185582C (zh) | 调度无用单元收集的方法 | |
CN1290897A (zh) | 可动态调节而且可配置的废料收集程序用的方法和系统 | |
CN1271524C (zh) | 一种静态内存管理方法 | |
CN1357124A (zh) | 执行处理器语境切换和重调度的系统和方法 | |
CN1700601A (zh) | 逻辑电路装置 | |
WO2003060715A3 (en) | Value recycling facility for multithreaded computations | |
CN1043401A (zh) | 在计算机存储空间增加定位rom的选择 | |
CN100340983C (zh) | 对非易失可编程逻辑器件在线升级的方法及装置 | |
CN1296836C (zh) | 用以于嵌入程序只读存储器中实施修正机制的电路与方法 | |
CN1770125A (zh) | 一种分配内存的方法 | |
CN1852146A (zh) | 一种热备份系统和方法 | |
CN1499374A (zh) | 一种单元测试自动化方法 | |
CN1851676A (zh) | 一种嵌入式系统缓冲式内存分配方法 | |
CN1477512A (zh) | 嵌入式软件任务死循环监控方法 | |
CN1801086A (zh) | 应用于Java操作系统中设备支持的实现方法 | |
CN1786910A (zh) | 一种bios在线升级方法 | |
CN1584844A (zh) | 一种单片机在线升级方法和装置 | |
CN2743897Y (zh) | 基于can总线的燃料电池汽车整车控制器监控系统 | |
CN1110919C (zh) | 下载数据以向声码器添加功能的方法 | |
CN1749953A (zh) | 格式支持能力可无限扩充式多媒体播放系统 | |
CN101063939A (zh) | 可更新操作系统程序的嵌入式装置及其方法 | |
CN1556472A (zh) | 一种嵌入式系统中可执行文件的压缩及其加载方法 | |
CN101059774A (zh) | 动态存储管理装置及方法 | |
CN1723485A (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 |