驱动开发
飞飞快跑
是我,没错
展开
-
关于tiny4412的重力传感器MMA7600实验以及解析
在tiny4412底板集成了重力传感器mma7600这是一款三轴加速度传感器以及角速度传感器(陀螺仪)linux内核中以及为我们写好了驱动代码,现在我们卸载该驱动然后写一个属于我们自己的mma7600驱动,mma7600该芯片支持的通信协议有很多,目前主流的都是使用IIC协议阅读这篇文章需要有一点的IIC,驱动框架,输入子系统作为知识铺垫我们就不介绍IIC协议的通信原理了,不了解的童鞋可以在CSDN上搜索,...原创 2020-09-07 12:51:46 · 321 阅读 · 0 评论 -
驱动开发-----定时器(蜂鸣器)-------------------基于tiny_4412
首先来说一下这个linux中的定时器,这个定时器会在特定的时间去调用特定的函数已达到实现某操作的目的,和我们的定时闹钟差不多下面来说下具体的参数代表的含义:jiffies:全局变量,用来记录自系统启动以来(也就是开发板上电以来)产生的节拍总数。启动时内核将该变量初始化为0;此后每次时钟中断处理程序增加该变量的值。每一秒钟中断次数HZ,jiffies一秒内增加HZ。系统运行时间 = jiffi...原创 2020-04-26 16:37:06 · 763 阅读 · 0 评论 -
构建一个platform总线模型
在此之前我们已经完成了自己创建一个总线并且在里面注册了dev和drv现在我们利用系统已经帮我们创建好的platform总线注册自己的platform_device和platform_driver这个过程其实和上一章的思路差不多在dev中我们要用 platform_device_register(&my_dev);注册到总线中并且实现platform_device结构体的方法st...原创 2020-04-24 00:44:45 · 201 阅读 · 0 评论 -
平台总线Bus介绍 并创建自己的总线bus,dev,drv
arm公司发布的arm坂本从arm9的2440,2410,cortexA8的S5pv210再到A9的4412,其实有些驱动已经做得很好了,没有必要再重复写,我们把以前的驱动继承然后拿过来用就好了,但是现在涉及到一个问题,不同的平台寄存器的地址是不一样的,但是操作是一样的,我们将相同的操作写成一个driver驱动,不同的device中写入不同的资源,这样我们的一个驱动drv就可以去同时适应多个平台的...原创 2020-04-23 20:01:06 · 1615 阅读 · 0 评论 -
驱动开发----中断下半部
中断下半部,什么是中断下半部呢?其实我们之前做的中断都是中断的上半部为什么需要中断下半部呢?原因是当我们在正常运行程序时候,如果与遇到中断会直接停止然后去执行中断程序,如果中断的程序用时很长,那么主程序将被一直阻塞不能执行,所以就需要把中断分成两部分,一个是上部分一个是下部分,上部分完成对全局变量的初始化,并且启动下半部分,而下半部分则执行耗时的操作,放在全局,在后台慢慢执行,不影响主程序。...原创 2020-04-19 18:05:27 · 412 阅读 · 0 评论 -
学嵌入式以来踩到的坑!!!持续更新
1.由于虚拟机所在环境为64位,而交叉编译工具和其他工具大部分是32位的,所以要安装32位的工具sudo apt-get install lib32ncurses52.make menuconfig出现 'make menuconfig' requires the ncurses libraries. sudo apt-get install ncurses-dev 3.make ex...原创 2020-04-18 19:34:45 · 477 阅读 · 0 评论 -
中断处理------文件IO模型 (四)异步通知 基于tiny4412开发板
之前说的几个模型都是主动去监控的,那么这个异步通知就和之前说的不一样,是被动的,当中断发生时候去通知CPU,CPU就会过来做这件事,然后昨晚再跳回去做原来的事...原创 2020-04-18 17:28:46 · 124 阅读 · 0 评论 -
中断处理------文件IO模型 (三)POLL机制 基于tiny4412开发板
使用了阻塞模型,虽然把资源浪费的问题给解决了,但是又出现了新的问题,当我们没有按下按键时候,进程休眠,如果不按下按键,进程就一直休眠一直阻塞在那里,效率很明显就低了所以就引出有一种叫做poll机制的模型...原创 2020-04-18 17:23:34 · 173 阅读 · 0 评论 -
中断处理------文件IO模型 (二)阻塞模型 基于tiny4412开发板
在上一章实现了简单的按键驱动,但是我们通过insmod到内核,按下按键以后,查看CPU资源运行情况,发现就是一个简单的按键驱动竟然用了20%多的资源,tiny4412可是一个4核的cpu!!!为神马会出现这种情况,我们来分析一下并且改进它...原创 2020-04-15 00:15:44 · 145 阅读 · 0 评论 -
中断处理------文件IO模型(一)按键驱动的实现基于tiny4412开发板
按键驱动其实和简单的字符设备驱动一样,只是用特定函数实现特定的功能,下面就来写一个简单的按键驱动。我们将一个普通的字符的设备驱动给拿过来#include <linux/module.h>#include <linux/init.h>ssize_t my_read (struct file *filp, char __user *buffer, size_t cou...原创 2020-04-15 00:02:36 · 187 阅读 · 0 评论