文档详情

构建嵌入式Linux系统学习笔记.docx

发布:2017-09-18约8.71千字共9页下载文档
文本预览下载声明
概述Linux是一个类unix的操作系统。Linux是指最初由Linus Torvalds所撰写的操作系统内核,现在用于指一个完整的系统。嵌入式系统分类:小型:运算能力低的CPU,至少4MB的ROM(NOR Flash或者Nand Flash),8~16MB的RAM。中型:中运算能力的CPU,32MB或者更多的ROM(大多是Nor 或Nand Flash),64~128MB的RAM。大型:运算能力强大的CPU,或者多个CPU,大量的RAM以及ROM。时限:严格和宽松建立目标linux、决定系统组件。、设定及建立内核。、建立根文件系统。、设置引导软件与配置。基本概念主机/目标开发设置类型:、连接式设置、可抽换存储设备设置、独立式设置嵌入式Linux系统的一般架构:上层:应用程序(也包括各类库)。中层:linux内核(高层抽象层、文件系统、网络协议、底层接口层)。下层:硬件。系统启动过程:、引导加载程序:底层硬件初始化后直接跳到内核启动程序代码执行。、内核:为自己进行初始化,跳到start_kernel,初始化高层的内核功能、挂载跟文件系统以及启动init进程。、init进程:系统启动的第一个进程,其余进程都是这个进程的子进程。引导配置类型:、固态储存媒体设置、磁盘设置、网络设置系统的存储器配置:虚拟地址和物理地址。所支持的硬件处理器架构:ARM、AVR32、INTEL X86、M32R、MIPS、MOTOROLA 68000、POWERPC等。总线与接口:PCI/PCI-X/PCIe、ExpressCard、PC/104、SCSI、USB、I2C、I/O、串口、并口等等。开发工具构建项目工作空间:bootldr、bulid-tools、debug、doc、image、kernel、project、rootfs、sysapps、tmp、tools等。GNU跨平台开发工具链:编译器、汇编器、连接器、打包器、程序库和头文件等。Linux内核头文件。Binutils:as、ld、gasp、ar、nmu、objcopy、objdump、ranlib、readelf、size、strings、strip、C++filt、addr2line等。C程序库:glibc库。线程程序库:手动构建一个工具链此步骤比较繁琐,暂时不建议学习。还有一些其他的内容,不做详细的介绍,只是简单的了解即可。Eclipse:安装Eclipse安装免费的JVM安装Eclipce IDE for C/C++ Decelopers。执行EclipseEclipse ,首先设置工作目录。扩展Eclipse安装插件:Target Management工具集和Subclopse。使用Eclipse内核方面的考虑选择内核:和通透:网站下载。嵌入式内核:2.4系列内核:被2.6系列的内核取代了。2.6系列内核:使用稳定版本的压缩文件,使用git追踪内核的发展。设定内核配置:配置生成.config文件配置选项:make menuconfig后的内核配置选项功能的选择。配置设定方法:make config、make oldconfig、make menuconfig、make xconfig等。管理多种配置。编译核:构建内核Make ARCH=arm CROSS_COMPILE=arm-linux- zImage构建模块Make ARCH=arm CROSS_COMPILE=arm-linux- modules回到初始状态Make ARCH=arm CROSS_COMPILE=arm-linux- distclean目前可以直接用:make zIamge来直接生成内核和模块。安装内核模块:管理多个内核镜像安装内核模块实地测试:根文件系统的内容根文件系统的基本构造根文件系统的顶层目录:bin、boot、dev、etc、home、lib、media、mnt、opt、proc、root、sbin、sys、tmp、usr、var。bin、dev、lib、proc、sbin、usr都是不可或缺的。home、mnt、opt、root都是可以省略的。tmp、var也是可省略,但不建议,可能会危害某些软件运行。proc、sys极端情况下也可以省略程序库glibc组件:ld:动态连接器 libBrokenLocal:修正函数libSegFault:捕捉存储断错误 libanl:异步名称查询函数libbsd-compat:假程序库 libc:主要的c程序库函数libcrypt:密码学函数 libdl:动态载入共享目标文件libm:数学函数 libthread:线程函数librt:异步I/O函数 libut
显示全部
相似文档