嵌入式LINUX开发环境介绍课件

上传人:我*** 文档编号:145831194 上传时间:2020-09-23 格式:PPT 页数:34 大小:167KB
返回 下载 相关 举报
嵌入式LINUX开发环境介绍课件_第1页
第1页 / 共34页
嵌入式LINUX开发环境介绍课件_第2页
第2页 / 共34页
嵌入式LINUX开发环境介绍课件_第3页
第3页 / 共34页
嵌入式LINUX开发环境介绍课件_第4页
第4页 / 共34页
嵌入式LINUX开发环境介绍课件_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《嵌入式LINUX开发环境介绍课件》由会员分享,可在线阅读,更多相关《嵌入式LINUX开发环境介绍课件(34页珍藏版)》请在金锄头文库上搜索。

1、嵌入式LINUX开发环境介绍,主讲人:胡都欢,2009年06月30日,主要内容,一、嵌入式LINUX简介 二、开发环境搭建 三、实例演示,一、嵌入式LINUX简介,嵌入式系统定义: 是以应用为中心,以计算机技术为基础,并且软硬件是可裁剪的,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。,体系结构: 嵌入式处理器 嵌入式外围设备 嵌入式操作系统 嵌入式应用软件,嵌入式LINUX系统的基本元素: 引导工具 Linux微内核 初始化进程 硬件驱动程序 应用程序 文件系统 协议栈,广泛的硬件支持 Linux能够支持x86、ARM、MIPS、ALPHA、PowerPC等多种体系结构

2、,目前已经成功移植到数十种硬件平台,几乎能够运行在所有流行的CPU上。Linux有着异常丰富的驱动程序资源,支持各种主流硬件设备和最新的硬件技术,甚至可以在没有存储管理单元的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。,Linux作为嵌入式操作系统的优势,内核高效稳定 Linux内核的高效和稳定已经在各个领域内得到了大量事实的验证,Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分,其独特的模块机制可以根据用户的需要,实时地将某些模块插入到内核或从内核中移走。这些特性使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的

3、需要。,开放源码,软件丰富 Linux是开放源代码的自由操作系统,它为用户提供了最大限度的自由度。由于嵌入式系统千差万别,往往需要针对具体的应用进行修改和优化,因而获得源代码就变得至关重要了。Linux的软件资源十分丰富,每一种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。在Linux上开发嵌入式应用软件一般不用从头做起,而是可以选择一个类似的自由软件作为原型,在其上进行二次开发。,完善的网络通信和文件管理机制 Linux从诞生之日起就与Internet密不可分,支持各种标准的Internet网络协议,并且很容易移植到嵌入式系统当中。此外,Linux还支持ext2、fat32、r

4、omfs等文件系统,这些都为开发嵌入式系统应用打下了很好的基础。,二、开发环境搭建,1、开发基础知识介绍 2、开发流程 3、开发中所用到得工具 4、软件开发及调试,1、开发基础知识介绍 熟悉linux的基本操作; 编程能力(C语言); 运用linux的函数库进行开发;,熟悉linux的基本操作(shell ) Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户 输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高 级语言中才具有的控制结构,包括循环和分支。它虽然不是Li

5、nux系统核心的一部 分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统的关键。 Shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其它程序向Linux传递命令时,内核会 做出相应的反应。 Shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中 其它应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Lin

6、ux 核心。 Shell命令有两种形式: 内部命令,存在于内存中,比如cd。 外部命令,存在于文件系统中某个目录下的单独的程序,例如cp、rm,Shell的种类 Bourne shell (sh) 作者是Steven Bourne,它是UNIX 最初使用的Shell 并且在每种 UNIX 上都可以使用。 C shell (csh) C Shell 由Bill Joy 所写,它更多的考虑了用户界面的友好性。语法 和C 语言很相似。 Korn shell (ksh) 由Dave Korn 所写,它集合了C Shell 和Bourne Shell 的优点并且 和Bourne Shell 完全兼容。

7、BASH Bourne Again shell (bash), 是Bourne shell 的扩展。,常用命令 帮助命令 help,man,whatis,whereis 显示文件内容命令 cat,more,less,head ,tail,od,file,touch 文件内容查询命令 grep 文件查找命令 find,locate 文件比较命令 diff,comm 文件权限 chmod 文件复制、删除和移动命令 cp,rm,mv 打包命令 tar,Linux的文件命名规则 由Linux文件系统的规定,文件名和目录名可以包含以下字符:大写英文 字母A-Z、小写英文字母a-z、数字0-9、“”、“_

8、”等。在文件名和目录中, 不得包括的字符有:* ? / ; & ! | “ ( ) 。不得以”+“和”-“开头。 Linux中的文件名是大小写敏感的,也就是说,rainbow和Rainbow代表两 个不同的文件。 一个以“.”打头的文件表明这个文件是隐藏文件(可以用ls -a 查看)。 Linux系统中文件名的最大长度为255个字符。 文件类型 普通文件 包含文本或代码数据,分为文本文件和二进制文件两类 目录文件 是一个目录包含的文件列表 设备文件 指硬件或逻辑设备(一般在/dev 目录下,例如/dev/lp0代表打印机等)字符设备与块设备,文件与目录的基本概念,常见目录 /bin 目录包含供

9、每个人使用的可执行程序 /sbin 目录包含仅供管理员使用的可执行程序 /lib 目录包含库文件 /boot 目录包括了内核镜像和其它相关内容 /dev 目录包含着代表硬件设备的设备文件 /etc 目录包含着整个系统的各种配置文件 /home 目录包含各用户的主目录 /root 目录是root的主目录 /mnt 目录包含装载其它非标准文件系统的装载点 /proc 是个虚拟目录,里面保存内核和进程的信息 /tmp 目录是为程序和用户提供放置临时空间的目录 /usr 目录包含UNIX系统的众多资源,较占空间 /var 目录包含了一些文件大小比较特殊的文件,如日志文件,锁文件等,还包括各种用途的文件

10、,如:邮件、计划、打印文件等 /lost+found 存在于所有的文件系统中,保存文件碎片 /opt 目录是由一些外部应用程序使用的目录,编程能力(C语言) Linux作为操作系统,一个很重要的功能就是支持用户编程。C语言作为当前使用最广泛的变成语言具有多平台性、移植性好的特点,因此他们很快形成了完美的结合,为用户提供了一个很强大的编程环境。,运用Linux下的库函数进行开发 Linux下函数库(1/3) 一个“程序函数库”就是一个文件包含了一些编译好的代码和数据,这些编 译好的代码和数据可以在事后供其他的程序使用。程序函数库可以使整个 程序更加模块化,更容易重新编译,而且更方便升级。可分为两

11、种类型: 静态函数库(static libraries):是一个普通的目标文件的集合,一般用 “.a”作为文件的后缀。静态函数库和共享函数库相比有很多的缺点, 占用内存空间多。但使用ELF格式的静态库函数生成的代码可以比使 用共享函数库的程序运行速度上快一些。 可以用ar这个程序来创建一个静态函数库文件,或者往一个已经存在 地静态函数库文件添加新的目标代码。 例如, 把file1.o和file2.o加入到my_library.a这个函数库文件: ar rcs my_library.a file1.o file2.o 然后运行 ranlib,以给库加入一些索引信息,Linux下函数库(2/3)

12、共享函数库(shared libraries):当一个可执行程序在启动的时候被加载的函数。每个共享函数库都有个特殊的名字,称作“soname”。soname名字 命名必须以“lib”作为前缀,然后是函数库的名字,然后是“.so”,最后是版本号信息。 优点:多进程使用同一函数库;修改函数库不需重新连编。 安装一个新版本的函数库的时候,要先将这些函数库文件拷贝到一些 特定的目录中,运行ldconfig就可以。ldconfig检查已经存在的库文件,然后创建soname的符号链接到真正的函数库,同时设置 /etc/ld.so.cache这个缓冲文件。 例如,创建两个目标文件(a.o和b.o),然后创建

13、一个包含a.o和b.o 的共享函数库。 gcc -fPIC -g -c -Wall a.cgcc -fPIC -g -c -Wall b.cgcc -shared -Wl,-soname,liblusterstuff.so.1 -o liblusterstuff.so.1.0.1 a.o b.o lc,Linux下函数库(3/3) 函数库和头文件的保存位置 a. 函数库 /lib:系统必备共享函数库 /usr/lib:标准共享函数库和静态函数库 /usr/i486-linux-libc5/lib:libc5 兼容性函数库 /usr/X11R6/lib:X11R6 的函数库 /usr/local

14、/lib:本地函数库 b. 头文件 /usr/include:系统头文件 /usr/local/include:本地头文件 c. 共享函数库的相关配置和命令 /etc/ld.so.conf:包含共享库的搜索位置 ldconfig:共享库管理工具,一般在更新了共享库之后要运行该命令 ldd:可查看可执行文件所使用的共享函数库,2、开发流程,串口,并口,JTAG,宿主机(X86),网口,1、宿主机为LINUX操作系统,完全在Linux下开发、编译、下载程序。 2、宿主机为Windows操作系统,使用Cygwin 程序模拟Linux环境,进行开发。 3、宿主机为Windows操作系统,使用VMwar

15、e创建一台虚拟计算机,在虚拟的计算机中安装Linux操作系统。在Windows中进行代码编写,在虚拟机的Linux系统中编译生成目标代码。,开发方式,虚拟机WMware 代码编辑器Source Insight Linux操作系统,3、开发工具,VMWare功能 可虚拟出若干台机器。 每台机器可以运行单独的操作系统而互不干扰。 拥有各自的CMOS、硬盘、内存、串口等硬件资源。 拥有普通机器所以功能。 可以将这几个操作系统联成一个网络。 在虚拟系统崩溃之后可直接删除不影响本机系统 本机系统崩溃后也不影响虚拟系统,可以下次重装后再加入以前做的虚拟系统,Source Insight 是一个面向项目开发

16、的程序编辑器和代码浏览器,它拥有内置的对C/C+, C#和Java等程序的分析。Source Insight能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。,Linux系统 内核版本 源程序版本号的形式为x.y.z。对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数)。 最新2.6.X 目前公司使用的是fedora,内核是2.6.18,发行版 Slackware Linux Debian Mandrake MandrakeSoft Red Hat SuSE SuSE AG 中软Linux 中科红旗Linux Turbolinux BluePoint Linux,Samba简介 Samba从根本上消除了Windows与Linux之间的屏障,可以提供以下4个方面的服务:共享资

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号