×
模拟电路设计 > 详情

Cortex M3的SRAM单元故障软件的自检测研究

发布时间:2020-07-07 发布时间:
|

目前,对于存储单元SRAM的研究都是基于硬件电路来完成,而且这些方法都是运用在生产过程中,但是生产过程并不能完全杜绝SRAM的硬件故障。在其使用过程中,如果SRAM硬件出错,将导致程序出错而且很难被发现。因此在运用的阶段,为防止存储单元损坏而导致系统出错,通过软件的方式对SRAM进行检测是必要的。

1 SRAM运行状态分析

SRAM是存储非CONSTANT变量(如RW),它具有掉电即失的特点。由CortexM3的启动步骤可知,系统上电后,首先执行复位的5个步骤:

①NVIC复位,控制内核;

②NVIC从复位中释放内核;

③内核配置堆栈;

④内核设置PC和LR;

⑤运行复位程序。

可以看出,不能在调入C环境之后检测SRAM,必须在CortexM3复位之前和启动之后进行检测。

在执行系统复位的最后一个步骤之前,系统都没有对SRAM执行任何相关的数据传送动作。第⑤步运行复位程序,在ST公司Cortex-M3处理器内核的STM32系列微控制器的启动代码中有一段复位子程序:

在这个子程序里导入了__main,__main是C库文件的入口地址。它执行下面3个步骤:

①复制非root(RW、RO)从Flash到SRAM;

②分配ZI区,并且初始化为0;

③跳转到堆栈初始化子程序接口__rt_entry。

由_ _main的第一步可以得出,在跳入_ _main之后,系统对SRAM进行了相关数据转移的操作。因此,检测SRAM必须在此步骤之前,否则将会覆盖SRAM从Flash中转移过来的数据。

2 SRAM检测方案设计

在复位子程序跳入_ _main之前,设计另一个程序入口SRAM_Check,使PC指针指向该SRAM进行硬件单元检



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
电子工程师须知:有效降低传导辐射干扰的技巧