使用平面内存模型的挑战

时间:2014-09-17 19:13:41

标签: embedded real-time cpu paging memory-model

平面内存模型(线性内存模型)提供最大的执行速度,占用最小的CPU空间,并且无需任何分段/分页即可直接访问内存。平板内存模型似乎是小型实时应用程序或单线程实时应用程序的理想选择。 但是,是否可以使用多线程/多任务的实时应用程序以及平面内存模型中高资源分配/保护的要求?

由于

1 个答案:

答案 0 :(得分:1)

我不认为内存模型在这里有很多工作要做,除了用于完成多线程/多任务处理的(RT)操作系统本身。

如果提供了分页或分段,则主要用于实现内存保护功能的操作系统非常有用。只有这样,操作系统才有可能保护自己并运行用户模式任务,防止其他人不正确地编写代码,这些代码会意外地在内存中写入其预期的域之外。 (如果没有某种分页或分段,你就无法获得内存保护,因为你无法保护每一个内存访问)

在32位AVR处理器中,内存管理单元(MMU)和内存保护单元(MPU)之间甚至存在区别。第一个是更复杂的单元支持那些类型的分页功能,如现代PC处理器(例如甚至可以实现虚拟内存),而后者是一个更简单的子集,只为您提供实现内存保护的工具(例如,通过操作系统,以保护自己和任务相互对抗),虽然它没有任何重映射功能(通过给定的地址,你总是访问相同的内存单元),就像MMU一样。 (为什么区别?因为一些便宜的AVR32,只需要一个MPU)

因此,在一个简单的平面内存模型上,你不会得到的重要事情是保护功能。如果没有这些,你可以顺利完成。它应该没问题。