0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SRAM运行状态分析步骤详解

电子设计 来源:互联网 作者:佚名 2018-08-29 09:54 次阅读

目前,对于存储单元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单元有生产或运输等损坏,也可以通过该方法方便地检测出来,大大减少了系统排除故障的时间。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • sram
    +关注

    关注

    6

    文章

    766

    浏览量

    114671
  • reset
    +关注

    关注

    0

    文章

    34

    浏览量

    12876
  • NVIC
    +关注

    关注

    0

    文章

    35

    浏览量

    11694
收藏 人收藏

    评论

    相关推荐

    运行状况的计算和分析

    运行状况的计算和分析
    发表于 04-10 21:37

    有什么方法可以查看FreeRTOS任务的运行状态

    有什么方法可以查看FreeRTOS任务的运行状态呢?怎样去查看FreeRTOS任务的运行状态呢?
    发表于 11-02 07:59

    水轮发电机组运行状态监测

    水电机组运行状态监洲是对设计参敷所属参量的监洲.其目的是便于运行人员j解机组的运行状态,及时发现事故隐患,保证安全经济运行.目前,国外发达国家在水电机组
    发表于 04-06 11:21 14次下载

    基于LabVIEW的桥梁运行状态长期

    基于LabVIEW的桥梁运行状态长期 论述铁路桥梁运行状态长期监测系统的设计方法, 介绍它的硬件组成、软件结构以及系统功能,本系统利用网络传感器、以太网技术
    发表于 10-15 21:34 669次阅读
    基于LabVIEW的桥梁<b class='flag-5'>运行状态</b>长期

    感应电动机不同断相运行状态的损耗分析

    感应电动机不同断相运行状态的损耗分析_李文志
    发表于 01-01 15:44 0次下载

    基于MATLAB的开关磁阻电机混沌运行状态分析

    基于MATLAB的开关磁阻电机混沌运行状态分析
    发表于 01-21 12:12 0次下载

    如何解决风电机组运行状态及故障诊断中外界环境因素对出力情况的影响

    为了解决风电机组运行状态及故障诊断中外界环境因素对出力情况的影响,引入风电机组出力相关性信息,对机组运行状态进行判别。实现了在不增加传感器和测点的情况下,提高判别机组非健康状态或故障状态
    发表于 04-28 14:57 15次下载
    如何解决风电机组<b class='flag-5'>运行状态</b>及故障诊断中外界环境因素对出力情况的影响

    电机额定运行状态_电机额定运行方式

    在电机运行时,若各个物理量都与它的额定值一样,就称为额定运行状态,在额定运行状态下工作,电机能可靠的运行,并具有最好的综合性能。
    发表于 10-09 16:13 6004次阅读

    联合循环电厂机组运行状态判据选取方法的探讨

    探讨了联合循环电厂 DCS 组态中机组运行状态判据的选择方法,分析了不恰当判据选择对运行和维护的影响,并提出了解决方法。
    发表于 12-01 16:10 0次下载

    一文详解单相变压器空载运行状态

    空载运行是变压器的一种极限运行状态。变压器的空载运行是指原绕组接入电源电压、副绕组开路,副绕组里没有电流流过时的最简单的运行情况。
    的头像 发表于 01-16 13:54 9876次阅读
    一文<b class='flag-5'>详解</b>单相变压器空载<b class='flag-5'>运行状态</b>

    分析安全光栅的运行状态

    分析安全光栅的运行状态
    的头像 发表于 07-14 10:31 891次阅读
    <b class='flag-5'>分析</b>安全光栅的<b class='flag-5'>运行状态</b>

    运行状态变为阻塞状态的条件

    计算机运行状态变为阻塞状态的条件,从常见的情况到特殊的案例,为读者提供深入理解。 一、用户输入等待: 当计算机程序需要等待用户输入时,它将进入阻塞状态。这可能发生在命令行界面或图形用户界面中。例如,在一个接受
    的头像 发表于 11-17 11:45 1821次阅读

    电池充电状态(SOC)和运行状态(SOH)的估计技术

    电子发烧友网站提供《电池充电状态(SOC)和运行状态(SOH)的估计技术.pdf》资料免费下载
    发表于 11-22 09:34 0次下载
    电池充电<b class='flag-5'>状态</b>(SOC)和<b class='flag-5'>运行状态</b>(SOH)的估计技术

    电池充电状态(SOC)和运行状态(SOH)估计技术

    电子发烧友网站提供《电池充电状态(SOC)和运行状态(SOH)估计技术.pdf》资料免费下载
    发表于 11-24 11:04 2次下载
    电池充电<b class='flag-5'>状态</b>(SOC)和<b class='flag-5'>运行状态</b>(SOH)估计技术

    电梯运行状态监测系统:关键信息监测与安全高效运行新保障

    电梯运行状态监测系统是一个综合性的技术系统,用于实时监测电梯的运行状态并收集相关数据。梯云物联小编认为该系统主要监测以下几类信息:
    的头像 发表于 04-17 10:14 935次阅读
    电梯<b class='flag-5'>运行状态</b>监测系统:关键信息监测与安全高效<b class='flag-5'>运行</b>新保障