摘要:
1.并发&竞争的介绍 说要防止并发访问共享资源,换句话说就是要保护共享资源,防止进行并发访问。 学习Linux 内核提供的几种并发和竞争的处理方法。 保护的是共享数据 1.1并发 并发就是多个“用户”同时访问同一个共享资源。 Linux 系统是个多任务操作系统,会存在多个任务同时访问同一片内存区域, 阅读全文
摘要:
#!/bin/sh while [ 1 ] do echo -e "wifi OFF" > /tmp/cardv_fifo sleep 1 echo -e "wifi ON" > /tmp/cardv_fifo done 阅读全文
摘要:
GPIO子系统介绍 gpio 子系统顾名思义,就是用于初始化 GPIO 并且提供相应的 API 函数,比如设置 GPIO为输入输出,读取 GPIO 的值等。gpio 子系统的主要目的就是方便驱动开发者使用 gpio,驱动 开发者在设备树中添加 gpio 相关信息,然后就可以在驱动程序中使用 gpio 阅读全文
摘要:
pinctrl子系统的作用介绍 在驱动中有没有更通用的方法,可以不涉及到具体的寄存器操作的内容呢? 》 pinctrl 子系统和 GPIO 子系统。 pinctrl 子系统主要用于管理芯片的引脚。 在驱动程序中我们需要手动设置每个引脚的复用功能,不仅增加了工作量,编写的驱动程序不方便移植,可重用性差 阅读全文
摘要:
1.DTC工具 scripts/dtc/Makefile文件 arch/arm/boot/dts/Makefile 2.DTS语法 2.1dtsi头文件 2.2设备节点 2.3设备树种的数据形式 compatible 属性 model 属性 status 属性 #address-cells 和#si 阅读全文
摘要:
分配和释放设备号存在的问题 alloc_chrdev_region unregister_chrdev_region 字符设备结构 cdev_init 函数 cdev_add 函数 cdev_del 函数 自动创建设备节点 mdev 机制 创建和删除类 创建设备 设置文件私有数据 阅读全文
摘要:
地址映射 ioremap iounmap IO内存访问函数 读操作 写操作 Kernel代码 Code #include #include #include #include #include #include #include #include #include #include #include 阅读全文
摘要:
字符设备注册 静态分配设备号 define宏定义MAJOR 200 register_chrdev(MAJOR , "chrtest", &test_fops) unregister_chrdev(MAJOR , "chrtest") 动态分配设备号 alloc_chrdev_region() un 阅读全文