嵌入式Linux开发教程.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式Linux开发入门 郑灵翔 lxzheng@ Agenda 嵌入式系统开发模式 嵌入式Linux系统的构成 主要任务与流程 利用Skyeye仿真开发板 开发板使用 嵌入式应用程序开发与调试 嵌入式系统开发模式 最小硬件系统 嵌入式Linux系统的构成 BootLoader和嵌入式Linux 构建嵌入式Linux系统的主要任务 内核部分 内核裁剪编译 底层驱动开发 应用程序部分 构建基本的嵌入式Linux文件系统 应用程序开发与移植 嵌入式Linux系统的开发流程 建立交叉编译环境 Bootloader开发 Linux内核的裁剪 构造根文件系统 驱动移植/开发 应用程序移植开发和调试 实验:用skyeye运行嵌入式Linux 下载skyeye测试包 运行嵌入式Linux 自已动手创建嵌入式Linux 工具链:arm-linux-gcc-3.x /download/projects/toolchain/ 内核:linux-2.6.x /pub/linux/kernel/v2.6/ 文件系统: busybox v 1.x Linux内核裁减 系统类型设置 选择开发板类型 默认的内核命令行参数配置 Ramdisk设置 串口驱动配置 文件系统配置 网络驱动配置 其他驱动配置 默认的内核命令行参数配置 Linux内核裁减 DEMO 利用BusyBox构造根文件系统 根文件系统目录树结构 BusyBox简介 BusyBox编译与安装 构造根文件系统映像(将被加载为Initrd) SkyEye仿真 根文件系统目录树结构 BusyBox简介 嵌入式Linux中,最常用的一个软件工具包。(The Swiss Army Knife of Embedded Linux ) 集成了100多条Linux常用命令 代码优化,生成的可执行文件的大小通常只有几百K字节。 支持多种体系结构,支持静态或动态链接 构造根文件系统映像 参见教材P131~136(详述了所有实验操作步骤) 6.3.3 Busybox与根文件系统的构造 步骤 配置Busybox 编译安装Busybox 构造根文件系统 创建根文件系统映像文件 DEMO 开发板使用 Linux下的串口终端minicom U-boot使用 使用minicom连接开发板 设置环境变量(参见教材6.4.2小节P138) setenv 变量名 变量值 setenv ethaddr 11:22:33:44:55:66 setenv ipaddr setenv serverip 保存环境变量到flash saveenv 加载内核 在PC机上启动tftp服务(参见教材P77) copy zImage,initrd到tftp目录 通过minicom(串口终端)控制开发板,利用u-boot加载内核和initrd NFS文件系统 内核设置(参见6.6.3小节P161) 内核命令行(P128,162) root=/dev/nfs nfsroot=:/nfsroot ip=:::::eth0: rw console=ttyS0,115200 mem=64M PC机的NFS服务设置(P162) 构建嵌入式Linux系统的主要任务 内核部分 内核裁剪编译 底层驱动开发 应用程序部分 构建基本的嵌入式Linux文件系统 应用程序开发与移植 嵌入式应用程序开发步骤 交叉编译 arm-linux-gcc make CC=arm-linux-gcc 将应用程序加入文件系统 DEMO 嵌入式应用程序调试 PC机算法验证 嵌入式系统上利用gdbserver进行交叉调试 DEMO * * 形成根文件系统 指明启动内核加载镜像为可读写 rw 说明根文件系统所在的路径 root=dev 例:root=/dev/ram 强制指定用于启动内核时的所使用的内存数 mem=nn[KMG] 例:mem=64M 用于指定Initial Ramdisk的地址以及大小 initrd=initrd_start[,size] 例:initrd=0xa1000000, 0用于指定内核启动完成后第一个运行的init程序路径名 init=full_path 例:init=/linuxrc 内核启动时打印输出消息的设备。ttySn表示使用第n个串口输出。选项(options)用于定义串口配置。默认配置是9600n8。 console=ttySn[,options] 例:console=ttyS0, 115200 用户应用程序和文档目录 /usr 系统管理类命令可执行文件的存放位置 /sbin 系统日志和一些服务程序临时文件的存放目录 /var 临时文件目录,许多程序都需要用到此目录进行读写操作 /t

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档