1. ARM裸机开发和Linux系统开发的异同
相同点:都是对硬件进行操作
不同点:
有无操作系统
是否具备多进程多线程开发
是否可以调用库函数
操作地址是否相同,arm操作物理地址,驱动操作虚拟地址
2. Linux操作系统的层次
应用层(0-3G)
编程逻辑,使用gcc编译
内核层(3-4G)
编程机制,使用Makefile进行编译
硬件层
3.编写Linux内核模块
内核模块三要素:
入口,执行insmod安装命令时,执行入口函数相关操作
出口,执行rmmod卸载命令时,执行出口函数相关操作
许可证,遵循GPL协议
4. 编写内核makefile
5. printk的使用
应用层使用printf,内核层使用printk
printk格式用法与printf一致,除了有优先级
在linux内核中一共有8种打印级别(0 ~ 7),数字越小表示打印级别越高