李迟 著
参见:前言
本章介绍嵌入式Linux是什么,由哪些部分构成,该怎么学,以及本书使用的实验平台
注:入门路线
(使用ubuntu+qemu,另在实际板子(s3c2440或rk3188)上运行)
讲qemu以及vexpress-a9板子介绍,不讲qemu的命令选项
本章介绍ubuntu16.04安装的过程
(图解安装过程,添加说明)
(分类说明要安装的软件及作用,这是总述的,后面涉及时再重重一次)
本章讲解Linux系统的使用,虽然是基于ubuntu,但大部分内容也适用于其它Linux发行版本
(与后面内核驱动开发有关联)
coreutils 常见的、核心的命令
vim emacs sed awk 等
只简单提及,后面重点介绍binutils
tar zip
man --help -h等等
有趣的命令
unix格式、+x
for if等
PATH、LD_LIBRARY_PATH、locale,HOME、自定义变量等
(环境变量、/etc/文件配置(issue显示字符串、主机别名(lserver)))
deb包 apt-get install 源码编译
(讲如何慢慢积累命令行,没有基础不要紧,缺什么补什么)
本章描述开发环境的搭建,涉及到Windows和Linux系统的工具安装、使用。
原则上,哪些工具适合使用,就用哪些,不要只局限于某一个系统。提高工作效率才是王道。
(描述编写代码、编译代码、运行代码过程)
(source insight、notepad++、secureCRT)
(前面已经安装好Linux系统)
(固定好IP地址,设置好这些服务,本书一直会使用)
本章介绍Linux系统编译的方法,以及制作交叉编译器,并且给出适用性较强的Makefile模板。
(介绍makefile基础内容)
了解程序的生命周期十分重要,背后的原理虽然复杂,但了解这些原理,能大大提高“内功”,做到知其然,知其所以然。 有点复杂,有点难,希望读者能回过头来再重新读读本章
注:以printf带动系统调用这一过程 行文注意与后面串口驱动分析有衔接
应用程序开发包括的内容很多,本章只讲一些常见的模块,其它需要时再学,另外还涉及到编码风格,编程原则
原则:入乡随俗,三种风格 Windows格式、Camel格式、linux格式
本章讲述调试的方法,一般来说,调试就是用gdb进行,但是,还有很多种手段能减少程序出错。
注:从代码源码把控
针对gcc编译设置的警告
本章从较高层面讲述移植的过程,涉及的内容,最后分享作者的经验。
注:厂商提供有BSP包,直接使用
注:如何将helloworld放到系统里面
本章讲bootloader的移植,包括u-boot和coreboot,使用qemu模拟环境进行实验。
本章讲述Linux内核的移植。主要涉及内核配置、编译和加载的过程。
(与x86平台更新的联系和区别)
本章讲述根文件系统构建。
(注意说明与前面的linux目录的联系和差异)
(描述其它格式的images制作)
本章讲述Linux驱动的开发,Linux驱动有很多模块,只挑选一些基础的有代表性的例子进行讲解。 注:注意说明与前面章节的区别
注:使用open、write、read、close、ioctl接口
注:sys、proc文件系统驱动示例
注:使用板子做示例,配合芯片手册阅读代码
(说明为什么要使用git,本书代码、勘误也使用git。
公司会使用,多人协作
个人日常学习也可以使用
每个应用命令,都使用windows工具和linux命令行
)
(重要性、必要性、本章术语约定)
(本地仓库、远程仓库)
(填写账号和邮箱,建立仓库、克隆仓库、提交仓库、查看修改、撤销修改)
github gitlab bitbucket gitee
(介绍个人实际使用Git的经验)
(自行搭建本地git仓库(gitlab)、参与github开源项目、使用Gerrit)