ARM进阶笔记一
嵌入式课程体系(秦老师)
应用层:好学不好用(函数调用,API使用,通过哪个函数 实现)
底层 :好用不好学(硬件、芯片、汇编C语言、操作系统)
时间紧,任务重,重点不是具体知识点(书上会更详细),更注重路线图、框架,如何去学习
整个课程体系(层次):
工具:
1.C语言、Linux基础(开发工具:编程语言,编程开发环境、工具)
2.数据结构
应用层:
3.I/O操作
4.进程
5.网络通信
底层:
{要求:
(1)多动手
(2)理解:驱动工作相对于其他开发职位,编码量最少,平均每小时0.6行,因为大部分时间都在查资料、看datasheet、测试、验证
}
6.硬件(ARM硬件为驱动打基础,ARM体系结构、ARM处理器内核、ARM汇编指令集、嵌入式硬件平台接口开发。理论太抽象,注重实践~)
(1)寄存器、时序理解
(2)GPIO接口、中断接口、定时器
系统层:
7.系统移植(通用->专用,一般->具体)
(1)环境搭建
(2)Uboot移植
(3)内核移植
(4)文件系统移植
移植:通用->专用
通过裁剪,或者说条件编译~
8.驱动层:
字符设备(顺序读写)
块设备(随机读写)
网络设备(按数据包的方式读写)
{学习机制、框架
ARM:Exynos4412Cortex-A9硬件基础
Linux系统移植:OS操作系统层
驱动:在OS操作系统层面实现硬件设备的驱动(驱动两种加载方式:静态加载,需要重新编译内核;动态加载:因为Linux支持的设备越来越多~设备不断更新,静态加载的方式效率越来越低,所以新的设备驱动加载方式应运而生:动态加载,内核模块的概念、框架、机制)
}