S5PV210
文章平均质量分 87
LouisGou
我很懒,什么都没有写
展开
-
platform(二)应用实例解析
前面我们已经学习了platform设备的理论知识Linux 设备驱动开发 —— platform 设备驱动 ,下面将通过一个实例来深入我们的学习。一、platform 驱动的工作过程 platform模型驱动编程,需要实现platform_device(设备)与platform_driver(驱动)在platform(虚拟总线)上的注册、匹配,相互绑定,然后再...原创 2018-08-08 20:46:45 · 1320 阅读 · 0 评论 -
platform总线匹配设备和驱动有两种方法
内核版本:Linux-3.10.46platform的mach函数如下:/** * platform_match - bind platform device to platform driver. * @dev: device. * @drv: driver. * * Platform device IDs are assumed to be encoded like thi...原创 2018-07-12 23:22:40 · 1956 阅读 · 0 评论 -
内核驱动 - 混杂设备驱动 + 中断处理函数
一、概念二、逻辑图三、Misc_key 代码下载点击打开链接key.c#include <linux/module.h>#include <linux/device.h>#include <linux/miscdevice.h>#include <linux/interrupt.h>#include <linux/init.h>...原创 2018-03-28 21:04:11 · 240 阅读 · 0 评论 -
设备驱动 - Led
LED驱动程序点击打开链接led.c#include <linux/module.h>#include <linux/device.h>#include <linux/init.h>#include <linux/cdev.h>#include <linux/fs.h>#include <linux/io.h>#i...原创 2018-03-28 19:28:33 · 374 阅读 · 0 评论 -
内核驱动 - TTY架构
一、TTY架构原创 2018-04-03 20:41:10 · 315 阅读 · 0 评论 -
内核驱动 - Platform bus平台总线
一、概念Platform bus平台总线,是一种虚拟总线,采用总线的模型对设备与驱动进行管理,提高程序的可移植性。Platform bus平台总线 驱动和设备匹配方法:1. 通过id_table(芯片型号)进行匹配,但是大多数设备都没有id_table(芯片型号)2. 通过设备->name 与 驱动->name进行匹配二、平台设备平台设备使用struct platform_device...原创 2018-04-02 21:50:21 · 655 阅读 · 0 评论 -
内核驱动 - 总线设备驱动
一、总线设备驱动模型二、总线1、总线描述在 Linux 内核中, 总线由 bus_type 结构表示,定义在 <linux/device.h>struct bus_type {const char *name; /*总线名称*/int (*match) (struct device *dev, structdevice_driver *drv); /*驱动与设备的匹配函数*/………}i...原创 2018-04-02 21:05:23 · 414 阅读 · 0 评论 -
内核驱动 - 阻塞型驱动
1、定义“等待队列头部” wait_queue_head_t key_q; 2、初始化“等待队列头部” init_waitqueue_head(&key_q);3、等待事件发生 wait_event(key_q, key_num);4、唤醒等待事件 wake_up(&key_q);查询按键状态key.c#include <linux/module.h&...原创 2018-04-01 13:29:05 · 345 阅读 · 0 评论 -
内核驱动 - 内核定时器
一、概念内核定时器是内核用来控制在未来某个时间点(基于jiffies当前时间)调度执行某个函数的一种机制,被调度的函数是异步执行的,类似于一种“软件中断”,而且是处于非进程的上下文中,所以调度函数需要遵循以下规则:1) 没有 current 指针、不允许访问用户空间。因为没有进程上下文,相关代码和被中断的进程没有任何联系。2) 不能执行休眠(或可能引起休眠的函数)和调度。3) 任何被访问的数据结构...原创 2018-03-31 15:09:07 · 356 阅读 · 0 评论 -
驱动模块加载、卸载遇到的问题总结
1、rmmod: chdir(/lib/modules): No such file or directory 解决方法1.创建 /lib/modules/$(uname -r) 空目录就行了2.使用如下源码生成rmmod命令,就可以没有任何提示的卸载ko模块了[luther.gliethttp]#include <stdio.h>#include <stdlib.h&g...原创 2018-03-30 22:24:25 · 1737 阅读 · 0 评论 -
内核驱动 - 中断分层技术
一、背景Linux系统处理中断响应时,如果有新中断产生,Linux系统对新中断的处理方法与正在处理的中断类型有关,分为慢中断、快中断两种。慢中断:Linux处理慢中断时,中断总开关是打开的,允许其他中断产生。即会产生中断嵌套 如,Linux正在处理串口慢速中断,此时网卡产生中断,则CPU会转去处理网卡中断,等到网卡中断执行完毕之后继续执行串口中断; 如果,...原创 2018-03-30 21:54:37 · 374 阅读 · 0 评论 -
freetype 安装+使用
freetype-2.4.10安装包下载地址:http://download.csdn.net/download/jerrygou/10249543一、PC 机安装+使用freetype1. 解压 tar xjf freetype-2.4.10.tar.bz22. 配置 ./configure3. 编译 make4. 安装 mkae install会自动将freetype的所有头...原创 2018-02-11 14:58:24 · 2862 阅读 · 0 评论 -
Busybox 设置登录用户名、密码
一、配置Busybox 二、设置/etc/init.d/rcS文件 添加 /bin/login三、设置/etc/inittab不需要登录:::respawn:-/bin/sh需要登录:::respawn:/sbin/getty -L ttyAM0 115200 vt100四、添加/etc/nsswitch.conf、/原创 2018-01-15 19:58:31 · 8302 阅读 · 1 评论 -
Enable Loadable module support
Enable Loadable module support(在最顶层目录)可加载模块支持---Enable loadable module support打开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安装在/lib/modules/中[*]Forced module loading允许强制加载模块[]Module unloa...原创 2018-08-18 21:31:21 · 1576 阅读 · 0 评论