新闻中心

EEPW首页>嵌入式系统>设计应用> 盘点uC/OS和uClinux操作系统的对比

盘点uC/OS和uClinux操作系统的对比

作者: 时间:2014-06-10 来源:网络 收藏

的这种多进程实现机制同它的内存管理紧密相关。针对没有mmu处理器开发,所以被迫使用一种flat方式的内存管理模式,启动新的应用程序时系统必须为应用程序分配存储空间,并立即把应用程序加载到内存。缺少了MMU的内存重映射机制,必须在可执行文件加载阶段对可执行文件reloc处理,使得程序执行时能够直接使用物理内存。

本文引用地址://m.amcfsurvey.com/article/248081.htm

3.内存管理

在ANSI C中是使用malloc和free两个函数来动态分配和释放内存。但在嵌入式实时系统中,多次这样的错作会导致内存碎片,且由于内存管理算法的原因,malloc和free的执行时间也是不确定。

-II中把连续的大块内存按分区管理。每个分区中包含整数个大小相同的内存块,但不同分区之间的内存快大小可以不同。用户需要动态分配内存时,系统选择一个适当的分区,按块来分配内存。释放内存时将该块放回它以前所属的分区,这样能有效解决碎片问题,同时执行时间也是固定的。

uClinux不能使用处理器的虚拟内存管理技术(应该说这种不带有MMU的处理器在嵌入式设备中相当普遍)。uClinux仍采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用程序时程序分页加载。但是由于没有MMU管理,所以实际上uClinux采用实存储器管理策略(real memeory management)。这一点影响了系统工作的很多方面。uClinux系统对于内存的访问是直接的,(它对地址的访问不需要经过MMU,而是直接送到地址线上输出),所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护(这实际上是很多嵌入式系统的特点),各个进程实际上共享一个运行空间(没有独立的地址转换表)。 一个进程在执行前,系统必须为进程分配足够的连续地址空间,然后全部载入主存储器的连续空间中。与之相对应的是标准Linux系统在分配内存时没有必要保证实际物理存储空间是连续的,而只要保证虚存地址空间连续就可以了。此外磁盘交换空间也是无法使用的,系统执行时如果缺少内存将无法通过磁盘交换来得到改善。

4.移植

要使?C/OS-Ⅱ正常运行,处理器必须满足以下要求:

1. 处理器的C编译器能产生可重入代码。

2. 用C语言就可以打开和关闭中断。

3. 处理器支持中断,并且能产生定时中断(通常在10至100Hz之间)。

4. 处理器支持能够容纳一定量数据(可能是几千字节)的硬件堆栈。

5. 处理器有将堆栈指针和其它CPU寄存器读出和存储到堆栈或内存中的指令。

像Motorola 6805系列的处理器不能满足上面的第4条和第5条要求,所以?C/OS-Ⅱ不能在这类处理器上运行。

uClinux的移植大致可以分为3个层次:

1.结构层次的移植。如果待移植处理器的结构不同于任何已经支持的处理器结构,则需要修改linux/arch目录下相关处理器结构的文件。虽然uClinux内核代码的大部分是独立于处理器和其体系结构的,但是其最低级的代码也是特定于各个系统的。这主要表现在它们的中断处理上下文、内存映射的维护、任务上下文和初始化过程都是独特的。这些例行程序位于linux/arch/目录下。由于Linux所支持体系结构的种类繁多,所以对一个新型的体系,其低级例程可以模仿与其相似的体系例程编写。

2.平台层次的移植。如果待移植处理器是某种uClinux已支持体系的处理器,则需要在相关体系结构目录下建立相应目录并编写相应代码。如MC68EZ328就是基于无MMU内核的m68k内核的。移植需创建linux/arch/m68knommu/platform/ MC68EZ328目录,并在其下编写跟踪程序(实现用户程序到内核函数的接口等功能)、中断控制调度程序和向量初始化程序等。

3.板级移植。如果所用处理器已被uClinux支持,就只需要板级移植了。板级移植需要在linux/arch/?platform/中建立一个相应板的目录,再在其中建立相应的启动代码crt0_rom.s或crt0_ram.s和链接描述文档rom.ld或ram.ld就可以了。板级移植还包括驱动程序的编写和环境变量设置等内容。

5.结束语

通过对和uClinux的比较可以看出,这两种操作系统在应用方面各有优劣。占用空间少、执行效率高、实时性能优良,且针对新处理器的移植相对简单。UClinux则占用空间相对较大,实时性能一般,针对新处理器的移植相对复杂。但是,uClinux具有对多种文件系统的支持能力、内嵌了TCP/IP协议,可以借鉴Linux丰富的资源,对一些复杂的应用,uClinux具有相当优势。总之,操作系统的选择是由嵌入式系统的需求决定的。简单地说就是,小型控制系统可充分利用uC/OS小巧且实时性强的优势;如果开发PDA和互联网连接终端等较和为复杂的系统,则uClinux是不错的选择。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程


tcp/ip相关文章:tcp/ip是什么



上一页 1 2 下一页

关键词:uC/OSuClinux

评论


相关推荐

技术专区

关闭