韦老师S3C2440开发板学习笔记
空守一城
最苦的时候也是最酷的时候
展开
-
1. 字符设备驱动程序框架
第一个字符设备驱动程序1. 环境S3C2440开发板linux-2.6.22.62. 字符设备驱动框架原创 2019-08-28 22:36:06 · 206 阅读 · 0 评论 -
2. 第一个驱动程序点亮或灭掉所有的LED灯
1. 硬件连接图原创 2019-08-28 22:36:19 · 358 阅读 · 0 评论 -
3. 第二个驱动程序-普通方式读取按键输入
1. 硬件连接图查询电路可以得到输入引脚对应关系如下:EINT0/GPF0EINT2/GPF2EINT11/GPG3EINT19/GPG112. 驱动代码如下(second_drv.c)#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#includ...原创 2019-08-30 15:17:13 · 169 阅读 · 0 评论 -
5. 使用中断和异步通知机制读取输入按键值
1. 电路图2. 驱动代码(five_drv.c)#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/i...原创 2019-08-30 16:17:27 · 141 阅读 · 0 评论 -
4. 使用中断及poll机制读取输入按键值
1. 电路图2. 驱动源代码#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#i...原创 2019-08-30 15:46:25 · 241 阅读 · 0 评论 -
6. 使用原子操作打开驱动读取输入按键值
1. 电路图2. 实现原理采用原子操作打开驱动设备的接口如下:常用原子操作函数举例:atomic_t v = ATOMIC_INIT(0); //定义原子变量v并初始化为0atomic_read(atomic_t *v); //返回原子变量的值void atomic_inc(atomic_t *v); //原子变量增加1void atomic_dec(at...原创 2019-08-30 19:29:39 · 159 阅读 · 0 评论 -
7. 使用定时器去掉按键输入中产生抖动
1. 电路图2. Linux内核中使用定时器的步骤static struct timer_list xxx_timer; /* 定义全局的定时器 */init_timer(&xxx_timer); /* 初始化定时器 */buttons_timer.function = xxx_function; /* 设置超时调用函数 */buttons_timer.expires ...原创 2019-08-30 21:37:30 · 333 阅读 · 0 评论 -
S3C2440 LED驱动总结
1. 电路图2. 使用说明此驱动实现二种操作模式: 普通操作模式:./LedTest <led1/led2/led3> <on/off> 点亮或熄灭某个LED灯 掩码操作模式:./LedTest led_mask led_mask只能是:000、001、010、011....111 可以同时设置三个LED,对应1位置的LED被点亮,对应0位置熄灭...原创 2019-08-31 10:08:42 · 254 阅读 · 0 评论