英飞凌TriCore AURIX启动安全测试与初始化详解

需积分: 48 26 下载量 122 浏览量 更新于2024-08-06 收藏 2MB PDF 举报
"启动阶段的安全测试和初始化在AURIX微控制器中的实施是确保系统安全性的关键步骤。这个过程涉及到多个层次的测试和初始化,主要目标是检测和预防潜在的硬件故障。" 在启动阶段,AURIX微控制器的启动安全测试和初始化主要包括以下几个方面: 1. **前期安全测试钩子**:START驱动程序提供了钩子函数,这些函数可以调用通用安全程序库或特定应用的安全初始化函数。这允许应用程序在启动时根据配置信息进行必要的安全测试。 2. **预初始化**:这一阶段确保关键测试所需的资源和变量已经准备就绪,内存也已经初始化。共享资源由主核初始化,而每个核独有的资源则由相应的内核初始化。 3. **关键部件测试**:根据安全级别,每个工作循环都会对关键部件进行测试。例如,CPU及其锁步比较器(SBST)、关键静态内存(使用MBIST进行ECC和寻址故障测试)、关键FLASH(检查ECC故障)以及存储保护单元(MPU)。 4. **处理器核心完整性测试**:需要提供一种方法来独立测试每个处理器和锁步核的完整性。 5. **内存测试**:START驱动程序对关键内存执行启动测试,使用March、Checkerboard或Parity测试等算法,最多可测试16个内存区域。错误发生时,会抛出异常并返回错误地址。内存ECC电路测试在每个工作循环中检查ECC错误,但不会引起复位或中断。 6. **Flash ECC测试**:类似地,Flash ECC电路的测试在每个工作循环中执行,使用预设ECC错误的Flash区域,不会触发复位或中断。 7. **功能安全初始化**:驱动初始化和多核启动后,会执行SMU初始化、激活和安全看门狗初始化。这些步骤的顺序取决于系统层面的综合考虑。 8. **预运行测试**:通过调用服务函数,执行不同参数的测试,以验证不同功能模块。这些测试包括特定报警测试,可以在OS运行前或运行后执行,例如对CPU和总线的MPU、中断路由的测试。测试结果可以用于失效判断,且测试签名动态生成,防止粘滞故障。 9. **存储保护测试**:这类测试必须在OS启动后进行,以确保中断关闭,并且在安全测试完成后,基本的存储访问保护机制才会初始化,以防止非安全软硬件组件引发系统崩溃。 AURIX微控制器的启动阶段安全测试和初始化是一个复杂的过程,涉及多层面的硬件验证,旨在确保在系统运行前就已经消除了潜在的硬件故障,从而提高系统的可靠性和安全性。