Linux 开发路线:
使用 linux—〉linxu 系统编程开发---〉驱动开发和分析 linux 内核
开始学 linux 内核:最好有三件宝物:《深入理解 linux 内核》《LINUX内核源代码情景分析》和源代码。 《深》是纲,《情》是目。最后深入代码
Linux 内核原理:比较浅显的《linux 内核设计与实现》;比较深入的《深入理解 linux 内核》;《Linux内核设计的艺术》
潜入时两个要点:CPU和操作系统
进入Linux开发殿堂的两个台阶:
- 嵌入式基本C程序开发及调试方法
- 基本驱动的概念和开发调试方法
mount到开发板:(开发板可以多次mount多个宿主机的目录)
假设宿主机的IP为192.168.1.12;在开发板上输入以下命令,将宿主机器的根目录mount到开发板上mnt目录
mount -o nolock 192.168.1.12:/ /mnt
执行:
cd /mnt
./iSmartAlarm
ARMLINUX不同于uClinux,因为启动了MMU,所以应用程序不能直接 读写物理地址(包括CPU寄存器<含GPIO端口、中断等CPU内部资源>、 MEMORY、外设芯片内部寄存器等),而必须借助与驱动的形式,切入 内核用ioremap来实现对这些物理地址的访问。
LINUX下的驱动有两种形式:
- MODULES形式的可动态加载的驱动(这是LINUX内核一个非常重要 的特点),我们测试用建议都用这种形式的,因为它调试就和普通应用程序一样,可以通过NFS mount的方式来调试,非常方便。
- 静态编译到内核里面的驱动