您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 嵌入式Linux开发教程
嵌入式Linux开发入门郑灵翔lxzheng@xmu.edu.cn郑灵翔厦门大学通讯工程系Agenda嵌入式系统开发模式嵌入式Linux系统的构成主要任务与流程利用Skyeye仿真开发板开发板使用嵌入式应用程序开发与调试郑灵翔厦门大学通讯工程系嵌入式系统开发模式最小硬件系统郑灵翔厦门大学通讯工程系嵌入式Linux系统的构成形成根文件系统BootLoader和嵌入式Linux郑灵翔厦门大学通讯工程系构建嵌入式Linux系统的主要任务内核部分–内核裁剪编译–底层驱动开发应用程序部分–构建基本的嵌入式Linux文件系统–应用程序开发与移植郑灵翔厦门大学通讯工程系嵌入式Linux系统的开发流程建立交叉编译环境Bootloader开发Linux内核的裁剪构造根文件系统驱动移植/开发应用程序移植开发和调试郑灵翔厦门大学通讯工程系实验:用skyeye运行嵌入式Linux下载skyeye测试包运行嵌入式Linux郑灵翔厦门大学通讯工程系自已动手创建嵌入式Linux工具链:arm-linux-gcc-3.x–内核:linux-2.6.x–文件系统:busyboxv1.x–=dev例:root=/dev/ram强制指定用于启动内核时的所使用的内存数mem=nn[KMG]例:mem=64M用于指定InitialRamdisk的地址以及大小initrd=initrd_start[,size]例:initrd=0xa1000000,0x01000000用于指定内核启动完成后第一个运行的init程序路径名init=full_path例:init=/linuxrc内核启动时打印输出消息的设备。ttySn表示使用第n个串口输出。选项(options)用于定义串口配置。默认配置是9600n8。console=ttySn[,options]例:console=ttyS0,115200默认的内核命令行参数配置郑灵翔厦门大学通讯工程系Linux内核裁减DEMO郑灵翔厦门大学通讯工程系利用BusyBox构造根文件系统根文件系统目录树结构BusyBox简介BusyBox编译与安装构造根文件系统映像(将被加载为Initrd)SkyEye仿真郑灵翔厦门大学通讯工程系根文件系统目录树结构目录内容/顶层根目录。其它目录都在这个根目录下•/bin基本命令可执行文件的存放位置•/sbin系统管理类命令可执行文件的存放位置•/devdev是设备(device)的英文缩写。这是个十分重要的目录。它包含了所有Linux系统中使用的外部设备文件。要注意的是这里的设备文件不是指设备的驱动程序,而是指访问外部设备的接口文件。•/usr用户应用程序和文档目录•/etc这个目录下存放系统的配置文件。•/liblib是库(library)英文缩写。这个目录用于存放系统动态链接库。所有动态链接程序都要用到这个目录下的库文件。•/proc这是Linux的一个特殊文件系统,主要用于存放内核及进程信息•/tmp临时文件目录,许多程序都需要用到此目录进行读写操作•/var系统日志和一些服务程序临时文件的存放目录郑灵翔厦门大学通讯工程系BusyBox简介嵌入式Linux中,最常用的一个软件工具包。(TheSwissArmyKnifeofEmbeddedLinux)集成了100多条Linux常用命令代码优化,生成的可执行文件的大小通常只有几百K字节。支持多种体系结构,支持静态或动态链接郑灵翔厦门大学通讯工程系构造根文件系统映像参见教材P131~136(详述了所有实验操作步骤)–6.3.3Busybox与根文件系统的构造–步骤1.配置Busybox2.编译安装Busybox3.构造根文件系统4.创建根文件系统映像文件DEMO郑灵翔厦门大学通讯工程系开发板使用郑灵翔厦门大学通讯工程系Linux下的串口终端minicom郑灵翔厦门大学通讯工程系U-boot使用使用minicom连接开发板设置环境变量(参见教材6.4.2小节P138)–setenv变量名变量值–setenvethaddr11:22:33:44:55:66–setenvipaddr192.168.0.2–setenvserverip192.168.0.1保存环境变量到flash–saveenv郑灵翔厦门大学通讯工程系加载内核在PC机上启动tftp服务(参见教材P77)copyzImage,initrd到tftp目录通过minicom(串口终端)控制开发板,利用u-boot加载内核和initrd郑灵翔厦门大学通讯工程系NFS文件系统内核设置(参见6.6.3小节P161)–内核命令行(P128,162)root=/dev/nfsnfsroot=192.168.0.1:/nfsrootip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0::eth0:rwconsole=ttyS0,115200mem=64MPC机的NFS服务设置(P162)郑灵翔厦门大学通讯工程系构建嵌入式Linux系统的主要任务内核部分–内核裁剪编译–底层驱动开发应用程序部分–构建基本的嵌入式Linux文件系统–应用程序开发与移植郑灵翔厦门大学通讯工程系嵌入式应用程序开发步骤交叉编译–arm-linux-gcc–makeCC=arm-linux-gcc将应用程序加入文件系统DEMO郑灵翔厦门大学通讯工程系嵌入式应用程序调试PC机算法验证嵌入式系统上利用gdbserver进行交叉调试DEMO
本文标题:嵌入式Linux开发教程
链接地址:https://www.777doc.com/doc-2517812 .html