linux驱动
巧信
这个作者很懒,什么都没留下…
展开
-
Linux设备驱动开发(5.4.58)-3-NEWCHR
本文目标本文在上一节的基础上,采用可以指定主设备号,次设备号,手动申请dev_t和自动申请dev_t的API,封装一个全局的对象结构体并用private_data在方法间传递,减少全局变量使用,寄存器操作改用readl和writel,引入cdev、class、device对象。驱动里面的全局结构体是对象私有数据,fops是对象内部的操作函数,可以通过系统调用对外public。cdev、class、device应该是驱动对象的各种父类,用来抽象各种子系统的数据和行为,以便实现统一框架。以上是我个人理解原创 2020-08-23 00:53:18 · 313 阅读 · 0 评论 -
Linux设备驱动开发(5.4.58)-2-LED-CTRL
官方的io配置文档pinout.xyz关于r3b的物理地址官方说明重点是:If there is no kernel driver available, and a program needs to access a peripheral address directly with mmap, it needs to know where in the virtual memory map the peripheral bus segment has been placed. This varies原创 2020-08-22 00:51:01 · 394 阅读 · 0 评论 -
Linux设备驱动开发(5.4.58)-1-HELLO-WORLD
重要的点1、module_init和module_exit是宏,他的参数,即入口和出口函数,原型分别是:static int __init ldd1_init(void);static void __exit ldd1_exit(void);2、构造函数,要带主设备号,名字,对象方法。析构函数,要带主设备号,名字。ret = register_chrdev(LDD1_MAJOR,LDD1_NAME,&ldd1_fops);unregister_chrdev(LDD1_MAJOR,L原创 2020-08-21 03:09:45 · 286 阅读 · 0 评论 -
基于新版本Linux内核的树莓派3B+驱动开发环境搭建
搭建树莓派内核交叉编译环境参考文章官方仓库https://github.com/raspberrypi下载工具链https://github.com/raspberrypi/tools.git用gitee导入仓库(github慢,梯子麻烦),然后clone:git clone https://github.com/raspberrypi/tools ~/tools下载过程中准备环境sudo apt-get updatesudo apt install git bc bison fle原创 2020-08-20 14:03:58 · 900 阅读 · 0 评论