大家好、我们目前正在着手一个项目、其中涉及使用带有裸机软件的 TMS570LC43x 微控制器。 该软件采用具有两个执行上下文的简单调度机制: 代码 A 在周期性中断处理程序中运行、而代码 B 在与代码 A 异步的后台执行。我们的目标是通过启用高速缓存来优化代码 A 的性能、同时代码 B 在禁用高速缓存的情况下运行。 代码 A 和代码 B 之间共享一些代码、这些代码将使用特定的 MPU 区域。
为了实现这一点、我们的计划是在切换到代码 A 上下文时重新配置共享代码 MPU 区域、使其成为"MPU 可高速缓存"。 然后、在转换到代码 B 时、我们将再次重新配置 MPU、使其不可高速缓存。
不过、我们有一个问题:将 MPU 区域的设置从缓存更改为非缓存可能会使相关的缓存条目无效。 因此、我们对这种方法的安全性不确定。 我们想知道,在采取这种做法之前,我们是否应考虑到任何潜在的问题或考虑因素。
谢谢!