功能 #3400
由 稚媛 黄 更新于 3 个月 之前
参考软件DR-003701-708183 Microcontroller Setup
需求描述
本设计规则支持RQT-003701-705504“微控制器初始化”,适用于所有采用非AUTOSAR操作系统、AUTOSAR Classic或AUTOSAR Adaptive的电子模块软件,并作为该需求的符合性验证方法。
时钟预分频器与锁相环(PLL)修改限制
仅允许在以下时机修改微控制器时钟预分频器或锁相环(PLL):
复位初始化期间
进入硬件低功耗操作前立即执行
退出硬件低功耗操作后立即执行
修改预分频器或PLL时,代码必须预留微控制器数据手册规定的稳定时间。
中断初始化要求
上电复位后,禁用所有中断直至微控制器内部状态稳定(例如完成内存检查与初始化)。
执行应用代码前,为每个可配置中断初始化有效处理程序。
未使用的中断处理程序仅需清除并禁用中断,可选记录无效事件。
每个中断必须在每个唤醒周期(或更短周期)内重新初始化。
RAM刷新与监控
若RAM作为其他内部/外部地址或寄存器空间的只读副本,需在每个唤醒周期(或更短周期)内定期刷新。
若特定RAM位置因写入可能导致不良影响而无法刷新,需以相同周期监控该位置。
若监控的RAM内容偏离预期值,则强制复位。
设计规范
正确且系统化的微控制器资源设置与初始化对应用及基础设施软件的稳健运行至关重要。系统时钟、中断、内存及I/O配置(参见RQT-003701-022849“确保控制寄存器内容完整性”)等基础资源若在运行时被意外修改,可能导致I/O异常/失效、内存损坏、时序故障及中断优先级反转。此外,对于持续供电(PAAT)模块的极长运行周期,若未进行RAM刷新,可能因RAM单元电容泄漏导致内存损坏(即写入值丢失)。
分析/讨论
本设计规则支持所有带软件的电子模块的RQT-003701-705504“MCU初始化”,是符合RQT的一种方法。
设计规则关闭机制:这些设计规则的关闭是软件技术设计评审(TDR)的完成,可以通过“SWQA通用TDR检查表”问题来解决:
IMC02011
微控制器(MCU)时钟相关
A) 晶体振荡器及微控制器的时钟速率分别是多少?
B) 各锁相环(PLL)的工作频率是多少?
C) 所有定时器的精度是否适配其应用场景?
D) 正常模式(唤醒)与低功耗模式(休眠)的时钟操作差异是什么?如何确保模式切换(唤醒->休眠->唤醒)的正确性?
E) 微控制器的时钟预分频器或锁相环(PLL)何时被修改(例如:复位后立即修改、休眠前修改)?
F) 对于多核MCU,所有核心是否以相同速度运行?是否有核心因电源管理、CPU利用率优化等采用不同配置?若有,原因是什么?这对核间通信有何影响?
ISR04006
如何处理未使用的中断向量?
IAS03004
A) 您使用的是哪种操作系统?
B) 请解释调度器设计(寄存器刷新、任务调度、线程、空闲任务、看门狗喂狗、电压范围等)。
C) 您的采样率及最快时钟定时中断是多少?
D) 该调度器是否已在其他应用中投入使用?
返回