文章目录
驱动介绍
Hello World
1. 包含头文件
2. 驱动模块的入口和出口
3. 声明信息
4. 功能实现
完整代码
编译
第一种方法
第二种方法
编译成模块
第一步:Makefile
第二步:编译驱动
准备
配置环境变量
编译
加载驱动模块
发送到板子
卸载模块
编译驱动实践(usb转串口驱动)
任务需求
分析
之前也算是一直在学习嵌入式Linux的开发,裸机开发,uboot配置,系统编译,驱动开发,Qt开发, 这一套一知半解的看下来对于怎么开发Linux,还是一头雾水 ,没有一个明确的认知,所以对于这方面的知识打算从头重新建立一个完整的学习框架,这次更加去注重理论的理解和相通性。
驱动介绍
驱动分为四个部分
头文件
驱动模块的入口和出口
声明信息
功能实现
Hello World
1. 包含头文件
#include
#include
#include 包含宏定义的头文件
#include 包含初始化加载模块的头文件
2. 驱动模块的入口和出口
module_init(XXXX_init);
module_exit(XXXX_exit);
3. 声明信息
MODULE_LICENSE("GPL"); //声明模块拥有开源许可
4. 功能实现
static int hello_init(void)
{
printk("hello world\n"); // 在内核中无法使用c语言库,所以不用printf
return 0;
}
static void hello_exit(void)
{
printk("