一、bootloader
1. 对硬件的操作,需要看原理图、芯片手册。这需要一定的硬件知识,不求你能设计硬件,但是至少能看懂; 不求能看懂模拟电路,但是要能看懂数字电路:
《微机原理》《数字电路》
2. 芯片手册,英文。肯定会痛苦,不痛苦怎么能成长呢?
3. 对ARM体系处理器的了解, 汇编指令,异常模式、MMU。也就这3块内容需要你了解:
《ARM体系架构与编程》杜春蕾
4. 《嵌入式Linux应用开发完全手册》
二、内核:
想速成的人,先跨过内核的学习,直接学习怎么写驱动。
想成为高手,内核必须深刻了解。注意,我说的是了解,我没奢望去写出一个内核。
要对里面的调度机制、内存管理机制、文件管理机制等等有所了解。
推荐两本书:
1. 通读<linux内核完全注释>,请看薄的那本
2. 选读<Linux内核情景分析>, 想了解哪一块就读哪一节
三、驱动
<Linux设备驱动>,老外写的那本
<linux设备驱动开发详解>