在您的嵌入式项目中使用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区域。这些区域的错误,如不正确的区域长度、权限或不正确链接应用程序的数据,可能会导致调试混乱。
- 英特尔与汉朔科技和微软携手打造智能零售AI加快零售业创新发展
- e联盟与冠军工程师水手合作,重建航海自动驾驶仪
- 李彦宏:百度将部署数万辆无方向盘汽车,成本仅为行业的十分之一
- 捕捉一致的颜色
- 依赖半导体厂EUV 对先进微影技术的强劲需求
- 2022 China EV100速度:寒武时期将发布新的自动驾驶芯片,宁德时代麒麟电池性能将大大提高
- NEC开始打造日本最大的规模AI研究超级计算机
- 长江存储推出UFS 3.1高速闪存,加速5G时代存储升级
- 2021年第四季电子系统设计行业收入较去年同期增长14.4%
- 英特尔陈伟:释放业务创新潜力,引领智能边缘数智新时代
- 5万元涨到50万元,电池核心原材料价格飙升!新能源汽车公司纷纷提价,涉及近40款车型→
- 微软承认 CPU 太先进会让 Win11 数据损坏