嵌入式微处理器的嵌入式操作系统 - uClinux

技术分类: 嵌入式系统  | 2006-07-25
来源:CE china

    
       DMA 的传输操作可以发生在ADSP-BF531/BF532/BF533处理器的内部存储器到与有DMA能力的外部设备之间。而且,DMA传输也能够在DMA外部设备和连接到外部存储器接口的外部设备(包括SDRAM控制器和异步存储控制器)之间进行。
   
       Linux和uClinux的区别
   
       由于Linux和UNIX相似,是多用户、多任务的操作系统,内核必须采取特殊的防范措施,以保证同一系统内来自不同用户的上千个操作正确安全地运行。UNIX的安全模型(即Linux之前的设计)能够保护每个用户操作的自身环境和地址空间。每个用户操作都受到保护,防止被其它用户唤醒,而且,虚拟内存(VM)系统对现代CPU还有另外的要求,比如在个人处理内存
中实现动态内存分配和随机内存区域规划。有一些设备,如Blackfin 处理器,没有提供全功能的MMU内存管理单元,因为开发者的应用程序并不使用操作系统,通常也不需要MMU,而且,Blackfin的弱MMU的处理器往往具有更高的效率,其价格也明显低于其它产品。
   
       为使Linux与这些设备相适应,必须进行一些改动:
       1. 没有实际的存储器保护(一个错误的环节可以让整个系统停机)
       2. 没有交叉(fork)系统调用
       3. 只有简单的内存分配
       4. 其它一些较小的区别
   
       存储器保护对大多数嵌入式系统来说不是很大的问题。Linux是一个很稳定的平台,尤其是在嵌入式系统中,软件崩溃的情况很少发生。第二点的问题要大一些。在为UNIX和Linux编写的软件中,开发者常常使用fork系统调用来实现并行处理,fork调用可以准确拷贝原始程序并同时予以执行。为了提高效率,它使用MMU将父程序映射到子程序,并只拷贝写入子程序的内存区。因此uClinux不能提供fork系统调用。它提供vfork,一种特殊版本的fork,在vfork程序中当子程序执行时父程序即会终止。
   
       因此,使用fork系统的软件在使用uClinux支持的vfork或线程时必须重写,因为他们使用相同的内存空间,包括堆栈。就第三点来说,一般情况下支持uClinux的malloc系统不会有问题,但是,有些时候必须进行小的调整。大部分适用于UNIX和uClinux的软件(可在http://freshmeat.net上找到此类软件)能够直接在uClinux上编译,其它的则可使用微小的移植或调整(tweaking)。只有很少的应用软件不能在uClinux上运行,其中大部分不能作为嵌入式应用软件。

       在uClinux上开发
   
       在选择开发硬件时,开发者不应只考虑价格和可用性方面,同时也应考虑源代码驱动和文档的易获取性。 一个uClinux Blackfin处理器开发环境包括GNU编译器、(gcc交叉编译器 cross Compiler) 和 binutils (链接器linker、汇编器assembler等)。一些GNU工具诸如awk、sed、make、bash ... 还有plus tcl/tk是必须的,尽管他们通常在桌面linux的安装套件中。 安装好uClinux安装包的桌面环境和解压后,开发工作就可以进行了。
   
       第一步,开发者利用图形配置软件,为目标硬件选择合适的板极支持包。开发者要利用自己的硬件,以便在EZ-KIT Lite评估板或STAMP硬件板上进行开发(访问www.blackfin.uclinux.org获取原理图和产品文件)。然后他们可以开始编写驱动程序,通过拷贝已有的BSP并调整一些参数来制作BSP。
0
0
(请您对文章做出评价)
1】【2】【3】【4】【5
加载中

对文章的评论

更多评论

剩余字数:  

相关在线研讨会

我要参加

电路设计中可预测和不可预测问题的调试技术

时间:2008-06-02 10:00:00-12:00:00
简介:在嵌入式系统设计中,经常会出现一些可预测和不可预测的问题或者低概率事件信号。快速有效地发现这些问题需要不同的技术。8月15日…

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

  • 博客推荐

  • 论坛推荐

  • 在线研讨会