Linux驱动开发
文章平均质量分 76
Linux驱动开发
韦东山
深圳百问网科技有限公司技术总监,毕业于中国科学技术大学电子、软件专业双学位,10余年嵌入式一线开发经验, 畅销书<<嵌入式Linux应用开发完全手册>>作者, 擅长ARM/MIPS等架构的Linux底层系统开发, 曾为多家知名培训机构特邀讲师,2011年陆续录制的工程师必看教程------韦东山系列Linux/Android视频,有口皆碑。累计学员10万+,当之无愧成为嵌入式培训领域的佼佼者。
展开
-
在Windows使用VSCode搭建嵌入式Linux开发环境
我们正在(2022.10.17开始)使用纯粹的Ubuntu环境开始教驱动入门,免费参与。原创 2022-10-27 17:10:10 · 14317 阅读 · 11 评论 -
在Ubuntu中搭建嵌入式Linux开发环境
如果网盘链接无效了,可以加QQ群联系我们:341014981我们也正在(2022.10.17开始)使用纯粹的Ubuntu环境开始教驱动入门,免费的,感兴趣者也加上面的群。如果你使用我们的Ubuntu镜像,那么可以略过前面第1~6章的内容,直接从第7章开始看。原创 2022-10-20 14:55:55 · 15232 阅读 · 9 评论 -
配置Buildroot支持boards
原创 2022-01-07 17:00:23 · 560 阅读 · 0 评论 -
Buildroot介绍
原创 2022-01-07 17:00:02 · 1020 阅读 · 0 评论 -
linux Kernel
原创 2022-01-07 16:59:39 · 1335 阅读 · 0 评论 -
Falsh Device
原创 2022-01-07 16:59:15 · 414 阅读 · 0 评论 -
ROOT FileSystem
原创 2022-01-07 16:56:30 · 531 阅读 · 0 评论 -
嵌入式系统开发简述
原创 2022-01-07 16:55:58 · 467 阅读 · 0 评论 -
基于SSD202D芯片的最小嵌入式Linux开发板来了 仅需99元 入门嵌入式Linux必选
原创 2021-12-02 11:53:56 · 3302 阅读 · 1 评论 -
Linux系统驱动之使用GPIO模拟I2C的驱动程序分析
使用GPIO模拟I2C的驱动程序分析参考资料:i2c_spec.pdfLinux文档Linux-5.4\Documentation\devicetree\bindings\i2c\i2c-gpio.yamlLinux-4.9.88\Documentation\devicetree\bindings\i2c\i2c-gpio.txtLinux驱动源码Linux-5.4\drivers\i2c\busses\i2c-gpio.cLinux-4.9.88\drivers\i2c\buss原创 2021-08-25 11:12:05 · 3230 阅读 · 3 评论 -
Linux系统驱动之完善虚拟的I2C_Adapter驱动并模拟EEPROM
完善虚拟的I2C_Adapter驱动并模拟EEPROM参考资料:Linux内核文档:Linux-4.9.88\Documentation\devicetree\bindings\i2c\i2c-gpio.txtLinux-5.4\Documentation\devicetree\bindings\i2c\i2c-gpio.yamlLinux内核驱动程序:使用GPIO模拟I2CLinux-4.9.88\drivers\i2c\busses\i2c-gpio.cLinux-5.4\d原创 2021-08-25 11:09:11 · 775 阅读 · 0 评论 -
Linux系统驱动之I2C_Adapter驱动框架讲解与编写
I2C_Adapter驱动框架讲解与编写参考资料:Linux内核文档:Linux-4.9.88\Documentation\devicetree\bindings\i2c\i2c-gpio.txtLinux-5.4\Documentation\devicetree\bindings\i2c\i2c-gpio.yamlLinux内核驱动程序:使用GPIO模拟I2CLinux-4.9.88\drivers\i2c\busses\i2c-gpio.cLinux-5.4\drivers\原创 2021-08-25 11:07:34 · 2273 阅读 · 0 评论 -
Linux系统驱动之编写设备驱动之i2c_client
编写设备驱动之i2c_client参考资料:Linux内核文档:Documentation\i2c\instantiating-devices.rstDocumentation\i2c\writing-clients.rstLinux内核驱动程序示例:drivers/eeprom/at24.c本节代码:GIT仓库中IMX6ULL\source\04_I2C\03_ap3216c_okSTM32MP157\source\A7\04_I2C\03_ap3216c_o原创 2021-08-25 11:04:44 · 2988 阅读 · 3 评论 -
Linux系统驱动之编写设备驱动之i2c_driver
编写设备驱动之i2c_driver参考资料:Linux内核文档:Documentation\i2c\instantiating-devices.rstDocumentation\i2c\writing-clients.rstLinux内核驱动程序示例:drivers/eeprom/at24.c本节代码:GIT仓库中框架:IMX6ULL\source\04_I2C\02_i2c_driver_exampleSTM32MP157\source\A7\04_I2C\02_i2原创 2021-08-25 11:02:51 · 515 阅读 · 0 评论 -
Linux系统驱动之I2C系统驱动程序模型
I2C系统驱动程序模型参考资料:Linux内核文档:Documentation\i2c\instantiating-devices.rstDocumentation\i2c\writing-clients.rstLinux内核驱动程序示例:drivers/eeprom/at24.c1. I2C驱动程序的层次I2C Core就是I2C核心层,它的作用:提供统一的访问函数,比如i2c_transfer、i2c_smbus_xfer等实现I2C总线-设备-驱动模型,管理:I原创 2021-08-25 11:00:55 · 735 阅读 · 1 评论 -
Linux系统驱动之通用驱动i2c-dev分析
通用驱动i2c-dev分析参考资料:Linux驱动程序: drivers/i2c/i2c-dev.cI2C-Tools-4.2: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/AT24cxx.pdf1. 回顾字符设备驱动程序怎么编写字符设备驱动程序?确定主设备号创建file_operations结构体在里面填充drv_open/drv_read/drv_ioctl等函数注册file_operatio原创 2021-08-25 10:59:23 · 1085 阅读 · 0 评论 -
Linux系统驱动之编写APP直接访问EEPROM
编写APP直接访问EEPROM参考资料:Linux驱动程序: drivers/i2c/i2c-dev.cI2C-Tools-4.2: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/AT24cxx.pdf本节源码:GIT仓库中doc_and_source_for_drivers\IMX6ULL\source\04_I2C\01_at24c02_testdoc_and_source_for_drivers\STM32原创 2021-08-25 10:56:01 · 578 阅读 · 0 评论 -
Linux系统驱动之无需编写驱动直接访问设备_I2C-Tools介绍
无需编写驱动直接访问设备_I2C-Tools介绍参考资料:Linux驱动程序: drivers/i2c/i2c-dev.cI2C-Tools-4.2: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/AP3216C:git clone https://e.coding.net/weidongshan/01_all_series_quickstart.git该GIT仓库中的文件《嵌入式Linux应用开发完全手册_韦东山全原创 2021-08-25 10:53:10 · 1111 阅读 · 0 评论 -
Linux系统驱动之I2C系统的重要结构体
I2C系统的重要结构体参考资料:Linux驱动程序: drivers/i2c/i2c-dev.cI2CTools: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/1. I2C硬件框架2. I2C传输协议写操作读操作3. Linux软件框架4. 重要结构体使用一句话概括I2C传输:APP通过I2C Controller与I2C Device传输数据。在Linux中:怎么表示I2C Con原创 2021-08-25 10:50:28 · 1000 阅读 · 0 评论 -
Linux系统驱动之SMBus协议
SMBus协议参考资料:Linux内核文档:Documentation\i2c\smbus-protocol.rstSMBus协议:http://www.smbus.org/specs/SMBus_3_0_20141220.pdfI2CTools: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/1. SMBus是I2C协议的一个子集SMBus: System Management Bus,系统原创 2021-08-25 10:47:33 · 6800 阅读 · 3 评论 -
Linux系统驱动之I2C协议
I2C协议参考资料:i2c_spec.pdf1. 硬件连接I2C在硬件上的接法如下所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻(放一个上拉电阻的原因以后我们再说)。2. 传输数据类比怎么通过I2C传输数据,我们需要把数据从主设备发送到从设备上去,也需要把数据从从设备传送到主设备上去,数据涉及到双向传输。举个例子:体育老师:可以把球发给学生,也可以把球从学生中接过来。发球:老师:开始了(start)老师:A!我要发原创 2021-08-25 10:42:51 · 1002 阅读 · 0 评论 -
Linux系统驱动之I2C视频介绍
I2C视频介绍参考资料:I2CTools:https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/1. I2C硬件框架在一个芯片(SoC)内部,有一个或多个I2C控制器在一个I2C控制器上,可以连接一个或多个I2C设备I2C总线只需要2条线:时钟线SCL、数据线SDA在I2C总线的SCL、SDA线上,都有上拉电阻2. I2C软件框架以I2C接口的存储设备AT24C02为例:APP:提出要求:把字符串"ww原创 2021-08-25 10:40:04 · 432 阅读 · 0 评论 -
Linux系统驱动之编写使用多buffer的应用程序
编写使用多buffer的应用程序本节视频编写好的程序,在GIT仓库里IMX6ULL\source\03_LCD\14_use_multi_framebufferSTM32MP157\source\A7\03_LCD\14_use_multi_framebuffer参考程序:应用基础课程里使用Framebuffer的精简程序IMX6ULL\source\03_LCD\14_use_multi_framebuffer\reference\07_framebufferSTM32MP157原创 2021-08-25 10:37:42 · 427 阅读 · 0 评论 -
嵌入式Linux系统驱动之单Buffer的缺点与改进方法
单Buffer的缺点与改进方法参考资料,GIT仓库里:内核自带的LCD驱动程序IMX6ULL驱动源码:Linux-4.9.88\drivers\video\fbdev\mxsfb.cSTM32MP157的驱动程序是基于GPU的,在Linux-5.4里没有mxsfb.c,可以参考另一个:Linux-5.4\drivers\video\fbdev\goldfishfb.c在视频里基于IMX6ULL的mxsfb.c来讲解,我们把这个驱动程序也放到GIT仓库里IMX6ULL\source原创 2021-08-25 10:36:47 · 489 阅读 · 0 评论 -
嵌入式Linux上机实验_基于IMX6ULL
上机实验_基于IMX6ULL参考资料,GIT仓库里:芯片资料IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULLRM.pdf《Chapter 34 Enhanced LCD Interface (eLCDIF)》IMX6ULL的LCD裸机程序IMX6ULL\source\03_LCD\05_参考的裸机源码\03_font_test内核自带的IMX6ULL LCD驱动程序驱动源码:Linux-4.9.88\drivers\原创 2021-08-25 10:34:58 · 729 阅读 · 0 评论 -
Linux系统驱动之编程_配置LCD控制器之寄存器操作_基于IMX6ULL
编程_配置LCD控制器之寄存器操作_基于IMX6ULL参考资料,GIT仓库里:芯片资料IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULLRM.pdf《Chapter 34 Enhanced LCD Interface (eLCDIF)》IMX6ULL的LCD裸机程序IMX6ULL\source\03_LCD\05_参考的裸机源码\03_font_test内核自带的IMX6ULL LCD驱动程序驱动源码:Linux-4.原创 2021-08-25 10:33:50 · 443 阅读 · 0 评论 -
Linux系统驱动之编程_配置LCD控制器_基于IMX6ULL
编程_配置LCD控制器_基于IMX6ULL参考资料,GIT仓库里:芯片资料IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULLRM.pdf《Chapter 34 Enhanced LCD Interface (eLCDIF)》IMX6ULL的LCD裸机程序IMX6ULL\source\03_LCD\05_参考的裸机源码\03_font_test内核自带的IMX6ULL LCD驱动程序驱动源码:Linux-4.9.88\d原创 2021-08-25 10:32:25 · 320 阅读 · 0 评论 -
Linux系统驱动之编程_配置引脚_基于IMX6ULL
编程_配置引脚_基于IMX6ULL参考资料,GIT仓库里:芯片资料IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULLRM.pdf《Chapter 34 Enhanced LCD Interface (eLCDIF)》IMX6ULL的LCD裸机程序IMX6ULL\source\03_LCD\05_参考的裸机源码\03_font_test内核自带的IMX6ULL LCD驱动程序驱动源码:Linux-4.9.88\drive原创 2021-08-25 10:29:23 · 556 阅读 · 0 评论 -
Linux系统驱动之LCD驱动程序框架_使用设备树
编程_LCD驱动程序框架_使用设备树参考资料,GIT仓库里:基于这个程序修改:IMX6ULL\source\03_LCD\03_lcd_drv_qemu_okSTM32MP157\source\A7\03_LCD\03_lcd_drv_qemu_ok参考:内核自带的示例驱动程序Linux驱动源码:drivers/video/fbdev/simplefb.c设备树:arch/arm/boot/dts/sun4i-a10.dtsi本节视频编写好的代码IMX6ULL原创 2021-08-25 10:28:16 · 516 阅读 · 0 评论 -
Linux系统驱动之分析内核自带的LCD驱动程序_基于IMX6ULL
分析内核自带的LCD驱动程序_基于IMX6ULL参考资料,GIT仓库里:IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULLRM.pdf《Chapter 34 Enhanced LCD Interface (eLCDIF)》IMX6ULL的LCD裸机程序IMX6ULL\source\03_LCD\05_参考的裸机源码\03_font_test内核自带的IMX6ULL LCD驱动程序驱动源码:Linux-4.9.88\driver原创 2021-08-25 10:27:28 · 1314 阅读 · 0 评论 -
Linux系统驱动之硬件_IMX6ULL的LCD控制器
硬件_IMX6ULL的LCD控制器参考资料,GIT仓库里:IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULLRM.pdf《Chapter 34 Enhanced LCD Interface (eLCDIF)》IMX6ULL的LCD裸机程序IMX6ULL\source\03_LCD\05_参考的裸机源码\03_font_test1. LCD控制器模块介绍1.1 硬件框图IMX6ULL的LCD控制器名称为eLCDIF(Enhanc原创 2021-08-25 10:24:11 · 1098 阅读 · 0 评论 -
Linux系统驱动之硬件_TFT-RGB接口LCD时序分析
硬件_TFT-RGB接口LCD时序分析参考资料,GIT仓库里:TFT-RGB LCD接口原理图:`IMX6ULL\开发板配套资料\原理图\Base_board\100ask_imx6ull_v1.1.pdf````STM32MP157\开发板配套资料\原理图\01_Base_board(底板)\100ASK_STM32MP157_PRO_V11_底板原理图.pdf`LCD数据手册(这2个文件是一样的):`IMX6ULL\开发板配套资料\datasheet\Base_boa原创 2021-08-25 10:09:20 · 964 阅读 · 0 评论 -
Linux系统驱动之最简单的LCD驱动_基于QEMU
最简单的LCD驱动_基于QEMU本节视频对应源码在GIT仓库中,位置如下(这2个文件是完全一样的):doc_and_source_for_drivers\STM32MP157\source\A7\03_LCD\02_lcd_drv_qemu\lcd_drv.c或:doc_and_source_for_drivers\IMX6ULL\source\03_LCD\02_lcd_drv_qemu\lcd_drv.c目前百问网主推的开发板是IMX6ULL、STM32MP157。但是也推出了一块虚拟的开原创 2021-08-25 10:03:53 · 1282 阅读 · 0 评论 -
Linux系统驱动之结合APP分析LCD驱动程序
结合APP分析LCD驱动程序本节视频对应源码在GIT仓库中,位置如下(这2个文件是完全一样的):doc_and_source_for_drivers\STM32MP157\source\A7\03_LCD\04_fb_test或:doc_and_source_for_drivers\IMX6ULL\source\03_LCD\04_fb_test1. openapp: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0--------------------原创 2021-08-25 10:06:00 · 290 阅读 · 0 评论 -
Linux系统驱动之上机实验_基于QEMU
上机实验_基于QEMU前提:安装了VMware,运行百问网提供的Ubuntu 18.04本节视频对应源码在GIT仓库中,位置如下(这2个文件是完全一样的):doc_and_source_for_drivers\STM32MP157\source\A7\03_LCD\03_lcd_drv_qemu_ok\lcd_drv.c或:doc_and_source_for_drivers\IMX6ULL\source\03_LCD\03_lcd_drv_qemu_ok\lcd_drv.c1. 下载、安装、原创 2021-08-25 10:05:00 · 1072 阅读 · 0 评论 -
Linux系统驱动之Framebuffer驱动程序框架
Framebuffer驱动程序框架1. 怎么编写字符设备驱动程序驱动主设备号构造file_operations结构体,填充open/read/write等成员函数注册驱动:register_chrdev(major, name, &fops)入口函数出口函数2. Framebuffer驱动程序框架分为上下两层:fbmem.c:承上启下实现、注册file_operations结构体把APP的调用向下转发到具体的硬件驱动程序xxx_fb.c:硬件相关的驱动程序实原创 2021-08-25 10:00:23 · 613 阅读 · 0 评论 -
Linux系统驱动之不同接口的LCD硬件操作原理
不同接口的LCD硬件操作原理参考资料:MIPI-DSI、MIPI-CSI、LVDS等接口解析:https://blog.csdn.net/u014470361/article/details/88891255ILI9488驱动芯片数据手册.pdf1. 应用工程师眼里看到的LCDLCD由一个一个像素组成:每行有xres个像素,有yres行,它的分辨率是:xres * yres。只要我们能控制任意一个像素的颜色,就可以在LCD上绘制文字、图片。1.1 像素的颜色怎么表示用红绿蓝三颜色来表示原创 2021-08-23 18:02:02 · 1498 阅读 · 9 评论 -
Linux系统驱动之层级中断控制器驱动程序编写
层级中断控制器驱动程序编写1. 层级中断控制器的重要函数和结构体1.1 回顾处理流程1.2 irq_domain的核心作用2. 硬件模型3. 编程3.1 alloc的递归处理3.2 irq_chip的递归处理参考资料:linux kernel的中断子系统之(七):GIC代码分析Linux 4.9.88内核源码Linux-4.9.88\drivers\gpio\gpio-mxc.cLinux-4.9.88\arch\arm\boot\dts\imx6ull.dtsiLinux 5.原创 2021-08-23 17:20:02 · 532 阅读 · 1 评论 -
Linux系统驱动之链式中断控制器驱动程序编写_linear方式
链式中断控制器驱动程序编写_linear方式1. 两种方式的对比2. 编程3. 上机实验参考资料:linux kernel的中断子系统之(七):GIC代码分析Linux 4.9.88内核源码Linux-4.9.88\drivers\gpio\gpio-mxc.cLinux-4.9.88\arch\arm\boot\dts\imx6ull.dtsiLinux 5.4内核源码Linux-5.4\drivers\pinctrl\stm32\pinctrl-stm32mp157.c原创 2021-08-23 17:17:01 · 285 阅读 · 0 评论 -
Linux系统驱动之链式中断控制器驱动程序编写
链式中断控制器驱动程序编写1. 链式中断控制器的重要函数和结构体1.1 回顾处理流程1.2 irq_domain的核心作用2. 硬件模型3. 编程参考资料:linux kernel的中断子系统之(七):GIC代码分析Linux 4.9.88内核源码Linux-4.9.88\drivers\gpio\gpio-mxc.cLinux-4.9.88\arch\arm\boot\dts\imx6ull.dtsiLinux 5.4内核源码Linux-5.4\drivers\pinctr原创 2021-08-23 17:15:47 · 429 阅读 · 1 评论