[发明专利]一种用于DSP的分段双冗余引导加载方法在审
申请号: | 202011469679.0 | 申请日: | 2020-12-14 |
公开(公告)号: | CN112559071A | 公开(公告)日: | 2021-03-26 |
发明(设计)人: | 杨健;阮忠园;张晓峰;蒋凯;计旭;贠磊磊 | 申请(专利权)人: | 上海航天控制技术研究所 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 上海航天局专利中心 31107 | 代理人: | 圣冬冬 |
地址: | 201109 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 dsp 分段 冗余 引导 加载 方法 | ||
1.一种用于DSP的分段双冗余引导加载方法,其特征在于,包括以下步骤:
首先,将应用程序按程序代码大小分成多个段;
其次,将各段的运行地址、长度、CRC校验及各段代码冗余地固化于FLASH中;
再次,上电后根据各段的起始地址及长度将各段代码搬运至SRAM中,并计算搬运后SRAM内各段的校验CRC校验是否正确;
若校验一致,则继续搬运代码;若不正确则将该段代码从FLASH的冗余区重新搬到SRAM内;
最后直至SRAM且校验均正确后,启动运行应用程序。
2.根据权利要求1所述的一种用于DSP的分段双冗余引导加载方法,其特征在于,所述步骤具体包括:
步骤1:将应用程序代码按大小分为多个程序段,并计算每个段的CRC32校验值;
步骤2:将应用程序各段代码在SRAM内的运行地址、代码长度及CRC32校验值烧写至FLASH存储器中;
步骤3:将应用程序各段代码代码依次烧写至FLASH存储器A1~AN区域中,同时烧写至冗余区域B1~BN中;
步骤4:上电后,根据存储在FLASH存储器中的应用程序第1段代码的运行地址及长度将FLASH存储器中第1段代码A1区域数据搬运至SRAM的第1段代码区;
步骤5:计算搬运后SRAM中第1段代码区的CRC32校验值,并比较计算得到的校验值与存储在FLASH内第1段代码的校验值是否一致;
步骤6:若校验一致,则继续搬运第2段代码;
步骤7:若校验不一致,则将FLASH存储器中第1段代码冗余A2区域数据搬运至SRAM的第1段代码区,计算搬运后SRAM中第1段代码区的CRC32校验值,并比较计算得到的校验值与存储在FLASH内第1段代码的校验值是否一致;
步骤8:若校验一致,则继续搬运第2段代码;
步骤9:若校验不一致,则将错误代码及错误地址发送至上位机,同时终止运行;
步骤10:按照上述方法将应用程序各段的代码均搬运至SRAM且校验均正确后,启动运行应用程序。
3.根据权利要求2所述的一种用于DSP的分段双冗余引导加载方法,其特征在于,所述FLASH采用SM29LV320,DSP使用TMS320C6713。
4.根据权利要求3所述的一种用于DSP的分段双冗余引导加载方法,其特征在于,所述SRAM存储器为TMS320C6713芯片内部SRAM。
5.根据权利要求4所述的一种用于DSP的分段双冗余引导加载方法,其特征在于,所述应用程序代码大小为0x38000字节,将应用程序分为4个代码段,将各段的大小、起始运行地址及CRC32校验写入FLASH存储器,并将各段代码分别冗余地写入FLASH,为模拟FLASH异常翻转,将第3段代码A3中某一位由1写成0。
6.根据权利要求5所述的一种用于DSP的分段双冗余引导加载方法,其特征在于,上电后,引导加载程序将FLASH中的第1段代码A1搬运值SRAM中,并计算RAM内第1段代码区的CRC校验值,将计算的校验与存储在FLASH内的第1段校验进行对比,两校验一致,继续搬运第2段代码B1。
7.根据权利要求6所述的一种用于DSP的分段双冗余引导加载方法,其特征在于,校验通过后继续搬运第3段代码A3,计算的RAM内第3段代码区的CRC校验值与存储在FLASH内的第3段校验值不一致,将FLASH中的第3段代码冗余区B3搬运至SRAM中第3段代码区,并重新计算校验,与存储在FLASH内的第3段校验值一致后继续将第4段代码搬运至SRAM,并启动运行应用程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海航天控制技术研究所,未经上海航天控制技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011469679.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种家具加工台床
- 下一篇:一种检测钢轨泄漏电流的检测系统和检测方法