自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 VS Code Remote SSH配置

1.下载vscode remote ssh插件2.安装ssh并生成私钥windows可通过git来安装ssh从git官网安装git客户端,一路下一步之后,鼠标右键,点开git bash配置你的git用户名和邮箱git config --global user.name “yuzhenrong“git config --global user.email “[email protected]”生成私钥ssh-keygen -t rsa -C “[email protected]

2020-11-22 03:25:32 2439

原创 中断控制器和Linux中断子系统

中断对于cpu来说扮演着举足轻重的角色,从软硬件层面涉及面广,因此流程相对也比较复杂。硬件层面涉及到arm的gic中断控制器以及CPU内部扩展的gpio中断控制器,外设利用中断资源硬件设备,软件层面涉及和架构强相关的异常处理代码,linux为屏蔽硬件涉及差异搞出来的中断子系统。以下从各个层面对中断进行展开讨论。一.中断体系架构中断从软硬件上来分层大致可以分成四层,概述如下:1.硬件连接层:普通外设连接到中断控制器,中断控制器连接到处理器核的IRQ和FIQ脚,对于处理器来说,中断控制器和普通外设一样,

2020-10-30 01:32:39 379

原创 linux内核regmap机制

从linux 3.1版本开始,内核引入一种新的机制,把i2c/spi/irq等读写接口统一,这一招可以避免让驱动开发者自己构建msg结构体,调用对应总线发送函数进行通信,让驱动代码的编写更简洁且易行。新瓶子装了旧酒,只是把构建通信消息结构体的这一流程进行封装,但是也让人耳目一新,喜闻乐见,乐于尝试。内核维护者们还是很为开发者们着想的。重要的核心层代码路径:regmap.c作为核心层提供统一接口regmap-i2c.c/regmap-i2c.c/regmap-irq.c作为各自总线的核心层提供接口给驱动

2020-10-23 01:11:51 369

原创 linux驱动设备匹配流程

linux驱动模型是分成三个部分的,设备(结构体device),驱动(结构体device_driver),总线(结构体bus_type),这个模型管理着linux的驱动,让他们在开机之后能正常驱动硬件有序的干活。这一切需要从一棵树讲起,我说的这棵树就是我们常说的dts(device tree source),搞懂搞透设备树是我们可以正确开发硬件驱动的前提,因为设备树是配置板级信息的地方。我们所说的设备树起源于openfirmware,所以linux关于设备树的接口都是以of开头的,存放这些核心API的源代

2020-09-02 03:04:00 2572 1

原创 添加sysfs文件节点调试驱动

驱动调试过程中我们经常需要借助adb或者串口动态控制设备,在sysfs中添加一个文件节点用来调试是一个十分方便调试的方法。一下介绍下添加方法:1.定义kobject目录和device_attributestatic struct kobject *xxx_deg;static struct device_attribute xxx_deg_attrs =__ATTR(xxx_debug, 0200, NULL,xxx_store);//处于对权限的限制,注意这里需要把权限设置为不可写,否则内核在编

2020-08-20 01:47:55 770 1

原创 linux i2c通信架构中的重要结构体

linux中i2c子系统包含i2c核心层,i2c主机驱动层,i2c设备驱动层i2c核心主要是提供了主机驱动的注册/注销方法,i2c通信方法(alogrithm),以及上层的与具体适配器硬件无关的代码以及探测设备,检测设备地址的上层代码,代码文件目录:kernel/drivers/i2c/i2c-core.ci2c主机驱动层是i2c的主设备程序,是i2c适配器的实现代码,适配器是受CPU直接控制的,一般直接集成在CPU内部,因此这部分代码是cpu芯片厂家去实现的。如果板子上的硬件i2c资源不够用的时候,用

2020-06-20 22:25:53 249

原创 基于android8.1(kernel4.4)添加字符设备驱动

本文是基于android8.1的rockchip平台添加一个字符型设备驱动,此设备有四个可读写的寄存器,将其命名为virtualio,详细添加步骤如下,具体代码见最后网盘分享1.kernel drivers目录新建virtualio目录2.在virtualio目录新建virtualio.h和virtualio.c以及编译需要用到的Kconfig和Makefile文件;3.在virtualio.h中定义需要用到的数据结构4.在virtualio中添加设备驱动的相关函数4.1:定义设备操作函数集

2020-06-10 01:53:52 682

原创 android源码编译报错

prebuilts/misc/linux-x86/bison/bison: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory解决方法:1.ubuntu64位系统,所以安装32位的库,apt-get install lib32stdc++6*结果:报错2. apt-get install g+±multilib结果:解决欢迎使

2020-06-01 00:11:29 220

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除