版本:v0.7.0
摘要
此文主要介绍的嵌入式Linux软件开发的概念。
2015-05-24
修订历史 | ||
---|---|---|
修订 0.7.0 | 2015-05-24 | crl |
|
版权 © 2015 Crifan, http://crifan.com
目录
摘要
此处简单介绍一下嵌入式Linux开发的基本知识。
嵌入式Linux开发的基本流程,其实之前在:
有了一些简单的介绍了。此处更加详细的解释一下,关于嵌入式Linux开发的方方面面。
典型的嵌入式Linux的开发,其最基本的流程是:
搭建环境,保证有交叉编译器可以使用,用于后续交叉编译。
移植uboot
修改更新uboot,在其中添加对应的功能支持,修复bug等等。
比如,修改其中的cmd_nand.c去添加新的其他nand flash方面的功能的支持等等。
移植,裁剪Linux kernel,之后再去交叉编译出所需要的uImage等系统镜像文件
编译内核期间,最常用的命令就是:
make menuconfig make uImage
关于make menuconfig,不了解的可以参考:【教程】什么是menuconfig和menuconfig的使用方法和技巧
需要注意的是,此处所说的制作文件系统,分两大步骤:
比如用Buildroot、Crosstool-NG或者其他工具,制作出自己的基本的文件系统的文件内容
再用专门的文件系统制作工具,去基于之前的文件系统的所有的文件内容,制作成对应的镜像文件。
比如用Yaffs2的工具制作出Yaffs2的文件系统镜像文件
根据自己所选择的根文件系统的类型不同,选择对应的不同的工具去制作对应的根文件系统。
典型的嵌入式中,存储设备往往都是用的Nand Flash,所以对应的文件系统的类型也是MTD类型的某个日志型的文件系统,比如:
用特定的工具去制作makeyaffs2image去制作yaffs2的文件系统镜像文件,其中内部制作过程涉及到,把Yaffs2的文件系统本身相关的一些数据,制作出来,放到一个page的oob的位置,
待后续写入此文件系统镜像文件期间,oob数据写入到对应的物理上的page的oob的位置,这样Yaffs2文件系统运行起来之后,就可以在oob的位置读取到对应的信息,可以正确的管理此文件系统了。
制作出来的文件系统镜像文件的名字,一般都是类似于:
TOOD:确认文件名是不是rootfs.arm.yaffs2???
TODO:把yaffs2_makeyaffs2image_support_2k_4k_8k.7z上传到自己的网站后,把链接贴到此处
TODO:抽空确认下面文件的名字是否正确!!!
有了对应的这些文件:
然后再去用烧录工具去将这些文件,烧录到目标开发板中,
然后再去用串口工具连接开发板,进行调试
调试Uboot是否正常运行,调试Linux内核是否工作正常等等。
如此,才是一个基本的,完整的嵌入式Linux开发流程。
此外,对于烧录过程,可以参考:【详解】嵌入式开发中固件的烧录方式
目录
摘要
之前有很多bootloader,不过现在用的最多的就是uboot。
主要介绍的内容有:
包括基本的编译命令:
make XXXX_config
另外,把之前自己对,uboot编译最后阶段的命令的详细解释,也(引用)过来:
摘要
嵌入式系统,免费开源的,用的比较广泛的,就属linux
目录
摘要
然后就衍生出一个问题:如何在线升级rootfs,详见:
摘要
在折腾Linux开发期间,往往会涉及到查阅Linux源代码。
传统的方式是,使用好用的工具,比如Source Insight去查看Linux源代码。
如果没有Source Insight的话,且方便上网,则可以借用在线的Linux源代码查阅网站去看代码。