1507_FUSA_单片机的安全测试有哪些常见的测试项以及CPU寄存器测试和PC计数器测试的简介

全部学习汇总: GitHub - GreyZhang/g_FUSA: some learning notes about function safety. Inlcude both ISO26262 and IEC61508

开始我的这个repo主要是面向ISO26262以及IEC 61508,但是随着看资料,感觉还是有必要再扩充一下。因此,增加了一个面向加点的IEC 60730。之所以增加这个,是因为恰好手头找到了相关的资料而且有一些比较通用的设计在里面。

这一次,就借着手头的这一份来自Microchip的资料看一下单片机 MCU有哪些比较常见的安全测试条目以及他们都是如何测试的。

当看到这一页的时候,我发现我接触到了一个新的安全标准。原本是计划针对性学习一下这个标准,至少了解一下这个标准的大概要求。不过非常好的是这个文档后面接着就给出来了解释。

单片机的测试,比较常规的测试条目:CPU寄存器测试、PC计数器测试、非易失性存储、RAM、时钟以及中断的测试。这些在常规的单片机中都是存在的,因此纵然设计的软件不是百分百通用,但是检查的理念应该是通用的。

IEC 60730的标准是面向家用电器的一个安全开发标准,主要是分为A、B、C三类。其中B是实施了重要的测试以及诊断方法。而B类的功能一般来说有三种:1,固件运行前检查; 2,周期性检查; 3. 算是冗余设计,相同的功能有两个独立的执行操作方式,这种方式不做检查。我手里没有IEC 60730的全部标准原稿,因此不知道具体的描述。但是感觉上会比ISO 26262以及IEC 61508的要求宽松一些。

我这一份文档是一份检查代码库的相关的文档说明,这里面给出了一个系统需求,也就是这个库能够正常工作所需要的要求。主要是对有时隙要求的检查,可能需要有2个时钟,这个需要在硬件设计的时候考虑。针对每一种检查,在文档中也有对应的实施细节描述。

这里顺便看2个比较简单的测试,一个是CPU的寄存器测试,一个是CPU的PC计数器测试。

CPU的寄存器测试主要是测试CPU寄存器的数值是否出现卡死,主要的检查方法就是向寄存器写入数据然后读一下是否与有预期的回读结果。

PC计数器的测试其实是比较容易实现的一个测试,因为这个从描述看几乎可以是纯C实现,只需要增加一点链接脚本的修改即可。测试的方式也简单,调用一个固定地址的函数,而相应的函数会返回一个固定的数值,这个数值是函数开始的地址。而这个地址,是在链接文件中指定的,也是一个已知的数值。由此,可以判断函数的跳转功能是否正常,间接得出PC计数器的工作是否正常。

关于CPU寄存器以及PC寄存器的测试,我后面还会结合代码做一个更深一些的分析学习,也会结合一些我手头的MCU做一个简单的实现。但是,这部分实施尤其是CPU寄存器测试可能会涉及到一些汇编代码,这个后面我还得再研究一下。

功能安全MCU软件安全机制是指在微控制器单元(MCU)中实施的软件安全措施,旨在确保MCU的功能安全性。这些措施包括以下几个方面: 1. 失效检测容错机制:MCU软件通常会实施失效检测容错机制,以确保在发生故障或错误时能够及时检测并采取相应的措施。例如,通过使用冗余计算校验机制来检测纠正错误。 2. 安全监控故障管理:MCU软件会实施安全监控故障管理机制,以监测系统的状态并采取相应的措施来处理故障。例如,通过监测系统的输入输出来检测异常情况,并采取相应的措施来保护系统的安全性。 3. 认证加密:MCU软件可能会使用认证加密机制来确保系统的安全性。例如,通过使用数字签名加密算法来验证保护软件的完整性机密性。 4. 安全访问控制:MCU软件可能会实施安全访问控制机制,以确保只有经过授权的用户或设备才能访问系统的敏感资源。例如,通过使用访问权限身份验证来限制对系统资源的访问。 5. 安全测试验证:MCU软件通常会经过严格的安全测试验证,以确保其符合功能安全标准规范。这些测试验证可以包括静态代码分析、动态测试模拟攻击等。 总之,功能安全MCU软件安全机制是通过实施失效检测容错机制、安全监控故障管理、认证加密、安全访问控制以及安全测试验证等措施来确保MCU软件的安全可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值