中兴嵌入式klinux培训_第1页
中兴嵌入式klinux培训_第2页
中兴嵌入式klinux培训_第3页
中兴嵌入式klinux培训_第4页
中兴嵌入式klinux培训_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

Klinux基础培训多业务承载深圳软件开发二部OSS科蒋彦波目录第一部分Linux概述第二部分Klinux简介第三部分嵌入式Linux开发第四部分Klinux开发指南第五部分KIDE集成开发环境第六部分KIDE调试第一部分Linux概述Linux之父Linus

TorvaldsLinux的标志Linux发展史前身---Minix1991年9月Linux0.01版本由Linus

Torvalds开发。1991年底,Linus

Torvalds首次在internet上发布基于i386体系结构的Linux源代码。Linux的商品应用逐渐增多。1998年7月,Linux赢得了包括许多大型数据库公司包括:Oracle、Informix、Ingres的支持。进入大、中型企业的信息系统。2000年,发布内核稳定版本2.2.10,由150万行代码组成,估计拥有1000万用户。目前采用比较多的是基于Linux2.4内核最新的是2.6内核。选择Linux的缘由免费可靠的系统安全多任务移植性强大的网络功能多用户开源Linux发行版本嵌入式LinuxRT-Linux实时性强,把标准的Linux核心作为实时核心的一个进程,同用户的实时进程一起调度υCLinux体积小型化,可以控制在几百K,主要针对NoMMU.红旗嵌入式Linux->EEOS重点支持p-Java。系统目标一方面是小型化,另一方面能重用Linux的驱动和其它模块KLinux中兴成研所主打产品之一,强实时内核,可裁减性强,另有一套嵌入式集成开发环境可与之完美结合。第二部分Klinux简介什么是KLinux?成都研究所在标准linux的基础上增加了强实时性能的嵌入式操作系统。KLinux特色之处实时0(1)调度基于优先级的可抢占调度内核支持在内核线程上的移植KLinux简介—解决方案Linux强实时内核解决方案Linux修改内核KTH库KLibc、KCplus库X86PPCARM上层应用调试代理调试器MIPSOSS支撑VxWorks适配内核态KLinux简介—体系结构相关硬件开发板与评估版网络协议栈

Linux支持包(最小系统和设备驱动)Embsys

KLinux

内核

标准Linux与VxWorks适配接口ZTEEmbsys第三方软硬件上层应用程序KLinux简介—关键特性KLinux关键特性强实时性支持在内核线程上的移植支持多种硬件体系X86体系(支持所有IA32的CPU、虚拟机)PPC体系(8240/8241/8245、860、852、8260、755)ARM-NOMMU(ARM7TDMI)ARM(ARM9TDMI、IXP1200)MIPS(R4000)KLinux简介—版本状况KLinux2.0基于Linux2.4的内核KTH、KLibc、KShellKLinux2.2完善KTH、KLibc、Shell,增加了KCplus模块增加了调试器功能LSP,KBoot的开发完整的用户文档KLinux3.0基于Linux2.6的内核增加用户态KLinux简介—应用现状成研所Linux产品应用情况2005年10月开始在网络事业部A10和DSL产品线进行应用2006年3月DSLA8000core板泉州试验局测试通过2006年4月开始在中心研究院MSCe所有单板上进行内核替换验证,完成了Boot、内核、驱动的替换验证,获得了评测数据;2006.12开始与本部北研合作在M720上基于KLinux和KIDE进行研发,其他产品如M600的CCSM单板也正在做移植工作,进展顺利;2006.12开始与数据南研合作在5126/5124/29XX/2826等产品型号上进行基于KLinux的研发工作,目前进展较顺利;与网络上研继续在DSLAM、GPON等产品上进行合作;探讨与中研ATCA、IMS等产品进行合作研发;第三部分嵌入式Linux开发交叉开发环境(主机—目标机工作方式)LinuxHostWindowsRedhatLinux9.0TFTP/DHCP/NFSserverCrossCompiletoolsTargetBoard应用程序Linux内核启动程序网口串口KLinux开发环境Linux下开发Windows下开发CygwinVmware(虚拟机)+LinuxKIDE命令行开发命令行开发命令行开发集成开发环境嵌入式Linux软件组成嵌入式Linux系统软件由以下部分组成:嵌入式Linux启动装载器:BootLoaderBootLoader驱动程序嵌入式Linux操作系统内核Linux设备驱动程序最小支持文件系统应用程序嵌入式Linux组成—BootLoader启动装载器完成Linux操作系统内核的启动加载。系统上电后执行,初始化硬件。提供基本的交互操作界面,如内存查看与修改,设备查询等功能。提供下载(读取)Linux内核的功能。提供从装载器到Linux内核传送参数的功能。装载Linux操作系统到内存中,并将控制转移到Linux内核起始执行处。完成Linux内核的启动。嵌入式Linux组成—Linux内核嵌入式Linux内核(Kernel)是整个嵌入式操作系统的核心,它直接管理硬件,并通过系统调用为上层应用提供服务。为了适应嵌入式环境,需要对内核进行裁减与配置。提供支持特定硬件平台的内核启动代码去除多余功能,减小体积增加实时功能添加特殊的系统调用配置途径一Cygwin下进入内核源码目录<linux2.4.20>输入命令“makemenuconfig”配置途径二KIDE下新建LSP工程点右键,选择“kernelconfigure”进入内核配置界面嵌入式Linux组成—Linux设备驱动Linux硬件驱动提供目标系统硬件在Linux操作系统下的驱动程序,供系统以及之上的应用存取硬件使用。Linux下的设备划分为3类:字符设备char(如键盘、串口等)、块设备block(如磁盘等)、网络设备一般列为单独的一类设备由于Linux运行时候划分内核空间与用户空间,而驱动程序一般运行在内核空间中。对于运行在用户空间的应用程序而言,从相应硬件中获取数据需要经过一个内核空间到用户空间拷贝的过程。嵌入式Linux组成—最小文件系统嵌入式Linux必须要有文件系统支持才能运行嵌入式系统中一般采用MTD的物理设备作为文件系统驻留空间:如RAM、Flash等。文件系统中必须包含的内容系统init程序;Shell;应用程序;应用程序函数库。必须采取措施,减小文件系统的体积,以适应嵌入式应用的需求。具体措施在“小型化”中介绍。嵌入式Linux组成—应用程序应用程序应用程序完成整个嵌入式系统的对外功能需求与功能接口。应用程序一般运行在Linux的用户空间,作为一个用户进程在运行。应用程序通过系统调用进入内核,访问内核提供的服务。存取硬件。可以有多个应用程序同时运行。应用程序崩溃一般不会导致系统崩溃。Linux支持Posix线程:pthread。嵌入式Linux开发的五个阶段根据整个嵌入式Linux应用开发过程的时间先后可以分为以下5个开发阶段Boot程序(含Boot驱动)开发Linux内核开发Linux驱动程序开发应用程序开发

Linux目标系统集成每个开发阶段相应对一个完整嵌入式Linux系统的一些组成部分的开发工作Boot及驱动程序开发开发目标启动嵌入式目标系统,使系统具有加载并启动Linux内核的能力。工作重点

CPU初始化;RAM初始化;串口、网卡、以及FLASH驱动;基本的TCP/IP协议栈支持。工作产品目标系统的启动ROM。可以启动目标系统的BootLoader。Linux内核开发开发目标获得一个满足目标系统功能与性能需求,可以启动的Linux内核。工作重点启动最小系统(内核配置和生成)开发、外围设备驱动的开发。工作产品可以启动系统的Linux内核(bzImage、pImage等)Linux设备驱动程序开发开发目标驱动目标系统上的相关设备,为上层应用提供存取硬件的能力。工作重点关注设备身的特性,采用合适的驱动方式。工作产品可以是内核的一部分,也可以是模块化的驱动程序(内核可装载模块LKM)的目标文件(*.o)。Linux应用程序开发开发目标实现单板需要实现的产品功能与接口。提供相应的单板服务与响应。工作重点关注应用本身。如果在封装过的操作系统平台上开发,需要关注所封装的接口。工作产品可以执行的应用程序,一般为ELF格式,采用动态或者静态连接,可以在目标系统上运行。Linux目标系统集成开发目标提供产品化的嵌入式Linux系统。工作重点关注系统占用的存储空间,文件系统选择。系统启动脚本。工作产品无需开发主机配合就可以独立运行的产品化的嵌入式Linux系统。第四部分Klinux开发指南运行环境构建连接目标板与开发主机运行环境构建安装配置相关工具串口工具Tftp工具运行环境构建制作根文件系统(ramdisktool)获取免费的ramdisk_tool把ramdisk_tool整个目录copy到Linux下面Linux下执行“sh

脚本文件名”,生成相应的镜像文件

若需添加文件或目录到文件系统,将要添加的文件或目录copy到ramdisk_tool\ram_fs中指定的路径中。运行环境构建启动目标板(方法一)自主模式启动将开发的启动程序烧入固态设备自动将操作系统加载到RAM中运行正常的工作模式,嵌入式产品必需用这种方式启动运行环境构建启动目标板(方法二)下载模式启动从主机下载内核映像和根文件系统映像提供简单的命令行接口。可将下载命令写成脚本文件。以arm的启动脚本为例:procmaintransmit"setenv

ipaddr6;"transmit"tftp400000zImage;"transmit"tftpc00000smdk2410ramdisk.image.gz;"transmit"go400000c00000^M"endproc开发初期调试时采用此方法应用构建(1)—编辑源程序开发语言:C、汇编、C++编辑工具:UltraEdit、vi…编辑原则:在KLinux代码包的usrapp目录中添加应用程序语法原则参照关资料应用构建(2)—编译构建编译工具gcc:完成预处理、编译、汇编、连接整个过程。As:将用汇编语言编写的源程序转换成二进制形式的目标代码。ld:把一个或多个目标文件(程序库)转变为一个可执行程序。Make:自动编译管理器,通过读入makefile内容完成编译工作。

单个或少数几个文件编译用gcc;多个文件的编译用make。KLinux开发需要用make构建工程!应用构建(2)—编译构建构建工程Makefile:定义了编译规则。构造出需要编译的源文件列表分别编译链接目标代码,形成二进制文件Makefile基本语法:目标文件源文件

make需要执行的命令target…:prerequisites…command应用构建(2)—编译构建构建工程makefile中的变量版本信息:VERSION、PATCHLEVEL、SUBLEVEL等cpu体系结构:ARCH路径信息:TOPDIR内核组成信息:CORE_FILES,NETWORKS,DRIVERS等编译信息:CPPCC,AS,LD,AR,CFLAGS,LINKFLAGSmakefile相关文件:.config

,rules.make.config:配置文件rules.make:公共的规则文件KShell简介类似于MS-DOS的命令行操作界面KShell提供两部分功能提供丰富的Shell命令(如i、tt、ts等),方便用户查看KLinux系统信息;提供简单的C语言语法解析机制(c语法分析器)。KShell使用模式进入KShell的两种方式:超级终端或者其他的串口工具命令行工具或其他的远程登陆工具,且端口号为9023。命令为:

TelnetIP地址9023

KShell界面KShell命令简介任务及信号量相关checkStack、i、msgQShow、objshow文件及文件系统相关cat、cd、df、du、ls、rm网络设备相关ifShow、ipstatShow、ping设备及驱动相关tcpstatShowKShell命令简介调试相关bdall、c、cret

内存管理d、m、memShow日志管理closelog

、disablelog

、enablelog

其他help、IkAddr、moduleShow、printErrno第五部分KIDE开发环境KIDE发布版Linux标准LinuxKLinux上层应用内核驱动应用LSPDownloadableBootableKIDE体系结构网线串行线WindowsEclipse工程管理调试器第3方工具主机BootLoaderKLinux标准Linux发布版Linux目标机编辑器底层命令行工具内核态应用内核内核用户态应用用户态应用工程向导KLinux工程LSPDownloadableBootable用户态工程交叉构建本地构建内核态工程内核工程模块工程编辑器支持中文注释标签,点击切换目标视图调试配置通过调试配置,我们可以实现多板调试,多种调试类型,符号表选择,源路径选择。3种调试类型切换目标板配置符号表调试视图线程表查看,堆栈查看线程运行、暂停、恢复双态调试Attach/Detach单步调试查看视图6大查看窗口:变量、表达式、寄存器、反汇编、内存、断点第六部分KIDE调试开发版的构建选项(KIDE默认)调试选项:–g开启代码优化:无Release版的构建选项调试选项:-g关闭代码优化:-O2工程右键菜单->属性工程属性开发版本Release版本开发版本Release版本建立调试连接虚拟机同LSP工程,只是生成的bzImage不仅包含了LSP部分,还包含了应用部分。新建调试配置同Downloadable工程启动调试同LSP工程进入调试Attach调试视图,当前是在内核任务级调试状态,我们现在对usrAppint这个线程进行调试首先对其点右键->AttachAttach成功!usrAppint暂停,自动列表显示它的堆栈信息。此时可以双击我们需要的某个堆栈,打开源文件,对它设置断点。进入调试双态切换内核调试的两种方式前面已经介绍过,实际调试过程中,我们可能都会用到。KIDE为此提供了双态切换功能,前面LSP调试配置我们是建立的任务级调试,其实也可以建系统级调试,区别只在于进入调试时的初始状态。任务级切到系统级:对SystemThread点右键->系统级调试系统级切任务级:对TaskThread点右键->任务级调试切换回任务级调试查找源

温馨提示

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

评论

0/150

提交评论