运用于dsp的动态加载方法

文档序号:6341766阅读:339来源:国知局
专利名称:运用于dsp的动态加载方法
技术领域
本发明涉及一种运用于数字信号处理器的动态加载方法,特别涉及一种运用于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内运行。
权利要求
1.一种运用于DSP的动态加载方法,其操作步骤为(1)DSP外接的ROM存放的程序按功能模块化,模块化程序分为代码段,在代码段中必须有加载其它代码段程序的条件;(2)定义与DSP连接RAM的一个RAM空间X作为加载程序中的加载起始码地址和加载条件的RAM空间,其余为程序运行空间;(3)修改加载程序中的加载起始码地址,并确定模块化的代码段的加载条件。
2.如权利要求1所述的运用于DSP的动态加载方法,其特征在于所述的代码段为至少为二段。
全文摘要
本发明一种运用于DSP的动态加载方法涉及一种运用于数字信号处理器的动态加载方法,特别涉及一种运用于DSP的动态加载程序的方法,本发明是利用ADSP21065本身的加载程序和软件复位程序,修改其加载起始地址而实现,使用本发明方法后在不需要额外的RAM开销情况下程序的动态加载,可最大限度的利用DSP的内存空间,有利于大量的程序放入DSP内运行。
文档编号G06F9/445GK1629805SQ20031010405
公开日2005年6月22日 申请日期2003年12月18日 优先权日2003年12月18日
发明者饶志宏, 谢瑞云, 彭勃 申请人:中国电子科技集团公司第三十研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1