Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
一个主设备号是如何支持多个次设备?
1 主次设备号 参考博客 字符设备驱动详解 主次设备号 注册 卸载字符设备驱动 创建设备节点 地址映射 2 次设备号介绍 1 在老的驱动程序里是不需要次设备号的 在老版内核中注册驱动用register chrdev 函数 只需要传入主设备号
嵌入式驱动开发
驱动开发
Linux
Linux 帧缓冲子系统详解:LCD介绍、framebuffer驱动框架、LCD驱动源码分析
1 LCD显示屏基础知识介绍 请看博客 嵌入式开发 S5PV210 LCD显示器 2 内核帧缓冲子系统 2 1 功能介绍 1 帧缓冲 framebuffer 是 Linux 为显示设备提供的一个接口 它把显示设备描述成一个缓冲 区 允许应用
嵌入式驱动开发
Linux
驱动开发
LCD
帧缓冲子系统
内核中时间相关的知识介绍
1 内核要解决的时间相关问题 1 如何度量时间差 如何比较时间 2 如何获取当前时间 3 如何将操作延迟指定的一段时间 4 如何调度异步函数到指定的时间之后执行 2 度量时间差 2 1 内核度量时间的原理 1 Soc有时间相关的硬件 比如定
《linux设备驱动程序第三版》
嵌入式驱动开发
单片机
嵌入式硬件
字符设备驱动详解(主次设备号、注册/卸载字符设备驱动、创建设备节点、地址映射)
1 主次设备号 1 主次设备号是内核用来索引设备的 每个主次设备号在内核中都是唯一的 每个注册的设备都有一个分配的主次设备号 2 同一个主设备号可以有多个从设备号 主设备是对应的驱动程序 次设备号对应设备文件所指的设备 一个Soc可能接同样
嵌入式驱动开发
驱动开发
Linux
运维
内核hwmon驱动框架详解以及海思芯片温度驱动分析
1 hwmon驱动框架介绍 hwmon即hardware monitoring framework 硬件监视框架 可以把温度传感器 风扇 电源管理等设备的驱动都利用hwmon框架去实现 在设备的归类上比较容易理解 2 hwmon驱动框架分析
嵌入式驱动开发
驱动开发
hwmon驱动框架
应用层通过/sys/class/gpio文件操作gpio口
1 内核gpio子系统介绍 应用层通过sysfs操作gpio的前提是内核中已经向gpio子系统注册了gpio资源 并且在 sys class 目录下可以看到gpio类 详细情况参考博客 2 6 35内核的gpio子系统详解 2 sys cl
嵌入式驱动开发
STM32
Linux
驱动开发
put_user()函数和get_usr()函数介绍
1 使用的场景 1 内核地址空间和驱动地址空间是隔绝的 不能使用memcpy 函数 必须使用专门的拷贝函数 2 在拷贝大量数据时使用copy to user 和copy from user 函数 拷贝单个数据时 比如某个int型变量 则优先
嵌入式驱动开发
驱动开发
Linux
内核中的位图介绍(DECLARE_BITMAP宏)
1 DECLARE BITMAP宏定义 define DIV ROUND UP x y x y 1 y 向上取整 define BITS TO LONGS nr DIV ROUND UP nr BITS PER BYTE sizeof lo
嵌入式驱动开发
内核
位图
设备节点如何与设备驱动关联
1 上层应用如何调用设备驱动 1 在linux中一切皆是文件 设备驱动程序对上层应用程序来说和普通文件没什么差异 2 上层应用程序通过设备节点来访问驱动程序 在驱动程序注册到内核后 用申请到的主次设备号来创建设备节点 2 向内核注册字符驱动
嵌入式驱动开发
驱动开发
Linux
进程的休眠与唤醒(等待队列)
1 进程休眠 1 进程有三种基本状态 就绪态 阻塞态 运行态 lt 1 gt 阻塞态 进程缺少除了CPU之外的某些资源 因此该进程不能被运行 被阻塞住了不能被CPU调度 lt 2 gt 就绪态 进程分配到了除CPU之外的所有资源 等待CPU
嵌入式驱动开发
Linux
运维
服务器
GD32F103搭建工程记录: cannot open source input file “RTE_Components.h“: No such file or director
搭建兆亿的 GDF103C8T6的工程的时候提示 报错 cannot open source input file RTE Components h No such file or directory 工程文件是 仿照stm32 去搭建的
嵌入式驱动开发
GD32
ESP8266 下载报错please check partition type 6 addr:3fd000 len:3000
问题现象 串口打印 ESP8266 12F 的错误如下 ets Jan 8 2013 rst cause 2 boot mode 3 7 load 0x40100000 len 23948 room 16 tail 12 chksum 0x
嵌入式驱动开发
IOT
hisi3516dv300芯片基于hwmon驱动框架的温度获取驱动源码分析
1 内核hwmon驱动框架 参考博客 内核hwmon驱动框架详解以及海思芯片温度驱动分析 2 驱动实现的效果 sys devices virtual hwmon hwmon0 pwd sys class hwmon hwmon0 sys d
嵌入式驱动开发
海思芯片系统开发
驱动开发
单片机
STM32
gpio子系统在sysfs中构建leds类
1 内核配置 CONFIG GPIO SYSFS y CONFIG GPIOLIB y 1 CONFIG GPIO SYSFS 决定sysfs是否支持gpio子系统 也就是能否在 sys class 目录下看到gpio类 2 CONFIG
嵌入式驱动开发
Linux
驱动开发
内核空间和应用空间的数据拷贝(copy_to_user & copy_from_user)
1 copy to user copy from user long copy to user void user to const void from unsigned long n long copy from user void to
嵌入式驱动开发
《linux设备驱动程序第三版》
驱动开发
Linux
驱动程序如何支持非阻塞读写操作
1 应用层指定非阻塞模式 fd open dev xxx O RDONLY O NONBLOCK 在open打开设备节点时 指定打开方式为非阻塞打开 O NONBLOCK 2 驱动代码感知当前操作方式 struct file unsigne
嵌入式驱动开发
c语言
开发语言
驱动开发
2.6.35内核的gpio子系统详解
1 内核gpio子系统介绍 1 1 gpio子系统为驱动程序提供的服务 1 系统中GPIO信息的管理 比如有多少个GPIO 每个GPIO的编号是什么等 2 GPIO的申请 释放 3 IO的输入 输出方向的设置 IO电平的输出或者输入设置 以
嵌入式Linux内核
嵌入式驱动开发
驱动开发
STM32
单片机
内核LED驱动框架讲解以及led设备注册示例代码
1 驱动框架介绍 1 内核中驱动部分维护者针对每个种类的驱动设计一套成熟的 标准的 典型的驱动实现 然后把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好 再把不同部分留出接口给具体的驱动开发工程师来实现 这就叫驱动框架 2 内核维护者在
嵌入式驱动开发
驱动开发
LED驱动框架
linux内核I2C子系统详解——看这一篇就够了
1 I2C通信协议 参考博客 I2C通信协议详解和通信流程分析 2 通过KXTF9 2050芯片分析I2C协议 参考博客 通过KXTF9 2050芯片分析I2C协议 3 I2C子系统框架 1 I2C子系统分为三层 I2C核心层 I2C适配器
嵌入式驱动开发
Linux
驱动开发
I2C
SPI协议详解(Standard SPI、Dual SPI和Queued SPI)
1 标准SPI 1 1 SPI接口的引脚 1 SCLK 时钟线 2 MOSI master output slave input 主设备输出 从设备输入 单向传输 3 MISO master input slave output 主设备输入
嵌入式驱动开发
单片机
嵌入式硬件
SPI协议