SRAM运行状态分析步骤详解

目前,对于存储单元sram的研究都是基于硬件电路来完成,而且这些方法都是运用在生产过程中,但是生产过程并不能完全杜绝sram的硬件故障。在其使用过程中,如果sram硬件出错,将导致程序出错而且很难被发现。因此在运用的阶段,为防止存储单元损坏而导致系统出错,通过软件的方式对sram进行检测是必要的。
1 sram运行状态分析
sram是存储非constant变量(如rw),它具有掉电即失的特点。由cortex—m3的启动步骤可知,系统上电后,首先执行复位的5个步骤:
①nvic复位,控制内核;
②nvic从复位中释放内核;
③内核配置堆栈;
④内核设置pc和lr;
⑤运行复位程序。
可以看出,不能在调入c环境之后检测sram,必须在cortex—m3复位之前和启动之后进行检测。
在执行系统复位的最后一个步骤之前,系统都没有对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进行硬件单元检测程序(sram_check)的入口。在sram_check里,首先将pc指针指向sram的首地址并写入0xff,读回该地址的值到通用寄存器rn1,并对rn1里的值进行加1操作,然后将rn1和256做比较,得出sram硬件是否损坏。这种操作可以避免因sram硬件一直为1或0而出现算法本身错误。由于cortex—m3复位后默认的时钟为hsi,是一个内部rc振荡器,因此精度不高。如果需要更准和快速的时钟,就必须在跳入sram_check之前对相关的寄存器进行操作。
3 sram检测软件设计
图1为本文设计的sram检测软件程序流程。
图1 sram检测软件程序流程
4 在线调试结果及分析
上电复位后,在线调试pc指针指向reset_handler入口地址时的sram初始数值如图2所示。可以看到,当系统复位时每个sram单元的数值均为0x00。
在线调试下,图3为对所有的sram地址进行检测后sram的数值,完全符合程序设计要求。
sram测试通过后,释放所有的sram,还原为0x00,如图4所示。
5 结论
本文提出了一种基于软件的sram单元故障自检测方法,通过在线调试得到的结果,可知该方法是完全可行的。在实际运用中,该方法能够确保系统正常地运行在可靠的环境之上。如果sram单元有生产或运输等损坏,也可以通过该方法方便地检测出来,大大减少了系统排除故障的时间。

SIGGRAPH 2023 | 全新专业显卡、AI 工具、Omniverse 和 OpenUSD 协作功能强效助力内容创作
中国制造业智能化的升级改造呈现较快增长,产值高居全球第一
cd40106应用电路
黄仁勋:NVIDIA收购ARM交易能获得全球监管机构的通过,包含中英
华为MateBook曝光:真的要做笔记本了?
SRAM运行状态分析步骤详解
使用3GHz HDMI接收器设计高分辨率影视产品
放弃使用3.5mm耳机口改用Type-C接口的原因
TLE9879汽车三相马达驱动解决方案
GSA数据显示:全球80家运营商部署符合3GPP标准的5G技术
“云计算”嫁接导航系统 车载导航变革已经上演
普通人怎样去数字货币领域中发展
中国移动和高通成立联合实验室,为5G终端扩展按下“加速键”
业务转给中企,英特尔彻底退出5G基带,市场呈现一超一强局面
荣耀9什么时候上市?华为荣耀9工信部证件照曝光,网友不满意,自己P了这么多荣耀9!
腾讯与The Things Network携手拓展其LoRaWAN开发者生态
由宁德时代提供磷酸铁锂动力电池配套的高端游船成功首航
具备物质成分识别技术的传感器模块的介绍
5G时代移动终端安全解决方案
中国移动正式推出了5G行业终端扬帆计划