1 / 130

嵌入式 Linux 起步

嵌入式 Linux 起步. 主讲人:孙天泽 www.farsight.com.cn. Outline. 认识并熟练使用 Linux 操作系统 了解并搭建嵌入式 Linux 初识 BootLoader 了解并编译 Linux 内核 编写和调试嵌入式 Linux 程序 编写 Linux 设备驱动程序. 体会. 享受. 回味. Outline of Lab. 安装 Linux 操作系统 交叉编译 编译并下载 U-Boot 编译并下载 Linux 内核 挂载 NFS 文件系统 编写 Linux 驱动程序. PART 1.

yama
Télécharger la présentation

嵌入式 Linux 起步

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 嵌入式Linux起步 主讲人:孙天泽www.farsight.com.cn

  2. Outline • 认识并熟练使用Linux操作系统 • 了解并搭建嵌入式Linux • 初识BootLoader • 了解并编译Linux内核 • 编写和调试嵌入式Linux程序 • 编写Linux设备驱动程序 体会 享受 回味

  3. Outline of Lab • 安装Linux操作系统 • 交叉编译 • 编译并下载U-Boot • 编译并下载Linux内核 • 挂载NFS文件系统 • 编写Linux驱动程序

  4. PART 1 认识并熟练使用Linux操作系统

  5. Linux简介 • 姓名: Linux • 生日: 1991 年10月 • 父亲: Linus Torvalds • 堂兄: UNIX • 国别: 芬兰 • 家庭住址:http://www.linux.org/ • 吉祥物 :

  6. Linux关键字点击 • 社团( Community) • 免费( Free ) • 开放(open ) • 易获得( available ) • 稳定( stable ) • 健壮( robust ) • GPL(General Public License ) • 软件( software )

  7. 常用网址

  8. Linux的安装 FOLLOW ME…

  9. Linux的启动过程

  10. Linux的基本命令 • ls 列出目录和文件 • cd 转换目录 • cp 复制文件 • rm 删除文件 • mkdir 创建目录 • rmdir 删除目录 • mv 移动文件 • man 获得帮助

  11. Linux的基本命令(2) • ps 列出进程 • df 检查文件系统空间占用情况 • du 显示磁盘空间的使用情况 • kill 杀死进程 • chmod 改变文件或目录的访问权限 • chown 改变文件或目录的属主和组 • chgrp 改变文件或目录所属的组 • info获得帮助

  12. Linux的基本命令(3) • pwd显示当前工作目录的绝对路径 • rpm 文件包管理 • tar 为文件和目录创建档案 • gzip 文件压缩 • clear 清屏 • grep指定文件中搜索特定的内容 • cat连接并显示指定的文件信息 • ln创建文件链接

  13. Linux的目录结构 • /bin该目录中存放Linux的常用命令 • /boot该目录下存放的都是系统启动时要用到的程序 • /dev该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,你可以访问这些外部设备,与访问一个文件或一个目录没有区别。 • /sbin该目录用来存放系统管理员的系统管理程序。

  14. Linux的目录结构(2) • /etc该目录存放了系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统等。 • /home如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该用户的主目录。 • /lib该目录用来存放系统动态连接共享库,几乎所有的应用程序都会用到该目录下的共享库。

  15. Linux的目录结构(3) • /lost+found该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在这里。 • /mnt该目录在一般情况下也是空的,你可以临时将别的文件系统挂在该目录下。 • /proc可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的。

  16. Linux的目录结构(4) • /root超级用户的主目录 • /tmp用来存放不同程序执行时产生的临时文件 • /usr用户应用程序和文件都存放在该目录下

  17. Linux的编辑器--vi • vi的基本使用方法 输入模式 命令模式

  18. vi--开始编辑 • 新增 (append)-- a从 光 标 所 在 位 置 後 面 开 始 新 增 资 料, 光 标 後 的 资 料 随 新 增 资 料 向 後 移 动。-- A从 光 标 所 在 列 最 後 面 的 地 方 开 始 新 增 资 料。 • 插 入 (insert) -- i从 光 标 所 在 位 置 前 面 开 始 插 入 资 料, 光 标 後 的 资 料 随 新 增 资 料 向 後 移 动。-- I从 光 标列 的 第 一 个 非 空 白 字 符 前 面 开 始 插 入 资 料。 • 开 始 (open)-- o在 光 标 所 在 列 下 新 增 一 列 并 进 入 输 入 模 式。-- O在 光 标 所 在 列 上 方 新 增 一 列 并 进 入 输 入 模 式。

  19. vi--删除与修改 • x删除光标所在字符。 • dd删除光标所在的列。 • r 修改光标所在字符,r後接著要修正的字符 • R进入取代状态,新增资料会覆改原先资料, 直到按[ESC]回到指令模式下为止。 • s删除光标所在字符,并进入输入模式。 • S删除光标所在的列,并进入输入模式。

  20. vi--退出命令 • <:q>不包存退出 • <:q!>不保存强制性退出 • <:w>保存编辑 • <:w filename>存入文件filename 中 • <:w! filename>强制性存入文件filename 中 • <:wq>(<:x>)保存并退出

  21. vi--光标移动命令 • <b>移动到当前单词的开始 • <e>移动到当前单词的结尾 • <w>向前移动一个单词 • <h>向前移动一个字符 • <j>向上移动一行 • <k>向下移动一行 • <l>向后移动一个字符

  22. vi--改变与替换操作命令 • <r>替换光标所在的字符 • <R>替换字符序列 • <cw>替换一个单词 • <ce>同<cw> • <cb>替换光标所在的前一字符 • <c$>替换自光标位置至行尾的所有字符 • <C>同<c$> • <cc>替换当前行

  23. vi--拷贝与粘贴命令 • </yw>将光标所在单词拷入剪贴板 • <y$>将光标至行尾的字符拷入剪贴板 • <Y>同<y$> • <yy>将当前行拷入剪贴板 • <p>将剪贴板中的内容粘贴在光标后 • <P>将剪贴板中的内容粘贴在光标前

  24. PART 2 了解&搭建 嵌入式Linux系统

  25. 嵌入式Linux系统简介 • 嵌入式系统开发已经进入32位时代,在当前的数字信息技术和网络技术高速发展的后PC Post-PC时代,嵌入式系统已经广泛的渗透到科学研究、工程设计、军事技术、各类产业和商业文化艺术、娱乐业以及人们的日常生活等方方面面中。随着国内外嵌入式产品的进一步开发和推广,嵌入式技术越来越和人们的生活紧密结合。

  26. 什么是嵌入式系统? 无处不在,融入生活

  27. 嵌入式系统定义 • 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 • MP3、PDA、手机; • DVD机、机顶盒; • 车载GPS系统、探测火星的机器人。

  28. 软件(操作系统/驱动程序/应用程序) 存储器 输入 处理器 输出 嵌入式系统与PC机

  29. 嵌入式产品内部机构

  30. 嵌入式系统与PC

  31. 嵌入式系统与PC (2)

  32. 嵌入式系统的特点 • 1)嵌入式系统低功耗、体积小,专用性强。嵌入式系统与PC机的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,能够把PC机中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化。 • 2)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。 • 3)嵌入式系统的硬件和软件都必须高效率地设计,系统要精简。操作系统一般和应用软件集成在一起。 • 4)对软件代码质量要求很高。应该尽最大可能避免死机的情况发生。 • 5)嵌入式系统开发需要专门的开发工具和开发环境。

  33. 典型的嵌入式操作系统 • Linux • uC/OS • Windows CE • VxWorks • Palm OS • QNX • Symbian How To Choice

  34. 嵌入式操作系统使用调查 Which OSes have been in your embedded systems during the past 2 years? Which will be used during the next two?

  35. 嵌入式操作系统使用调查 Actual and projected Linux use, over the last five years

  36. 嵌入式处理器使用调查 What CPUs were used in your embedded projects during the past two years? Which will be used during the next two?

  37. 开发工具调查 What development tools are you most likely to use?

  38. 开发板 (Target) 交 换 机 串口 客户机1 客户机2 Linux服务器(Host) 客户机3 客户机4 Host与Target Target是目标平台,比如ARM、MIPS、SuperH、PowerPC等。 是一个基于x86架构的计算机(Pentium4处理器、Athlon处理器等),即i386平台。

  39. GCC 交叉编译器 • GNU Binutils • GNU Binutils 的主要工具有两个,一个是连接程序ld,另外一个是汇编程序as。其主要目的是为GNU 系统,提供汇编和连接工具。 • GNU GCC • GNU GCC 就是上面提到的GCC,GCC 主要是为GNU 系统提供C 编译器。现在支持多种语言,这其中包括C/C++、Fortran、Java、Objective-C、甚至还有Ada。 • GNU GLibc • 用于定义系统调用和其它一些基本的函数调用。

  40. 交叉编译的过程

  41. GCC交叉编译器的生成 • 第1步,取得Binutils、GCC、Glibc 源码。 • 第2步,配置并编译Binutils 取得我们所需要的汇编和连接程序。 • 第3步,配置并编译GCC 源码生成GCC 编译器。一般是C 编译器首先生成,然后以这个为基础在结合下一步生成的Glibc 的C 函数库,再编译生成其它编译器。 • 第4步,配置Glibc 并编译生成Glibc 的C 函数库。 • 第5步,再次配置和编译GCC 源码,生成其它语言的编译器,如C++编译器等。

  42. 代码结构

  43. 设置环境变量 Export PROJECT=S3C2410TK Export PRJROOT=~/$PROJECT Export TARGET=arm-linux Export PREFIX=$PROJECT/tools Export TARGET_PREFIX=$PREFIX/$TARGET Export PATH=$PREFIX/bin:$PATH

  44. TARGET常用的值

  45. 交叉编译流程

  46. Step 1

  47. 安装内核头文件(1) $ cd include/asm-arm/ $ rm arch proc $ ln -s arch-s3c2410 arch $ ln -s proc-armv proc • proc-armo is for 26-bits ARM • proc-armv is for 32-bits ARM

  48. 安装内核头文件(2) • 配置内核 • make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig • ARCH 目标平台 • CROSS_COMPILE 交叉编译工具 • 保存后退出 • 上述操作成功后,会生成: linux-2.4.18/include/linux/version.h

  49. 安装内核头文件(3) • $ mkdir -p $TARGET_PREFIX/include • $ cp -r include/linux/ $TARGET_PREFIX/include/ • $ cp -r include/asm-arm/ $TARGET_PREFIX/include/asm • 与平台相关的汇编 • $ cp -r include/asm-generic/ $TARGET_PREFIX/include

  50. 刚才都做了些什么?

More Related