内核驱动基础
文章平均质量分 54
整理自己复习驱动及学习内核部分的内容
言xzZ義
爱孤岛新奇的东西,嵌入式,物联网都是最爱
展开
-
netlink学习
netlink原创 2023-03-06 20:39:47 · 603 阅读 · 0 评论 -
linux下详解/sys/kernel/debug/usb/devices
本文摘自USB-详解/sys/kernel/debug/usb/devices_华佗hans的博客-CSDN博客_/sys/kernel/debug/usb/devices有描述我们对应去查看usb的devices的设备信息的一些内容原创 2022-05-26 22:07:09 · 561 阅读 · 0 评论 -
linux下如何查看及调试gpio
dts中配置gpio为各种功能如gpio_keys,leds以及通用gpio输入输出,需要查看状态时,可以按照下面这样操作,以及进行gpio的调试。1.获取gpio状态实质上就是调用show函数。 命令可以直接打印出所有的GPIO口状态 cd /sys/kernel/debug/ cat gpio2.通过export的方式来调试GPIOecho ‘value’ > export//设置gpio寄存器值 cd sys/class/gpio echo x...原创 2022-05-25 22:44:22 · 9003 阅读 · 1 评论 -
linux驱动--3.linux中的设备树dts基础
参考到下面博客的内容:H3 Linux4.11内核设备树设备驱动开发1_jklinux的博客-CSDN博客_全志h3设备树H3 Linux4.11内核设备树设备驱动开发2_jklinux的博客-CSDN博客08 在设备树里描述platform_device_jklinux的博客-CSDN博客_device_property_read_bool在设备树里描述一个mydt的设备,此设备有多种属性及两个子节点,每个子节点也有多种属性.全志H3的设备树文件修改设备树的文本文件: arch原创 2022-05-21 16:04:58 · 396 阅读 · 0 评论 -
linux子系统的通信--通知链
在看到内核网络子系统部分时,涉及到了很多通用的应用部分,就比如此篇的 通知链机制。一、什么是通知链Linux内核中各个子系统相互依赖,当其中某个子系统状态发生改变时,就必须使用一定的机制告知使用其服务的其他子系统,以便其他子系统采取相应的措施。为满足这样的需求,内核实现了事件通知链机制(notificationchain)。通知链只能用在各个子系统之间,而不能在内核和用户空间进行事件的通知。组成内核的核心系统代码均位于kernel目录下,通知链表位于kernel/notifier.c中,对应的头文件原创 2021-09-29 12:07:31 · 164 阅读 · 0 评论 -
linux下驱动调试的方法
打印相关 printk:=========1)uboot设置参数:当中 set bootargs console=ttyS0在这个参数里面不加入这句话,在启动内核时,对应的加载的信息不会打印出来。2)内核当中是用printk打印...原创 2018-07-07 15:14:12 · 589 阅读 · 0 评论 -
linux framebuffer设备驱动,图像获取
在linux系统中,没有lcd驱动这种叫法,只有framebuffer设备驱动,也就是显存驱动,所以你是在内核驱动代码当中找不到直接lcd命名的文件夹。 这种驱动是用于实现提供应用程序的窗口图像的显示接口,如QT窗口程序的显示等。那下面实现这个显示接口,需要初始化下面的结构体,与linux的系统编程比较相似:struct fb_info 的一个对象表示一个framebuffer设备 struct ...原创 2018-07-06 04:10:35 · 1922 阅读 · 1 评论 -
linux下ubs驱动
#include <linux/init.h>#include <linux/module.h>#include <linux/usb.h>#include <linux/slab.h>#include <linux/usb/input.h>struct urb *myurb;struct input_dev *uk_dev...原创 2018-07-07 01:20:20 · 217 阅读 · 0 评论 -
08 orangepi 内核里控制IO口 及s3c2410的IO口控制 对比
在linux内核里mmu已经启用,不能直接访问物理地址.必须要把物理地址映射到一个虚拟地址上,然后通过该虚拟地址来访问原物理地址.物理地址就是硬件上安排好的地址,如配置寄存器的地址.void *ioremap(cookie,size) //函数用于把指定的物理地址映射到一个虚拟地址上. // cookie用于指定要映射的物理地址, size表示映射的大小范围 ...转载 2018-10-07 15:41:21 · 232 阅读 · 0 评论 -
modem拨号模块基本了解(一)
目前的常用的拨号模块有以下几种拨号方式:1.Gobinet拨号 GOBI 高通Gobi无线宽带芯片技术,只需一个模块即可支持多种移动宽带网络和众多移动运营商. 高通公司称全新的芯片将基于Gobi 4G LTE无线基带、MDM9615和MDM9215。这种技术可以在FDD和TDD网络下进行LTE连接,同时支持HSPA+和EV-DO网络、2G/3G网络。这意味着用户可以在本地使用高速4G LTE网络,在其他地方使用3G网络。Gobi平台在MDM芯片组的基础上还提供了软件增强层,这样可以使用不同技术..原创 2021-06-18 23:51:25 · 2224 阅读 · 2 评论 -
linux i2c设备驱动之触控芯片驱动简述
本博客参考了https://blog.csdn.net/jklinux/article/details/74561352 ,在之前基础上扩展现实中lcd的显示部分与触摸部分实际是分开的。我们可以形象的理解为:电容屏的触摸相当于在lcd屏上覆盖一个透明的矩阵键盘, 当用户按下时,可以获取用按下的坐标位置. 通常情况不管是电阻还是电容屏,现都使用一个触控芯片,用于处理用户的操作坐标及实现与SOC的坐标...原创 2018-07-06 05:03:53 · 2546 阅读 · 0 评论 -
一些设备文件的问题记录
1.usb设备会有5-1 以及一些设备信息后为4:0的问题DEVPATH=/devices/pci0000:00/0000:00:13.2/usb4/4-5 /devices/pci0000:00/0000:00:13.2/usb4/4-5/4-5:1.0 /devices/pci0000:00/0000:00:13.2/usb4/4-5/4-5:1.0/host4 /devices/pci...原创 2021-09-13 23:40:17 · 140 阅读 · 0 评论 -
uevent机制
uevent ( user space event) 。内核与用户空间的一种通信机制,也是基于netlink机制实现,例如 设备驱动模型,包括热拔插,包括tf卡,usb之类的参考到下面的博客:uevent机制 - andy_fly - 博客园嵌入式Linux——uevent机制:uevent原理分析_静祥阁-CSDN博客_ueventuenvet机制是什么? uevent机制到底做了什么工作?那些是值得去研究的在刚学习驱动程序的时候并没有使用uevent机制,也就是在程序中没有用原创 2021-09-13 21:01:41 · 290 阅读 · 0 评论 -
linux 内核基础编程
每天积累一点:开始完成清单积累1.内核源码编译2.内核模块3.自己的内核模块4.内核锁5.内核rcu机制6.netlink7.singnal8.neigbor9.arp原创 2021-09-01 23:10:44 · 56 阅读 · 0 评论 -
linux的通知链机制
linux中的各个子系统之间的消息的交流。参考下面这篇博客:https://blog.csdn.net/notbaron/article/details/80406872转载 2021-08-19 06:06:50 · 97 阅读 · 0 评论 -
linux 驱动中用到的一些结构体的说明
最近开始,重新回顾原来的驱动入门资料了。还是那些特别的结构体。想做个简单的总结一起一、字符设备驱动涉及的1.设备号类型dev_t在linux内核里用类型”dev_t”来表示一个设备号. 其实就是一个unsigned int.dev_t类型有32位数, 其中高12位用于存放主设备号,低20位用于存放次设备号.在”include/linux/kdev_t.h”里有提供设备号的操作宏:#define MINORBITS 20#define MINORMASK ((1U <原创 2021-08-10 22:30:32 · 1436 阅读 · 0 评论