本发明属于dsp应用,尤其涉及一种基于dsp片外flash的多级程序引导跳转方法及装置。
背景技术:
1、在基于dsp技术的项目开发与应用过程中,对于硬件开发与软件设计往往由多组设计人员参与,不同硬件开发模块与软件程序部分之间存在保密限制,如甲方针对dsp处理器设计有一级程序,而乙方同样对dsp处理器设计有二级程序,由于tms320c6713型号的dsp处理器片内仅存有256kb的sram存储空间,而无片内flash,故单依靠dsp处理器无法实现多程序在一次上下电操作下进行程序验证。因此,针对仅有片内sram存储空间的dsp处理器,提出一种dsp处理器连接片外flash存储器的方案,在单次上下电操作下,实现一次程序与二次程序的自动引导跳转功能。
技术实现思路
1、本发明提供一种基于dsp片外flash的多级程序引导跳转方法及装置,以解决现有dsp处理器的程序开发过程中,在单次上下电操作下无法实现多级程序的加载和引导跳转的技术问题。
2、为解决上述问题,本发明的技术方案为:一种基于dsp片外flash的多级程序引导跳转方法,包括如下步骤:
3、s1:dsp处理器上电复位,触发reset中断,所述reset中断指向固化在片外flash存储器中的bootloader代码,执行第一次bootloader程序引导跳转,将所述片外flash存储器中一级程序的vecs1程序内容复制至所述dsp处理器中,并在所述dsp处理器中执行所述vecs1程序,在所述vecs1程序执行完毕后,由所述dsp处理器的vecs1程序自动跳转至所述片外flash存储器中一级程序的boot_load程序,并执行所述boot_load程序;
4、s2:在所述boot_load程序执行过程中,将所述片外flash存储器中一级程序的代码部分复制至所述dsp处理器中,并在所述片外flash存储器中的所述boot_load程序执行完毕后,执行第二次bootloader程序引导跳转,由所述片外flash存储器的boot_load程序自动跳转至所述dsp处理器中一级程序的代码部分,并执行所述一级程序的代码部分;
5、s3:在所述一级程序的代码部分执行完毕后,将所述片外flash存储器中二级程序的vecs2程序与代码部分复制至所述dsp处理器中,执行第三次bootloader程序引导跳转,在所述dsp处理器中由所述一级程序自动跳转至所述二级程序并依次执行所述二级程序的vecs2程序与代码部分。
6、优选的,在s1中执行所述dsp处理器上电复位前,进一步还包括如下步骤:将大小超过1kb且为hex格式的一级程序,通过1553b通信方式固化写入所述片外flash存储器中,所述一级程序内容包括vecs1程序、boot_load程序与代码部分。
7、优选的,在s3中执行所述第三次bootloader程序引导跳转前,进一步还包括如下步骤:判断所述片外flash存储器中是否已装订有所述二级程序,若所述片外flash存储器中未装订有所述二级程序,则通过1553b通信方式将hex格式的所述二级程序装订写入所述片外flash存储器中,若所述片外flash存储器中已装订有所述二级程序,则在执行所述第三次bootloader程序引导跳转时,直接调用所述片外flash存储器中现有的所述二级程序;所述二级程序内容包括vecs2程序与代码部分。
8、优选的,s2与s3中执行所述一级程序与所述二级程序的代码部分时,进一步包括如下步骤:所述片外flash存储器中的一级程序执行完毕其boot_load程序后,通过所述第二次bootloader程序引导跳转,由所述片外flash存储器中boot_load程序直接跳转至所述dsp处理器中一级程序代码部分的c_int00入口,所述dsp处理器进一步调用main函数执行所述一级程序的代码部分;
9、所述dsp处理器中的二级程序执行完毕其vecs2程序后,通过所述第三次bootloader程序引导跳转,由所述dsp处理器中的vecs2程序直接跳转至二级程序代码部分的c_int00入口,所述dsp处理器进一步调用main函数执行所述二级程序的代码部分。
10、基于相同的构思,本发明还提供一种基于dsp片外flash的多级程序引导跳转装置,执行上述任意一项所述的基于dsp片外flash的多级程序引导跳转方法,包括:
11、dsp处理器,所述dsp处理器包括tms320c6713b芯片,用于执行一级程序与二级程序;
12、片外flash存储器,所述片外flash存储器包括s29al008j芯片,用于实现一级程序与二级程序的掉电存储;
13、所述dsp处理器设有emif接口,所述emif接口用于连通所述dsp处理器与所述片外flash存储器,实现一级程序与二级程序的内容复制与数据跳转。
14、优选的,所述片外flash存储器地址空间范围配置为0x9000_0000~0x9003_ffff;
15、在所述flash存储器中,地址空间0x9000_0000~0x9000_01ff用于存储所述一级程序的vecs1程序,地址空间0x9000_0200~0x9000_03ff用于存储所述一级程序的boot_load程序,地址空间0x9000_0400~0x9000_ffff用于存储所述一级程序的代码部分,地址空间0x9001_0000~0x9001_03ff用于存储所述二级程序的vecs2程序,地址空间0x9001_0400~0x9003_ffff用于存储所述二级程序的代码部分。
16、优选的,所述dsp处理器设有片内sram存储器,所述sram存储器地址空间范围配置为0x0000_0000~0x0003_ffff;
17、在所述dsp处理器的片内sram存储器中,地址空间0x0000_0000~0x0000_01ff用于存储从所述flash存储器中复制的所述一级程序的vecs1程序,地址空间0x0000_0400~0x0000_ffff用于存储从所述flash存储器中复制的所述一级程序的代码部分,地址空间0x0001_0000~0x0001_03ff用于存储从所述flash存储器中复制的所述二级程序的vecs2程序,地址空间0x0001_0400~0x0003_ffff用于存储从所述flash存储器中复制的所述二级程序的代码部分。
18、优选的,基于dsp片外flash的多级程序引导跳转装置还设有复位模块,所述复位模块包括sm706t复位芯片,所述复位模块分别连接所述emif接口与所述flash存储器的reset复位端口,用于向所述dsp处理器与所述flash存储器输出复位信号。
19、优选的,所述emif接口的ea端口与所述片外flash存储器的a端口连接,所述emif接口的ed端口与所述片外flash存储器的d端口连接,所述emif接口的ce1端口与所述片外flash存储器的ce端口连接,所述emif接口的aoe端口与所述片外flash存储器的oe端口连接,所述emif接口的awe端口与所述片外flash存储器的we端口连接;所述dsp处理器bootmode引导配置管脚hd_gp_asp1[3]上拉至vdd3.3v,hd_gp_asp1[4]下拉至gnd;所述片外flash存储器管脚byte上拉至vdd3.3v。
20、优选的,所述emif接口通过ce1存储空间的16位异步rom boot模式使能启动所述片外flash存储器中的一级程序。
21、本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:
22、在本发明提供的一种基于dsp片外flash的多级程序引导跳转方法及装置中,现有的tms320c6713型号dsp处理器,其带有的片内存储器为sram静态随机存取存储器,只有在保持通电情况下,sram存储器中存储的数据才可保持恒定,在多次上下电加载运行程序下,无法实现多程序数据的同时保存功能,故在dsp处理器外部,通过emif接口外接有flash存储器,flash存储器为非易失性存储器,在电源断开的情况下仍可保存数据,利用dsp处理器与flash存储器连接,并通过多次bootloader程序引导跳转方式设置,实现一级程序与二级程序在dsp处理器及flash存储器中的复制与依次执行功能,在多程序的调试过程中,无需重新进行上下电操作,且无需对硬件进行拆卸升级,极大降低了硬件改造成本,使得本发明在不可随意加断电的综合应用场景下更具有更佳的工程意义。
1.一种基于dsp片外flash的多级程序引导跳转方法,其特征在于,包括如下步骤:
2.如权利要求1所述的基于dsp片外flash的多级程序引导跳转方法,其特征在于,在s1中执行所述dsp处理器上电复位前,进一步还包括如下步骤:
3.如权利要求1所述的基于dsp片外flash的多级程序引导跳转方法,其特征在于,在s3中执行所述第三次bootloader程序引导跳转前,进一步还包括如下步骤:
4.如权利要求1所述的基于dsp片外flash的多级程序引导跳转方法,其特征在于,s2与s3中执行所述一级程序与所述二级程序的代码部分时,进一步包括如下步骤:
5.一种基于dsp片外flash的多级程序引导跳转装置,其特征在于,执行上述权利要求1-4中任意一项所述的一种基于dsp片外flash的多级程序引导跳转方法,包括:
6.如权利要求5所述的基于dsp片外flash的多级程序引导跳转装置,其特征在于,所述片外flash存储器地址空间范围配置为0x9000_0000~0x9003_ffff;
7.如权利要求5所述的基于dsp片外flash的多级程序引导跳转装置,其特征在于,所述dsp处理器设有片内sram存储器,所述sram存储器地址空间范围配置为0x0000_0000~0x0003_ffff;
8.如权利要求5所述的基于dsp片外flash的多级程序引导跳转装置,其特征在于,还设有复位模块,所述复位模块包括sm706t复位芯片,所述复位模块分别连接所述emif接口与所述flash存储器的reset复位端口,用于向所述dsp处理器与所述flash存储器输出复位信号。
9.如权利要求5所述的基于dsp片外flash的多级程序引导跳转装置,其特征在于,所述emif接口的ea端口与所述片外flash存储器的a端口连接,所述emif接口的ed端口与所述片外flash存储器的d端口连接,所述emif接口的ce1端口与所述片外flash存储器的ce端口连接,所述emif接口的aoe端口与所述片外flash存储器的oe端口连接,所述emif接口的awe端口与所述片外flash存储器的we端口连接;所述dsp处理器bootmode引导配置管脚hd_gp_asp1[3]上拉至vdd3.3v,hd_gp_asp1[4]下拉至gnd;所述片外flash存储器管脚byte上拉至vdd3.3v。
10.如权利要求5所述的基于dsp片外flash的多级程序引导跳转装置,其特征在于,所述emif接口通过ce1存储空间的16位异步rom boot模式使能启动所述片外flash存储器中的一级程序。
