你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32是否需要MPU? (Memory Protection Unit = 存储器保护单元)

[复制链接]
qazwsx-19104 发布时间:2008-9-3 19:33
MPU的主要作用是实施存储器的保护,它能够在系统或程序出现异常而非正常地访问不应该访问的存储空间时,通过触发异常中断而达到提高系统可靠性的目的。
" J3 W6 R8 C1 I" K
) M0 b$ n7 }2 x% k# Y( V/ g' @所谓非正常地访问不应该访问的存储空间,最常见的现象是存储器访问越界,更具体的表现可以是数组溢出、堆栈溢出、动态存储器分配失败等情况;另一种常见的现象是程序跑飞了。4 Y$ t! I6 X6 y7 C* \! X
* F3 w$ Q! f4 j0 W+ u; ^
出现存储器访问越界的原因都是因为程序设计的不当所造成,即通常所说的Bug。与具有操作系统的大型程序系统相比,在MCU这种小型系统中出现这种严重的设计不当的比率相对小很多;另一方面,如果在程序的实际运行中真的出现了存储器访问越界的状况,MCU这种小型系统是无法实现在线处理的,而大型系统可以通过隔离出错部分、清除出错任务等手段进行在线补救。
- {  b& w9 G; X4 n
4 t9 h+ [( R* Q% t, r+ |- F& W而对于程序跑飞的状况,在MCU中已经有十分有效的看门狗做保障(STM32中还有2个互相独立的看门狗),虽不能覆盖100%的故障源,但实践证明这种技术已经可以应付绝大多数的需求。, p9 H& e/ V7 C. g% G7 b$ ~
) D+ H& n) ~  L( _; X1 X+ G
从硬件的实现角度讲,任何存储器保护或存储器管理单元(MPU or MMU)都是非常耗费芯片面积的,直接结果就是芯片的成本增加。; L  H1 T) I% S+ g  x8 m* D
& \6 Q! H6 Q% b0 D( j- u6 ^3 c8 s9 c
基于上述分析,我认为没有在STM32这种存储器空间较小的、面向MCU应用的芯片中植入MPU功能,是一个非常明智的选择。  Z) q2 ~* `2 ]: [. ?4 D3 K

5 V9 n5 F) r2 e出处:香水城
收藏 评论0 发布时间:2008-9-3 19:33

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版