嵌入式系统4linux设计1991年LinusTorvalds开始在MINIX上编写各_第1页
嵌入式系统4linux设计1991年LinusTorvalds开始在MINIX上编写各_第2页
嵌入式系统4linux设计1991年LinusTorvalds开始在MINIX上编写各_第3页
嵌入式系统4linux设计1991年LinusTorvalds开始在MINIX上编写各_第4页
嵌入式系统4linux设计1991年LinusTorvalds开始在MINIX上编写各_第5页
免费预览已结束,剩余84页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统设Linux发展简1991年,LinusTorvaldsMINIX上编写各种驱1991年,LinusTorvaldsLinux1993年,Linux1.0 版Slackware问 技术局的计算机系统确POSIX标准1999年,Linux的简体中 版相继问AMIRIXEmbeddedderivedfromCoollogiccombinesLinuxandJavaforInternetCoventivekernelcanbeassmallasEsfiaRedBlue400K,designedforwireless嵌入KYZOPizzaBoxSAMBAbasedfile,print,CDLineosupportsrealtimeandhighavailabilityLynuxWorksgeneralpurposeembeddedMontaVistageneralpurposeembedded嵌入NeowareRedHatderivedforinformationPalmPalmInternetappliuanceandRedHatEmbeddedgeneralpurposeembeddedRedSonicRed-IcerunsfromDiskonChipor嵌入RidgeRunDSPformultimedia,wireless,RTonTimeSysLinuxlowlatencyenhancedTuxiadistrotargetsInternetVitalSystemsforARMbasedembedded开源嵌入EmbeddedDebianconvertDebiantoanembeddedforPC104formicroprocessorsthatdon’thaveuLinuxdistrofitsonasingleLinux如何做到实UserUserKernelReal-TimeMicroStandardLinuxLinux如何做到实UserUserKernelModifiedLinuxPreemptible,MicroTiming,and/orLow实时Linux实现方Kernel,Userspacehardreal-time(LXRT)OpenopensourceOnCoreKURT(KansasUniversityReal-OpenFSMLabs-OpenRTLineo-EmbedixLynuxWorks-BlueCatMontaVistaSoftware-RealTimeREDSonic-REDICETimeSys-Linux/Real-开源实ARTLinux-realtimeextensionbasedonKURT-eventscheduleswith10usLinux-SRT-forsoftrealtimeappslikeQlinux-providesQualityofServiceRTAI-“hard”RealTimeApplication1、 费2、有很高的稳3、强大的网络4、丰富的开发5、大量的开源 Hitachi工业控电视机顶汽车控制计电信以及网络机器CycladesTS-NetlinosDual50MHz16MBSDRAM4MBSizeofadeckofSixnetVersaTRAKPowerPC16MBDRAM16MBSerial&EthernetLinuxandIEC1131SharpLineo206MHz64MBDRAM16MB3.5”display(320x240)64KOperabrowser&QT/EmbeddedCellandWebepong

Aplio/PROIPTiVOSetTopHomegrownportofEmbedded54MHzMultiGBhardAxis2120Network100MHzETRAX16MBHumanoid

Univ.ofDualPentiumRT-Height:53Weight:121HumanoidRT-Height:48Weight:6100TheEmbeddedOSMarketTheEmbeddedOSMarketGrowthofEmbedded嵌入式系统的开发模限系统,如内、外空间小,CPU处理速度交叉开 模拟开需要每次的修改都到目标机中,待程序正确后再到目标机上运行。这样就可以达到开发平Linux作为开发平开发平Windows作为开发开发平 设置工具—这是因为 用程序的组件组成。这些组件包括:Binutils—用于操作二进制文件的实用程序集合。GccGNUCGlibc—所有用户应用程序都将到的C库。避交叉编译器环简单的任务:它包括源代码、修补嵌入Linux开发内嵌入Linux开发大致涉及三Linux引导装载程BootRecord,(MBR))中,或者装入Linux驻留的磁盘的第一个扇区中。

解决方法 软件可以直接与系统上的闪存设备进行交JFlash-linux是一种用于直接写闪存的流行工具。它 i386机器—本文中我们把一台i386机器称为主机)上执行并通过JTAG接口使用并行端口 Jflash-linux在Linux和Windows解决方法微小的引导DRAMLinuxU-Linux启动过程第一linux/arch/arm/kernel/head-linux/init/main.c---start_kernel(…)setup_arch(…);//platformspecificinit,boardparam,memoryLinux启动过程第一kernelthread---Linux启动过程第二设备驱动初(Orotherfilesystemasroot)Openttyfromroot运行初始化

Initstartup/bin/expand/etc/ramfs.imgmount-tprocprocmount-text2/dev/ram0catifconfiglorouteadd-net127.0.0.0netmask255.255.255.0Linux的内核格vmlinux和zImage之间的主要区别在于vmlinux是实际的(未压缩的)可执行文件,zImage是或多或少包含相同信息的自解压只是压缩它以处理(In强制的)640KB引导时间的限制。zIagezagIagMIag,内核编构造内核常用Make 做makeconfig将产生新的.config文件,原.configMake寻找依存惯性,产生两个文件 Make

内核编Make Make,makezImage,Make内 和装通过使用串行、USB或以太网端口,引内 和装 数据、bass等等。这些对象文件都是由一个称 文件的各节装入到指定地址处。vmlinux.lds是存在于arch/<target>/ 典型的vmlinux.ldsOUTPUT_ARCH(<arch>)/*<arch>includesarchitecturetypeENTRY(stext)/*stextisthekernelentrypoint*/SECTIONS/*SECTIONScommanddescribesthelayoutoftheoutputfile*/{.=TEXTADDR;/*TEXTADDRisLMAforthekernel.init:{/*Initcodeand_stext=.;/*Firstsectionisstextfollowedby initdatasection*/ init_end=}.text:{/*Realtextsegmentfollows init_datasection_text=_etext=.;/*Endoftext}典型vmlinux.lds.data_data=.;/*Datasectioncomesaftertextsection}/*Datasectionendshere.bss:{/*BSSsectionfollowssymboltablesection*/ bss_start=_end=.;/*BSSsectionendshere}}PIC

文件格Flatbinaryexecutionformat.ELFFLAT文件系 以ext2fs通过使Ramdisk的概念,可以式设备中创建并挂装Ext2文件系统(及用于这一目的的任何文件系统)创建Ext2fsmke2fs-vm0/dev/ram4096mount-text2/dev/ram/mntcd/mntcp/bin,/sbin,/etc,/dev...filesinmntcd../ddif=/dev/rambs=1kcount=4096问日志闪存文件系统AxisCommunications开发了最初的JFFS,RedHat的DavidWoodhouse对它进行 JFFS2文件系统是日志结构化的,这意味着它—可能是文件的名称、也许是一Ext2fs,JFFS2因为有以下这JFFS2优JFFS2Ext2JFFS2提供了比Ext2fs更好的 当需要更改少量数据时,Ext2文件系统将整个扇区复扇区(64KB)执行读/擦除/写例程—这样做的效率非常低。要是运气差,当正在DRAM中合并数据区。JFFS2附加文件而不是重写整个扇区,并且具有 能这可能是最重要的一点 当Linux运行于嵌入式设备上时,该设备就成为功能 syslogd、dmesg和klogd,会在/var和/tmp 在重新引导时这些消息不需要持久,所以这个问题的解决方案是使用tmpfs。的不必要的闪存写操作这一唯一目的。因为tmpfs驻留在RAM中,所以写/读/擦除的操作发生在RAM中而不是在闪存中。因此,日志消息写入RAM而不 tmpfs驻留RAM,所以读文件,I/O操作的速度仍非常诸如Ext2fs和JFFS2等大多数其它文件系统都驻留在底层块设备之上,而tmpfs与它们不VMtmpfs文 /*Entriesin/etc/rc.d/rc.sysinitforcreating/usingtmpfs*/#mount-ttmpfstmpfs/var-osize=512k#mkdir-p/var/tmp#mkdir-p/var/log#ln-s/var/tmp/tmp内核的裁对于一般PCPDA如: 内核编译后为100KB---Networkingsupport:Y KernelsupportforELFbinaries:YCompileas –ifyourGCCisELF- :Y这两个设置系统的执行文件都为AdvancedPowerManagerBiosBlock :应该加入对硬件特殊NetworkingPacketSecondextendedfssupport小型的嵌入式系整 可以缩到100K左工控内核大小为800多参 Glibc函数库裁Debug符号裁Linux提供了strip的删除嵌入式Linux驱动程序设物理设备硬件控制器控制和状态寄存器(CSRs,启、停、初始化、诊断)处理或管理设备控制器(软件)设备驱动器Linux系统设备驱动程序简字符设如:系统控制台,串口,并口编程:实现file_operations结构向系统响应)操作Linux系统设备驱动程序简块设系统该设备(块设备、devfs节点、终端响应)操作应用Linux系统设备驱动程序简网络接Linux设备驱动程序框驱动程序 和注销设备的打开与释设备的读写操设备的控制操设备的中断和轮设备驱动程序开发实Step2:实现驱动程序初始化和清除函Step4:实现所需的文件操作调运函数,如read、Step5:实现中断服务函数,并调用request_irq向内;Step6:将驱动程序编译入内实例:字符设备 实例:字符设备将 到 在mem.c文件的chr_dev_init#ifdefMakefile文件中加入config.in文件中加bool‘supportformychrd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论