从本篇开始,进入了linux内核及驱动的学习。
linux庞大而复杂,在嵌入式编程的过程中,会涉及大量的linux内核和驱动的相关知识。因此,对linux的学习也是一个循续渐近以及持之以恒的过程。需要不断积累,以及积累不断。
环境,参考书目等
我的环境如下,仅供参考:
软件环境:Mac + vmware Fusion + linux 16.04.6
编译环境:交叉编译工具链 gcc-4.6.4
硬件环境:华清fs4412开发板(cpu - samsung exynos4412(arm contex A9) )
学习书目:《Linux 内核设计与实现》《Linux设备驱动开发详解 基于最新的linux4.0内核》
条件
linux内核与驱动的学习是一项浩繁的工程,因此学习前必须具备一定的基础:
- 一定的硬件基础,对计算机架框,外设相关的知识,接口相关的运行逻辑等要了解。
- 有足够的C语言基础。
- 有多任务的思维
当然以上条件并不是硬性规定的,掌握到什么程度叫做基础好,这也因人而异。就个人的经验而言,其实有一定的了解就可以了,毕竟在学习Linux内核与驱动的过程中自然会对加深对以上的内容的掌握,这是一个相辅相乘的过程。
方法
- 内核学习重在思想及逻辑的学习。比如对Linux进程调度的机制的理解比掌握一个进程的创建重要。
- 驱动的学习重在框架。理解字符型设备框架和加载逻辑比掌握一两个驱动函数更重要。
- 实践,实践,实践,重要的事说三遍。
本篇做为今后所有涉及内核和驱动的相关笔记的目录入口,便于平常的翻阅。
目录
【嵌入式环境下linux内核及驱动学习笔记-(1-linux内核结构)】
【嵌入式环境下linux内核及驱动学习笔记-(2-linux内核模块)】
【嵌入式环境下linux内核及驱动学习笔记-(3-字符设备驱动详解)】
【嵌入式环境下linux内核及驱动学习笔记-(4-字符驱动实例)】
【嵌入式环境下linux内核及驱动学习笔记-(5-驱动的并发控制机制)】
【嵌入式环境下linux内核及驱动学习笔记-(6-内核 I/O)-阻塞与非阻塞】
【嵌入式环境下linux内核及驱动学习笔记-(7-内核 I/O)-多路复用】
【嵌入式环境下linux内核及驱动学习笔记-(8-内核 I/O)-信号驱动】
【嵌入式环境下linux内核及驱动学习笔记-(9-内核定时器)】
【嵌入式环境下linux内核及驱动学习笔记-(10-内核内存管理)】
【嵌入式环境下linux内核及驱动学习笔记-(11-设备树)】
【嵌入式环境下linux内核及驱动学习笔记-(12-设备树操作函数)】
【嵌入式环境下linux内核及驱动学习笔记-(13-中断管理)】
【嵌入式环境下linux内核及驱动学习笔记-(14)linux总线、设备、驱动模型之platform】
【嵌入式环境下linux内核及驱动学习笔记-(15)linux总线、设备、驱动模型之I2C总线】