Thread 中讨论的其他器件: C2000WARE
工具与软件:
开发环境:
MCU:TMS320F2800156-Q1
CCS:12.7
SDK:C2000Ware_5_02_00_00
请参阅 TMS320F280015x 实时微控制器技术参考手册
版本: 2023年2月–2024年5月修订
背景:
在我们的项目中、客户需要功能安全 ASIL B 级别、并有 MPU 要求:非功能安全模块无法更改功能安全变量。
--------------------------------------------------------
名为 ASIL 模块的功能安全模块;
名为 ASIL 任务的功能安全任务;
名为 ASIL 功能的功能安全功能;
功能安全变量、名为 ASIL 变量;
名为 QM 模块的非功能安全模块 ;
名为 QM 任务的非功能安全任务;
名为 QM 功能的非功能安全功能;
名为 QM 变量的非功能安全变量;
--------------------------------------------------------
我们目前的战略是:
我们将 ASIL 变量放置到 M0/M1 RAM 区域。
1、在 ASIL 任务运行时、可以通过设置 CPUWRPROTx 来更改 ASIL 变量; 在 QM 任务运行时、不能通过设置 CPUWRPROTx 来更改 ASIL 变量;
2、发生 ASIL 模块中断时、 设置 CPUWRPROTx 可更改 ASIL 变量;发生 QM 模块中断时、 设置 CPUWRPROTx 不能更改 ASIL 变量;
3、当 QM 任务运行并调用 ASIL 函数时、 可以 通过在每个 ASIL 函数中设置 CPUWRPROTx 来更改 ASIL 变量;
4、在 ASIL 任务运行和调用 QM 函数时, 不能 通过在每个 QM 函数中设置 CPUWRPROTx 来更改 ASIL 变量;
对于3、4种情况、在我们的软件中有很多功能、我们需要在每个功能中添加设置、我认为这 对我们来说并不方便、您对此有什么好的建议吗?
此外、您是否有更符合 MPU 要求的解决方案:非函数安全模块不能更改功能安全变量?
谢谢你
/BR
塞缪尔