嵌入式的LED点阵显示屏的研究与实现 第8页

嵌入式的LED点阵显示屏的研究与实现 第8页
总线控制权时,就要求总线控制器进行仲裁。
当某一个片内功能模块或外设取得总线控制权时,其它的总线请求被悬挂
(等候处理)直到原来的总线控制设备释放总线控制权时才能被响应。
为便于总线仲裁(Bus户Jbirtatnin),3sC4510B内部的每一个功能模块都
设置了优先级,总线控制器就根据这个固定的优先级对各个模块的总线请求进
行仲裁。通常,总线控制权总是分配给优先级较高的功能模块。表3一2列出了
优先级。
表3一2总线仲裁优先级
功功能模块块总线优先级(分组)))
外外部总线主控器器A一1(A组中的最高优先级)))
DDDRAM存储器刷新控制器器A一222
GGGeneralDMAI(GDMAI)))A一333
GGGeneralDMAO(GDMAO)))A·444
高高层数据链路控制器B(HDLCB)))A一555
高高层数据链路控制器A(HDLCA)))A一666
MMMAC带缓冲DMA(BDMA)))A一7(A组中的最低优先级)))
写写缓冲器器B一1(B组中的最高优先级)))
总总线路由器器B一2(B组中的最低优先级)))
注:s3C451OB的内部功能模块分为A、B两组,在每组内,其优先级根据设置固定。
S3C4510B微处理器能检测并响应由外部总线主控器(ExternalBus
Mastership)产生的总线请求信号(ExMtREQs)。当cPu发出外部总线应答
信号(ExtMACK)后,总线控制权就交给外部总线主控器,此时外部总线请
求信号应继续有效。
当53C4510B的外部总线应答信号有效时,其存储器接口处于高阻状态,
以便外部总线主控器能驱动外部存储器接口。
当S3C451OB不控制总线时,它也不再进行DRAM的刷新操作,因此,
当外部的总线主控器取得总线控制权且会持续一段较长的时间,必须负责完成
DRAM的刷新操作。
武汉理工大学硕士学位论文
第4章嵌入式操作系统在项目中的应用
在点阵显示项目整个软件的设计中,应选择一个合适的操作系统。这个操
作系统要求体积比较小、具有网络功能、适于裁减、能被嵌入到Flash中,并
且针对项目中使用的CPU芯片53C4510B的NOMMU,以及具有开放源码的
特征。针对这些要求,我们选择uCllnux嵌入式操作系统作为软件平台,对其
内核进行裁减,从而实现嵌入式点阵显示板的功能。下面将具体介绍uClinux
嵌入式操作系统及其在点阵显示项目中的移植。
4.1嵌入式uc11nux系统概况
Linux是一种与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,
现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设
备。uClniux正是在这种氛围下产生的。在uClniux这个英文单词中u表示Miero,
小的意思,C表示Control,控制的意思,所以uClinux就是Miero一Conirol一Linux,
字面上的理解就是“针对微控制领域而设计的Linux系统”。BBBootLO电d甘甘
图4一1uClinux的基本架构
uClinux从Linux2.0/2.4内核派生而来。它是专门针对没有MMU的CPU,
并且为嵌入式系统做了许多小型化的工作。适用于没有虚拟内存或内存管理单
元(MMU)的处理器,例如ARM7TDMI。它通常用于具有很少内存或Flash
武汉理工大学硕士学位论文
的嵌入式系统。uClniux是为了支持没有MMU的处理器而对标准Linux作出
的修正。它保留了操作系统的所有特性,为硬件平台更好的运行各种程序提供
了保证。在GNU通用公共许可证(GNUGPL)的保证下,运行uClinux操作
系统的用户可以使用几乎所有的LinuxAPI函数,不会因为没有MMU而受到
影响。由于uCllnux在标准的Linux基础上进行了适当的裁剪和优化,形成了
一个高度优化的、代码紧凑的嵌入式Li~,虽然它的体积很小,uClniux仍然
保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、完备
的对各种文件系统的支持、以及标准丰富的API等。图4一1为uClniux的基本
架构。
BootLodaer:负责Li~内核的启动,它用于初始化系统资源,包括
SDRAM。这部分代码用于建立Li~内核运行环境和从Flash中装载初始化
ra们以disk。
内核初始化:Li~内核的入口点是startkemel()函数。它初始化内核
的其它部分,包括捕获,RIQ通道,调度,设备驱动,标定延迟循环,最重要
的是能够ofkr“init”进程,以启动整个多任务环境。
系统调用函数/捕获函数:在执行完“niti”程序后,内核对程序流不再有
直接的控制权,此后,它的作用仅仅是处理异步事件(例如硬件中断)和为系统
调用提供进程。
设备驱动:设备驱动占据了Linux内核很大部分。同其它操作系统一样,
设备驱动为它们所控制的硬件设备和操作系统提供接口。
文件系统:Linux最重要的特性之一就是对多种文件系统的支持。这种特
性使得Linux很容易地同其它操作系统共存。文件系统的概念使得用户能够查
看存储设备上的文件和路径而无须考虑实际物理设备的文件系统类型。Linux
透明的支持许多不同的文件系统,将各种安装的文件和文件系统以一个完整的
虚拟文件系统的形式呈现给用户。
4.2uC11nux小型化的方法
4.2.1uCIinux的内核加载方式
uClinux的内核有两种可选的运行方式:可以在nash上直接运行,也可以
加载到内存中运行。这种做法可以减少内存需要。
Flash运行方式:把内核的可执行映象烧写到nash上,系统启动时从flash
的某个地址开始逐句执行。这种方法实际上是很多嵌入式系统采用的方法。
武汉理工大学硕士学位论文
内核加载方式:把内核的压缩文件存放在flash上,系统启动时读取压缩
文件在内存里解压,然后开始执行,这种方式相对复杂一些,但是运行速度可
能更快(rma的存取速率要比nash高)。同时这也是标准Linux系统采用的启
动方式。
4.2.2uC11nux的根orot文件系统
uCllmix系统采用romsf文件系统,这种文件系统相对于一般的xeZt文件
系统要求更少的空间。空间的节约来自于两个方面,首先内核支持ormsf文件
系统比支持xeZt文件系统需要更少的代码,其次romsf文件系统相对简单,在
建立文件系统超级块(sPuehtlock)需要更少的存储空间。Romsf文件系统不
支持动态擦写保存,对于系统需要动态保存的数据采用虚拟rma盘的方法进行
处理(rma盘将采用xeZt文件系统)。
.4.23ucl1nux的应用程序库
uChnux小型化的另一个做法是重写了应用程序库,相对于越来越大且越
来越全的glibe库,uClibc对hbe做了精简。uCli~对用户程序采用静态连接
的形式,这种做法会使应用程序变大,但是基于内存管理的问题,不得不这样
做,同时这种做法也更接近于通常嵌入式系统的做法。
4.3实时性的解决方案
uCll~本身并没有关注实时问题,它并不是为了Linux的实时性而提出
的。另外有一种Li~一Rt一lniux关注实时问题。Rt一lniux执行管理器把普通Linux
的内核当成一个任务运行,同时还管理了实时进程。而非实时进程则交给普通
Linux内核处理。这种方法已经应用于很多的操作系统用于增强操作系统的实
时性,包括一些商用版UNIX系统、WindowsNT等等。这种方法优点之一是
实现简单,且实时性能容易检验。优点之二是由于非实时进程运行于标准Linux
系统,同其它LinLxi商用版本之间保持了很大的兼容性。优点之三是可以支持
硬实时时钟的应用。uClniux可以使用Rt一linux的pathc,从而增强uClniux的
实时性,使得uClniux可以应用于工业控制、进程控制等一些实时要求较高的
应用。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有