
JZ2440
年纪青青
嵌入式软件工程师:单片机编程,电路设计,Linux,Qt,opecv计算机视觉
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于JZ2440自己编写4.3寸LCD驱动
简介 linux内核自带LCD驱动,这里我们自己从头写一个LCD驱动程序,编写APP的人只知道使用open、read、write······,并不清楚原理图或者寄存器,这接口函数最终调用的是我们自己在驱动中实现的驱动层open、read、write,这些代码与硬件息息相关。一般写驱动基本步骤就是: 定义主设备号 写一个文件操作集合 register_chidev进行...原创 2018-08-26 09:48:24 · 907 阅读 · 0 评论 -
基于JZ2440编写触摸屏驱动
简介 JZ2440开发板配套的是一款4.3英寸电阻触控屏,电阻触控屏原理很简单,就是尖锐物体在某一个点按下,上面触控薄膜导电,由于这个点举例起始点暂且规定00点,距离不同,电阻薄膜导电电阻不同,电压压降也就不同,原理就是通过判断XY两个方向轴与零点之间的电压差确定触控位置。内核触控驱动 内核自带触摸屏驱动,在s3c2440_ts.c这个文件,实现这个文件的主体框架就是...原创 2018-08-26 16:36:06 · 1068 阅读 · 0 评论 -
Linux输入子系统框架
输入子系统自己写的驱动程序,自己可以调用,我们自己写驱动的流程一般是,建立fops结构,使用register_chrdev在初始化函数中进行注册,在应用中使用open函数打开该设备。这种驱动不标准只能在公司内部,别人知道驱动用法的情况下才能使用,当我们使用QT等标准程序时,这类标准程序不能打开像我们这样的野驱动,我们应该让我们的驱动程序融入“标准”中去,linux提供的输入子系统输...原创 2018-08-23 08:11:54 · 355 阅读 · 0 评论 -
JZ2440开发板之LED支持lseek
驱动#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/device.h>#include <linux/delay.h>#include ...原创 2018-08-23 08:15:20 · 222 阅读 · 0 评论 -
基于JZ2440实现驱动互斥操作以及阻塞非阻塞操作
实现同一驱动不能被同时打开思路很简单,设置一个变量,打开时减一,如果另外程序再将其打开,数值变化,就并不能打开。下面看伪代码static int canopen=1;int xxx_open(){ if(--canopen!=0) { return -1; }else { 正常打开; }}void xx...原创 2018-08-23 08:18:21 · 176 阅读 · 0 评论 -
基于JZ2440实现linux驱动异步通信
按键驱动前期按键驱动无论是查询、中断、poll都是采用应用程序主动查询的方式,能不能有一种按键按下,驱动告诉应用程序该查询的机制呢?那是肯定的,类似于系统编程的信号机制。这里需要解决核心问题: 信号发出者 信号接收者 信号怎么发建立一个异步通信结构体该结构体存储相关信息static struct fasync_struct *button_fasync;建立系...原创 2018-08-23 08:19:45 · 257 阅读 · 0 评论 -
基于JZ2440的LED平台驱动写法
驱动分层分离 在前面介绍的输入子系统中,核心层input.c,设备层button.c包含硬件相关代码,软件层cdev.c纯软件处理部分。 linux驱动中有很多类似的驱动形式,例如总线驱动platform平台设备模型 platform.c属于核心层级别,设备层device包含硬件相关代码,driver层包含驱动层相关代码属于比较固化稳定的软件代码,设备发生改变只要改变设备层代码...原创 2018-08-23 22:53:23 · 340 阅读 · 0 评论