嵌入式总结2.doc
上传人:sy****28 上传时间:2024-09-15 格式:DOC 页数:4 大小:70KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

嵌入式总结2.doc

嵌入式总结2.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Yaffs根文件系统构建移植方法和步骤1.解压busybox,使用命令#tarxvfjbusybox-1.13.O.tar.bz2-C/opt/Embeds/。2.然后进到源码中,修改Makefile文件3.执行#makemenuconfig,开始BusyBox配置.4.编译并安装BusyBox然后退出配置单,然后编译BusyBox,使用命令:#makeinstall>生成一个名为“install”的目录。5.构建Yaffs根文件系统框架6.根文件系统各目录中内容的编程与添加7.使用制作yaffs文件系统的软件,把它做出yaffs文件系统格式的镜像8.然后把制作好的镜像root2.6.30.4.bin复制出来,烧写到开发板中,就可以运行了。针对Linux内核,如下机制严重地影响了实时性:1Linux调度及其抢占第一,虽然Linux2.6中代码被设置了抢占点,内核已经可以抢占,因而实时性得到了加强。但是内核中仍有大量的不可抢占区域,如由自旋锁(spinlock)保护的临界区,以及一些显式使用preempt_disable失效抢占的临界区。还包括核心进程是不能被抢先的,即如果有Linux的核心态进程在运行时,其他进程不管其优先级多高都必须等待。2Linux的中断中断总是最高优先级的,在系统调用中为了保护临界区资源,Linux会长时间关掉中断。Linux在一些同步操作中使用了中断关闭指令,中断关闭将增大中断延迟,降低系统的实时性。这种情况在实时系统中是不允许发生的。连续的低优先的中断可能持续占有CPU,而高优先的某些进程则无法获得CPU。在Linux中,中断(包括软中断)是最高优先级的,不论在任何时刻,只要产生中断事件,内核将立即执行相应的中断处理函数以及软中断,等到所有挂起的中断和软中断处理完毕有才执行正常的任务。因此在标准的Linux系统上,实时任务根本不可能得到实时性保证。例如,假设在一个标准Linux系统上运行了一个实时任务(即使用了SCHED_FIFO调度策略并且设定了最高的实时优先级),但是该系统有非常繁重的网络负载和I/O负载,那么系统可能一直处在中断处理状态而没有机会运行任何任务,这样实时任务将永远无法运行,抢占延迟将是无穷大。因此,如果这种机制不改,实时Linux将永远无法实现。3linux的时钟粒度操作系统必须对时间精度和时钟中断处理的时间开销进行折中考虑,时间精度越高,意味着时钟中断越频繁。Linux通过对硬件时钟编程产生周期为100hz的时钟,中断任务调度的时间精度最高能达到10ms。这无法满足一些对时间精度要求苛刻的实时应用.在Linux2.6内核中还是允许在编译内核时选定不同的Hz值。在Linux2.6版本内核中,时钟中断发生的频率范围为50~1200Hz,周期不小于0.8ms,而工业上很多的中断周期都在几十us之内,这无法满足一些对时间精度要求苛刻的实时应用。4Linux的虚拟内存Linux采取了虚拟内存的内存管理方式,即Linux利用交换空间让进程运行在一个比实际内存大的虚拟内存空间里。它使得操作花费的时间具有不可预测性在实时系统中是不允许的。Linux实时改造后的系统实时性较好,典型代表有:Kurt-Linux,RED-Linux,RT-Linux、RTAI和Xenomai等。RT-Linux中的实时任务在运行过程当中总是处于以下三种状态之一:1.等待(Waiting)态:也叫睡眠状态或阻塞状态,是指正在执某些事件而无法得到执行,放弃CPU而处于暂停状态。此时任务处于等待队列中,待资源有效时唤醒,也可由其他任务通过信号(Singal)定时中断唤醒,唤醒后进入就绪队列并立即引起调度程序运行。2.就绪(READY)态:就是除CPU以外其它运行条件都已具备,只是因为有更高优先级的任务正在使用CPU而不能投入运行,任务处于等待CPU的状态,处于就绪队列中,一旦获得CPU便立即投入运行。3.运行(RUNNING)态:就是任务正在CPU上运行,在单CPU的计算机系统中,任一时刻只有一个任务处于运行状态。安装RT-Linux的方法和步骤RT-Linux是针对Linux官方原版内核发布的,因此在RT-Linux官方网站上给出的安装方法只适用于Linux原版内核,在RedHatLinux9(内核版本2.4.20-8)环境下安装RT-Linux3.1,实践表明是成功的。1.下载RT-Linux完整的源代码tar包,存放在/usr/src目录下。RT-Linux的免费版本可以从http://www.Rtlinuxfree.com上获得,文件名为rtlinux-3.1.tar.gz;2.下载完整的与RedHatLinux9版本相应的官方内核,存放在/