嵌入式项目为什么需要内存保护? guozi • 2024年6月5日 下午4:06 • 行业资讯 为什么要使用MPU? 如果你开发的嵌入式项目,因内存溢出,或者内存故障等一些原因,造成了重大经济损失,或者造成了重大事故,你就能体会为什么要使用内存保护单元(MPU)了。 在嵌入式系统中使用内存保护单元(MPU)可以在开发早期及时发现因内存而导致的Bug,节省更多开发时间。 同时,在项目后期修改Bug,或者增加功能,可以减少修改文档和测试所需的时间。 也就是说,使用MPU,会避免因为修改一个bug,而引起多个bug的情况(0生1,1生万物)。 MPU如何实现内存保护 简单来说就是保护与当前执行的代码不相关的所有数据。 拿RTOS任务A和B来说: 任务A和B不应相互交互数据,但是存在一个错误,任务A可能会意外地写入任务B偶尔使用的某些数据,不会影响任务A的正确操作。但是,当任务B尝试使用损坏的数据时,任务B可能会意外故障。 如果没有配置MPU来阻止任务A写入任务B的数据,则该错误可能需要很长的时间供开发人员跟踪。如果错误很小,或者如果任务B很少使用该数据,则将很难解决该bug。但是,如果使用了MPU,则该bug就会及早被发现。 在某些体系结构上,MPU甚至可以帮助你检测NULL指针引用,因为你可以设置MPU区域以防止非特权代码访问内存0x0。 应用程序中一组设计良好的MPU区域可以很好的保护重要的内存区域,以防止出现特定的问题。 一个很好的例子是通过在MPU区域的末尾放置缓冲区来防止缓冲区溢出,你还可以将任务堆栈放置在任何非特权代码都无法访问的区域。如果这样做,则每个任务必须使用自己的MPU区域之一来设置自己对自己的堆栈的访问权限。 使用MPU的好处 无论是操作系统,还是裸机系统,如果没有防止恶意访问错误内存的能力,系统将有重大安全问题,以及安全漏洞的雷区。 使用的内存保护单元(MPU)有很多优势,MPU通常允许你以特权或非特权模式运行,并使用一组“区域”来确定当前正在执行的代码是否具有访问代码和数据的权限。 每个区域都是一个连续的内存块,具有该内存的一组权限,特权和非特权访问。与非特权代码的子集相比,特权代码往往可以访问大部分(但不是全部)内存。 在整个系统运行时中,这些区域不必相同。MPU区域可以根据每个任务进行修改,每个任务可以具有自己独特的区域集,这些区域在任务移至运行状态时进行配置。 这使你可以仅对需要代码和数据的任务设置访问权限,利用MPU的嵌入式操作系统将在每次上下文切换期间管理每个任务的区域和特权级别。 比如设置RTOS两个任务不同的内存保护区域: 上面这张图,大家都能看懂吧?Flash和内存区域被分别设置保护。 两个全局保护区域:Flash开头、RAM开头; 在Flash中,一部分仅限任务1访问,这部分不能被任务访问;同时,在Flash另外区域,仅限任务2访问,不能被任务1访问。如果这两部分区域被对方访问,则会生成生成MPU故障。 在RAM区域,同一部分区域,一个只能被读,一个只能被写入,如果不按约定操作,同样也会生产MPU故障。 什么时候不使用MPU? 通常有两种情况可以不使用处理器上的MPU功能: 一个简单的项目 一个对性能至关重要的项目 第1个很简单:一个非常简单的应用程序基本上没必要使用MPU,反而增加了系统的复杂性。不设置内存保护,RAM和外围设备的MPU区域,你自己一眼就能找到bug。 第2个对性能要求高的项目,在上下文切换时,设置内存保护,堆栈那些操作,有可能影响系统的实时性,从而导致系统异常。这个需要结合项目实际情况考虑用,还是不用MPU功能。 原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90379.html 赞 (0) guozi 0 0 生成海报 kali系统入侵安卓系统 上一篇 2024年6月5日 下午3:55 帝国cms防站之网站后台登陆地址修改(安全篇) 下一篇 2024年6月5日 下午4:07 相关推荐 网站被攻击了怎么恢复,网站被攻击 怎么整改的 网站管理员必须保持警惕,及时发现异常情况。通过引入监控系统,可以实时监控网站的运行状态,如果发现异常,可以安装报警机制并及时响应。 八、密切关注网络安全动态 网络安全格局日新月异,… 牛晓晓 行业资讯 2024年5月13日 00 内网通如何查看代理服务器?公司使用的服务器有哪些? 内网通,作为网络互联网服务器行业中重要的一环,其功能与作用备受关注。而在使用过程中,有一个问题一直困扰着用户:如何查看代理服务器?同时,公司使用的服务器又有哪些类型呢?通过本文的内… 牛晓晓 行业资讯 2024年3月30日 00 ds160 security and background,ds160在哪个网站填写 近期,有关ds160网站遭受攻击的消息受到广泛关注。这起事件不仅引起了互联网行业的轩然大波,也牵动着用户的心。这个高调网站的幕后黑手是谁?随着案件的发展,大家会分析具体情况,如果受… 牛晓晓 行业资讯 2024年5月11日 00 域名被墙了什么意思,域名被墙什么原因 5.使用VPN或代理服务 如果上述方法均无效,请考虑使用VPN 或代理服务来访问被阻止的网站。这些工具可以帮助您更改IP 地址以绕过墙壁并访问网站。 6. 提高安全性 当您重新访问… 牛晓晓 行业资讯 2024年5月7日 00 发表回复 您的邮箱地址不会被公开。 必填项已用 * 标注*昵称: *邮箱: 网址: 记住昵称、邮箱和网址,下次评论免输入 提交