从本篇开始,进入了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总线】
    
   
 
