[发明专利]一种星载DSP程序外部引导加载方法及加载系统有效
申请号: | 202010497475.1 | 申请日: | 2020-06-04 |
公开(公告)号: | CN111625286B | 公开(公告)日: | 2021-04-27 |
发明(设计)人: | 武昆;宋克非;孙亮;代霜;张佩杰 | 申请(专利权)人: | 中国科学院长春光学精密机械与物理研究所 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401;G06F8/61 |
代理公司: | 长春众邦菁华知识产权代理有限公司 22214 | 代理人: | 朱红玲 |
地址: | 130033 吉*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 dsp 程序 外部 引导 加载 方法 系统 | ||
1.一种星载DSP程序引导加载方法,其特征是:该方法具体由以下步骤实现:
步骤一、系统上电,初始化SPI模块,使能SPI时钟,并设置所述SPI时钟频率;使能信号SPISIMO、信号SPISOMI、时钟脉冲信号SPICLK和片选信号设置SPI模块的工作模式为:8位数据流、内部时钟以及主模式;
步骤二、FPGA逐字节读取EEPROM的三个不同地址段上的数据,并按位进行三取二校验,将校验后的数据存储到寄存器中;
步骤三、所述DSP通过SPI串口引导加载数据,具体过程为:
步骤三一、所述DSP读取GPIOF3端口的状态,启动SPI引导模式,使能片选信号由高变低,FPGA识别信号下降沿后,对DSP加载时钟脉冲信号SPICLK进行计数,并将步骤二存储到寄存器中的校验后的数据通过引脚SPISOMI发送至DSP;
步骤三二、所述DSP调用SPI_Boot程序,接收关键字,并判断接收的关键字是否为0x08AA,如果是,则执行步骤三三,如果否,执行步骤三四;
步骤三三、开启SPI外部引导,所述DSP通过SPI串口继续接收数据,并将接收的两个字节分别设置为低速时钟寄存器和SPI波特率寄存器的数值,继续读取7个字节丢弃后,按照外部引导文件数据流格式将接收的数据段复制DSP的内部RAM区的指定地址,然后指针跳到程序入口地址,启动内部RAM区的二级bootloader程序,执行步骤四;
步骤三四、所述DSP时钟脉冲信号SPICLK不再发送脉冲,FPGA停止发送数据,启动内部引导模式,跳转到内部FLASH入口地址取出跳转指令,然后再跳转到内部FLASH区的二级bootloader程序中,执行步骤五;
步骤四、执行内部RAM区的codestart跳转指令模块,指针跳转到RAM区的WD_DISABLE模块,WD_DISABLE模块关闭DSP内部的看门狗,然后指针跳到RAM区的三取二模块,利用三取二校验方法对用户程序段1的三个不同存储区逐字节读取数据,并将分别读取的每个字节进行三取二校验,复制校验后的用户程序段1数据到CMD文件指定的RAM区内,最后指针跳转到用户程序入口_C_INT00,执行步骤六;
步骤五、执行内部FLASH区的codestart跳转指令模块,指针跳转到FLASH区的WD_DISABLE模块,WD_DISABLE模块关闭DSP内部的看门狗,然后指针跳到FLASH区的三取二模块,利用三取二校验方法对用户程序段1的三个不同存储区逐字节读取数据,并将分别读取的每个字节进行三取二校验,复制校验后的用户程序段1数据到CMD文件指定的FLASH区内,最后指针跳转到用户程序入口_C_INT00,执行步骤六;
步骤六、通过用户程序入口_C_INT00,跳转到main函数,所述main函数对所述用户程序段2进行三取二校验和烧写Flash操作;具体过程为:
步骤六一、扇区擦除;利用Flash API函数Flash_Erase擦除内部FLASH的扇区I;
步骤六二、程序分割;即:将所述用户程序段2按所述内部RAM区的长度分为N段,每段烧写一次;设定t=1且t≤N,t为烧写次数;
步骤六三、三取二校验;对用户程序段2中每段需要烧写的数据进行三取二校验,将校验后的数据段复制到内部RAM区;
步骤六四、数据烧写和验证;
首先,调用API函数Flash_Program将内部RAM区对应数据烧写到内部FLASH扇区I中;
其次,再调用API函数Flash_Verify验证烧写到内部FLASH区中的数据是否正确;
步骤六五、烧写次数t加1,循环执行步骤六三和步骤六四,直到全部烧写完成;
步骤七、完成用户程序外部引导加载,初始化DSP,实现系统的正常运行。
2.根据权利要求1所述的一种星载DSP程序引导加载方法,其特征在于:所述三取二校验的具体方法为:
三取二校验通过对三个数据同时进行逐个数据位判定,若该数据位相同则取此相同数据位值,若不完全相同,则取占多数的数据位值,三取二校验的公式为:
式中,A、B、C分别为三个数值,分别为对A、B、C三个数值进行逻辑非操作,为逻辑与符号。
3.根据权利要求1所述的一种星载DSP程序引导加载方法,其特征在于:步骤三二中,通过FPGA改变DSP接收的关键字数值,实现切换引导模式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院长春光学精密机械与物理研究所,未经中国科学院长春光学精密机械与物理研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010497475.1/1.html,转载请声明来源钻瓜专利网。