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 · 282 阅读 · 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 · 344 阅读 · 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 · 254 阅读 · 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 update sudo apt install git bc bison fle原创 2020-08-20 14:03:58 · 814 阅读 · 0 评论