[发明专利]基于ARM cortex-M内核的存储器检测方法在审
申请号: | 202211719676.7 | 申请日: | 2022-12-30 |
公开(公告)号: | CN115981942A | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 李文军;丰新龙;宣晓刚 | 申请(专利权)人: | 太原航空仪表有限公司 |
主分类号: | G06F11/22 | 分类号: | G06F11/22;G11C29/04 |
代理公司: | 中国航空专利中心 11008 | 代理人: | 白瑶君 |
地址: | 030006 山西*** | 国省代码: | 山西;14 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 arm cortex 内核 存储器 检测 方法 | ||
本发明属于存储器领域,涉及基于ARM cortex‑M内核的存储器检测方法。该方法包括:采用符合ARM汇编指令集的编码规范进行编码,使用汇编代码作为算法检测的框架,并使用存储器业界通用检测算法,能够在上电并配置完毕系统主频时钟后执行检测。
技术领域
本发明属于存储器领域,涉及基于ARM cortex-M内核的存储器检测方法。
背景技术
现有的基于ARM cortex-M内核的MCU(包括但不限于GD32F4系列、STM32系列)的片内SRAM自检测一般采用固定地址的整数浮点数的读写、加减乘除、移位等操作进行自检测。
缺点:只能固定地址检测,自检测不能覆盖全部SRAM存储空间(包括堆栈空间),没有采用存储器行业内常用的检测算法(如MarchC算法),不能对所有SRAM空间做初始化赋零值的操作,不能有效检测SRAM存储器的故障异常位置,故障率识别率极低。
发明内容
发明目的:解决对ARM cortex-M内核的MCU(包括但不限于GD32F4系列、STM32系列)的片内SRAM的全部SRAM空间(包括所有堆栈空间)进行快速有效的自检测。
技术方案:
一种基于ARM cortex-M内核的存储器检测方法,包括:
采用符合ARM汇编指令集的编码规范进行编码,使用汇编代码作为算法检测的框架,并使用存储器业界通用检测算法,能够在上电并配置完毕系统主频时钟后执行检测。
所述采用符合ARM汇编指令集的编码规范进行编码,使用汇编代码作为算法检测的框架,并使用存储器业界通用检测算法,能够在上电并配置完毕系统主频时钟后执行检测,包括:
获取SRAM第一次自检的结果;
依据第一次自检的结果,判断上电启动是冷启动还是热启动;
若是冷启动,获取存储SRAM自检结果的地址偏移量;
若地址偏移量小于或等于预设值,则获取SRAM自检结果的存储区域的起始地址和区域大小;
获取起始堆栈指针;
对起始堆栈指针之后的SRAM空间进行自检;
若第二次自检通过,则备份全部栈数据,向前移动堆栈指针;
对起始堆栈指针之前的SRAM空间进行自检;
若第三次自检通过,则还原全部栈数据,存储三次自检结果。
所述方法还包括:
若是热启动,或地址偏移量大于预设值,则结束整个流程。
所述方法还包括:
若第二次自检未通过,则存储第二次自检错误现场相关信息。
所述方法还包括:
若第三次自检未通过,则存储第三次自检错误现场相关信息,并还原全部栈数据。
预设值为16个字节。
当前将要备份全部栈数据的长度=起始堆栈指针-当前SP指针。
当前SP指针=当前SP指针+0x200。
有益效果:对所有的SRAM空间进行自检测,包括软件所用所有堆栈空间,能有效检测SRAM存储器的故障异常位置,故障率识别率很高,保证自检测完成后所有SRAM空间均赋零值,同时具备检测MCU冷热启动的功能,自检测时间短(通常不超过几十毫秒),只需经过简单修改配置即可适用于全系类ARM cortex-M内核的MCU的片内SRAM自检测。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于太原航空仪表有限公司,未经太原航空仪表有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211719676.7/2.html,转载请声明来源钻瓜专利网。