芯片采购,IC采购,芯片采购平台
芯片
每日新闻头条
嵌入式开发:为什么要使用 MPU?
(2024年12月21日更新)

在您的嵌入式项目中使用MPU它可以为你节省很多挫折、时间和金钱。MPU嵌入式开发人员最大的单一优点是可以在开发早期捕捉错误,尽快发现错误可以显著缩短开发时间,项目后期修复代码错误可以减少文档和测试代码返工,另一方面,尽快修复错误将减少项目后期代码中的错误数量,这将简化识别和修复剩余错误的过程,因为多个错误的可能性较小,这是Ampleon代理保持更可预测的时间表,防止意外延迟。

芯片采购网专注于整合国内外授权IC代理商现货资源,芯片库存实时查询,行业价格合理,采购方便IC芯片,国内专业芯片采购平台

MPU如何实现这一点?最明显的方法是保护所有与当前执行的代码无关的数据。一个简单的例子只能用两个RTOS任务A和B来构建。任务A和B不应该相互交互,但有一个错误。任务A可能会意外地将任务B偶尔使用的数据写入任务A的正确运行中。但当任务B尝试使用损坏的数据时,任务B可能会发生意外故障。若无配置MPU为了防止任务A写入任务B的数据,嵌入式开发人员可能需要很长时间才能找到这个错误。若错误很微妙,或者任务B很少使用这些数据,这个问题将特别难解决。然而,对于MPU,错误的写入操作会立即导致异常,从而确定导致错误的代码线。

在某些架构上,MPU它甚至可以帮助你检测NULL取消可以设置指针取消引用MPU防止非特权代码访问0x0处的内存。

一组设计良好的应用程序MPU该区域可以明确保护重要的内存区域,以防止特定问题。通过将缓冲区放置在一个很好的例子中MPU防止缓冲区溢出。您还可以将任何非特权代码无法访问的区域放置您的任务堆栈。如果这样做,每个任务都必须使用自己的任务MPU区域之一是明确授予自己参观堆栈的权限。使用MPU迫使您真正考虑应用程序的结构,以便您在任务之间干净地分离数据,从而产生更强大和可维护的代码库。

什么时候不用?MPU?

嵌入式开发人员不会在处理器上使用两种主要情况MPU;一个简单的项目和一个关键的性能项目。第一个很简单;一个非常简单的应用程序可能无法使用MPU受益于增加的复杂性。不需要设置闪存,RAM外围设备MPU您的闪烁演示可以在区域内完成。

如果您需要处理器的每一滴性能,请使用它MPU费用可能会让你大吃一惊。使用MPU的FreeRTOS由于每个任务都有多个任务,端口中的任务上下文切换例程较长MPU区域需要编程。上下文切换新任务时,RTOS每一项任务都必须完成MPU编程区域并履行其通常的职责,如堆叠使用的寄存器。此外,内核代码和数据受到影响MPU因此,所有内核函数的调用都必须受到包装函数的保护。该包装函数只能在调用内核函数之前提高处理器的特权水平,然后恢复特权并返回。这不仅会增加运行代码所需的时间,还会增加任务所需的堆栈大小。任务的控制块也必须在其中MPU存储信息并存储在一些安全关键区域RTOS(如SAFERTOS)还将存储此数据的镜像。

还要警惕使用MPU这可能很困难,有时甚至令人沮丧。嵌入式开发人员需要更多的时间来设计应用程序,因为每个任务都必须考虑MPU区域。这些区域的错误,如不正确的区域长度、权限或不正确链接应用程序的数据,可能会导致调试混乱。

芯片采购网|IC采购|IC代理商 - 国内专业的芯片采购平台
芯片采购网专注整合国内外授权IC代理商的现货资源,轻松采购IC芯片,是国内专业的芯片采购平台