嵌入式Linux应用开发培训讲义

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程目标本课程结束时,您将能够:掌握嵌入式Linux的开发流程进行基于嵌入式Linux的进程间编程进行基于嵌入式Linux的网络编程进行基于嵌入式Linux的GUI编程3课程安排嵌入式Linux开发环境搭建嵌入式Linux概述Linux快速入门熟悉嵌入式开发平台熟悉引导启动代码和内核的烧写NFS环境构建4课程安排嵌入式Linux下的应用程序开发嵌入式Linux开发工具与开发流程理解交叉编译嵌入式Linux下的应用程序调试技巧Make工程管理器5嵌入式系统简介6嵌入式系统开发嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。7后PC时代据统计每年只有10-20%的计算机芯片是为台式PC或膝上电脑而设计的。每年又有1万个新的嵌入式系统计划产生,而且越来越多的系统需要复杂的嵌入式操作系统。2006年的全球产销量为十亿部,其中中国市场为1亿部。嵌入式系统设计制造的CPU每年大概有十~数十亿片。8常见嵌入式CPU微控制器(MCU)ARM7和ARM9的区别(3、5流水线)数字信号处理器(DSP)(4流水线)片上系统(SOC)可编程片上系统(SOPC—Nios2)9典型的嵌入式系统与PC机•处理器•存储器•输入•输出•软件(操作系统/驱动程序/应用程序)10嵌入式系统与PC设备名称嵌入式系统PC机CPU嵌入式处理器(ARM,MIPS)CPU(Intel的Pentium、AMD的Athlon等)内存SDRAM芯片SDRAM,DDR内存条存储设备Flash芯片硬盘输入设备按键、触摸屏鼠标、键盘输出设备LCD显示器声音设备音频芯片声卡接口MAX232等芯片主板集成其他设备USB芯片、网卡芯片主板集成或外接卡11嵌入式系统与PC(2)嵌入式系统PC机引导代码Bootloader引导,针对不同电路板进行移植主板的BIOS引导,无须改动操作系统WinCE、VxWorks、Linux等,需要移植Windows、Linux等,不需要移植驱动程序每个设备驱动都必须针对电路板进行重新开发或移植,一般不能直接下载使用操作系统含有大多数驱动程序,或从网上下载直接使用协议栈需要移植操作系统包括,或第三方提供开发环境借助服务器进行交叉编译在本机就可开发调试仿真器需要不需要12嵌入式系统的特点嵌入式系统低功耗、体积小,专用性强。嵌入式系统与PC机的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,能够把PC机中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。嵌入式系统的硬件和软件都必须高效率地设计,系统要精简。操作系统一般和应用软件集成在一起。对软件代码质量要求很高。应该尽最大可能避免死机的情况发生。嵌入式系统开发需要专门的开发工具和开发环境。13如何选择嵌入式CPU?ARMPowerPCMIPSXscaleDSPX86……14典型的嵌入式操作系统LinuxuC/OSWindowsCEVxWorksPalmOSSymbian15嵌入式系统开发流程16嵌入式系统开发的内容17嵌入式Linux开发流程电路设计(第1版)BootLoader内核移植编译器移植电路设计(第2版)电路设计(第3版)设备驱动程序开发应用程序开发18嵌入式Linux开发模式LinuxJTAGCPUCOREBootLoader内核FlashTargetHost串口网口NFS模式Rootfs19嵌入式Linux开发模式(2)LinuxJTAGCPUCOREBootLoader内核RAMDISKFlashTargetHost串口网口Ramdisk模式20Linux快速入门21Linux简介LinusTorvalds于1991编写Linux是一个Unix兼容的系统,大部分通用的Unix工具和程序都可以在Linux系统下运行。UNIX-堂兄Linux—表弟使用GNU工具开发:gcc,glibc,binutils,make等GNU=GNUisNotUnixGPL=GeneralPublicLicense22一些发行版RedHatFedoraCoreSuseDebianUbuntuCentOSAisanux23认识Linux内核版本主版本1.02.02.22.42.62,3年更新稳定版2.0.402.2.122.4.182.6.71,2月更新稳定版更新2.6.23.1~2.6.23.71,2周更新24Linux体系结构用户空间内核空间shell命令、程序或shell脚本文件系统I/O中断异常处理内存管理Cache调度系统调用(systemcalls)内核25内核结构26Linux优点提供了先进的网络支持多任务、多用户符合IEEEPOSIX标准核心能仿真FPU支持数十种文件系统格式完全运行于保护模式开放源代码采用先进的内存管理机制,更加有效地利用物理内存27Linux分区Linux分区的形式Swap分区根分区/Boot分区其他28Linux的基本命令Shell命令行使用技巧:Tab自动补齐、ctrl+a\+e等cd:转换目录ls:列出文件名(根目录浏览)ll:查看文件属性(文件属性与权限)cp:复制文件(cp/mnt/hgfs/share/*.*/root/)mv:移动文件(可用于文件或目录的改名)rm:删除文件(rm–rf(目标))mkdir:创建目录rmdir:删除目录29Linux的基本命令(2)cat:显示文本文件less/more:分屏显示文件grep:查找字符串(ls–all|grep***)head:显示文件开头tail:显示文件结尾sort:按次序显示文件uniq:去掉文件中重复的行diff:比较两个文件file:测试文件内容30Linux的基本命令(3)echo:显示文本date:显示时间和日期gzip:压缩文件gunzip:解压缩文件bzip2:压缩文件tar:打包和解包文件whereis:查找命令which:查找实用程序31Linux的基本命令(4)ps:列出进程df:检查文件系统空间占用情况du:显示磁盘空间的使用情况kill:杀死进程chmod:改变文件或目录的访问权限chown:改变文件或目录的属主和组chgrp:改变文件或目录所属的组info:获得帮助32Linux的基本命令(5)pwd:显示当前工作目录的绝对路径rpm:文件包管理clear:清屏ln:创建文件链接who:列出系统上的用户名单write:发送消息talk:与其他用户通信man:获取帮助33熟悉嵌入式开发平台熟悉引导启动代码和内核的烧写34需要熟悉的内容开发板硬件基本配置开发板与PC机连接方式PC机相关配置熟悉bootloader的使用深入理解开发内容巩固开发流程35Bootloader烧写示范Linux环境(虚拟机)简介超级终端和DNW的配置Bootloader的显示信息简介(标准BIOS)内核、文件系统的演示36嵌入式Linux下的应用程序开发37开发工具--编辑器vivi的基本使用方法•输入模式•命令模式38vi--开始编辑新增(append)--a从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。--A从光标所在列最後面的地方开始新增资料。插入(insert)--i从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。--I从光标列的第一个非空白字符前面开始插入资料。开始(open)--o在光标所在列下新增一列并进入输入模式。--O在光标所在列上方新增一列并进入输入模式。39vi--删除与修改x删除光标所在字符。dd删除光标所在的列。r修改光标所在字符,r後接著要修正的字符R进入取代状态,新增资料会覆改原先资料,直到按[ESC]回到指令模式下为止。s删除光标所在字符,并进入输入模式。S删除光标所在的列,并进入输入模式。40vi--退出命令:q不保存退出:q!不保存强制性退出:w保存编辑:wfilename存入文件filename中:w!filename强制性存入文件filename中:wq(:x)保存并退出(shift+zz)41vi--光标移动命令b移动到当前单词的开始e移动到当前单词的结尾w向前移动一个单词h向前移动一个字符j向上移动一行k向下移动一行l向后移动一个字符42vi--改变与替换操作命令r替换光标所在的字符R替换字符序列cw替换一个单词ce同cwcb替换光标所在的前一字符c$替换自光标位置至行尾的所有字符C同c$cc替换当前行43vi--拷贝与粘贴命令/yw将光标所在单词拷入剪贴板y$将光标至行尾的字符拷入剪贴板Y同y$yy将当前行拷入剪贴板p将剪贴板中的内容粘贴在光标后P将剪贴板中的内容粘贴在光标前•利用Vi编写一个helloworld程序!4445开发工具--编译器GCC全称为GNUCC,GNU项目中符合ANSIC标准的编译系统编译如C、C++、ObjectC、Java、Fortran、Pascal、Modula-3和Ada等多种语言一个交叉平台编译器,适合在嵌入式领域的开发编译46GCC编译器GNUCompilerCollectionC,C++,Objective-C,Fortran,Java,Ada简介gcc所支持后缀名解释.cC原始程序.C/.cc/.cxxC++原始程序.mObjective-C原始程序.i已经过预处理的C原始程序.ii已经过预处理的C++原始程序.s/.S汇编语言原始程序.h预处理文件(头文件).o目标文件.a/.so编译后的库文件48编译器的作用源代码*.c预处理器头文件*.h编译器目标代码*.o可执行文件引导代码库函数汇编处理链接Gcc的编译流程分为四个步骤预处理(Pre-Processing)编译(Compiling)汇编(Assembling)链接(Linking)49理解交叉编译及环境建立50GCC交叉编译器GNUBinutilsGNUBinutils的主要工具有两个,一个是连接程序ld,另外一个是汇编程序as。其主要目的是为GNU系统,提供汇编和连接工具。GNUGCCGNUGCC就是上面提到的GCC,GCC主要是为GNU系统提供C编译器。现在支持多种语言,这其中包括C/C++、Fortran、Java、Objective-C、甚至还有Ada。GNUGLibc用于定义系统调用和其它一些基本的函数调用。51GCC交叉编译器的生成第1步,取得Binutils、GCC、Glibc源码。第2步,配置并编译Binutils取得我们所需要的汇编和连接程序。第3步,配置并编译GCC源码生成GCC编译器。一般是C编译器首先生成,然后以这个为基础在结合下一步生成的Glibc的C函数库,再编译生成其它编译器。第4步,配置Glibc并编译生成Glibc的C函数库。第5步,再次配置和编译GCC源码,生成其它语言的编译器,如C++编译器等。52工具链代码结构53TARGET常用的值实际平台TARGET的值PowerPCp

1 / 78
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功