alloc_chrdev_region()proc/devices新增条目alloc_chrdev_region()函数不会新创建生成新的文件而是会在/proc/devices文件中添加新的条目244表示自动分配的主设备号后续跟着的是alloc_chrdev_region()函数的入参#defineLED_DEVICE_NAMEled-proc/devcies// /proc/devices file, devid namealloc_chrdev_region(led.devid,led.minor,1,LED_DEVICE_NAME);class_create()/sys/class/classNameclass_create()函数创建一个设备类将会在/sys/class/路径下生成与入参类名一致的文件如示例中创建生成的/sys/class/led-class文件#defineLED_CLASS_NAMEled-class// /sys/class/led-class/led-devclass_create(THIS_MODULE,LED_CLASS_NAME);device_create()/dev/devName、/sys/class/className/devNamedevice_create()函数创建一个class下的设备#defineLED_DEV_NAMEled-dev// /dev/led-devdevice_create(led.led_class,NULL,led.devid,NULL,LED_DEV_NAME);modprobe moduleName/sys/module/moduleNamemodprobe leddriver.ko命令执行后在/sys/module路径下生成相应模块的文件夹/sys/module/moduleNameplatform_driver_register()/sys/module/moduleName/drivers/pdrv-driver-name使用platform_driver_register()完成platform_driver在platform总线的注册注册完成后在/sys/module/moduleName/drivers文件中添加相应的驱动名称即pdrv-driver-name。staticconststructof_device_idled_of_match[]{{.compatiblezhy,leds,},{},};staticstructplatform_driverled_driver{.probeled_probe,.removeled_remove,.driver{.nameled_paltform_driver,.of_match_tableled_of_match,},};platform_driver_register(led_driver);gpio_request()/sys/bus/platform/drivers/gpioLable使用gpio_request()完成gpio子系统的注册函数执行之后在/sys/bus/platform/drivers路径下添加相应的gpio lable文件夹gpio_request(led.gpio,led-gpio);platform_device_register()/sys/devices/platform/deviceName.deviceId使用platform_device_register()完成platform_device在platform总线的注册完成注册后将会在/sys/devices/platform路径下相应的设备文件夹如果只有一个该设备可以赋值xxx_device.id -1那么生成的设备文件夹的名称即为xxxxxx为struct platform_device xxx_device实例的结构体成员name即xxx_device-name如果不止一个该设备可以赋值xxx_device.id num那么生成的设备文件夹的名称即为xxx.num。// struct resource为设备的寄存器信息structresourcexxx_resource[]{[0]{.startSTART_PHYSICAL_ADDR0,// 起始地址以及终止地址均是实际的物理地址.endEND_PHYSICAL_ADDR0,// 地址以字节为单位.flagsIORESOURCE_MEM,},[1]{.startSTART_PHYSICAL_ADDR1,.endEND_PHYSICAL_ADDR1,.flagsIORESOURCE_MEM,},};structplatform_devicexxx_device{.namexxx,// 用于sysfs文件的创建以及与驱动的匹配.id-1,// 如果只有一个设备赋值为-1若有多个设备应设置不同的值此时该值也将用于sysfs文件的创建.resourcexxx_resource,.num_resourcesizeof(xxx_resource)/sizeof(structresource),.dev{.releasexxx_release,// 一般情况下不需要自定义}};staticint__initxxx_device_init(void){returnplatform_device_register(xxx_device);}module_init(xxx_device_init);设备树/sys/firmware/devicetree/base/sys/devices/和/sys/bus设备树中所有节点的信息都会按层次结构存放在/sys/firmware/devicetree/base文件夹下/proc/device-tree符号链接也是指向该路径。/sys/devices/和/sys/bus路径下也会根据设备树生成相应的文件这些都是注册过platform_device的如果使用platform总线的话platform device侧的代码一般就不需要再开发了led_classdev_register()/sys/devices/soc0/led/leds/led classdev nameled_classdev_register()负责完成led类设备的注册其完成后会创建生成/sys/devices/soc0/led/leds/led classdev name文件夹在该文件夹下可以通过想brightness、trigger等文件写入相应的值实现对led相应的控制。led-cdev.nameled--1;led-cdev.brightnessLED_OFF;led-cdev.max_brightnessLED_FULL;led-cdev.brightness_setled_brightness_set;led-cdev.brightness_set_blockingled_brightness_set_blocking;led_classdev_register(pdev-dev,led-cdev);如果对你有帮助欢迎点赞收藏有相关问题也可以评论讨论
企业数字化 ERP 产品动态
相关推荐
vercel-optimize - candidates 候选门控
将可观测性信号转化为调查候选的确定性阈值表达式。纯 JS,无 LLM。阈值位于 lib/gates/*.mjs。
门控总数:15。预算上限:MAX_CODE_CANDIDATES 6。门控版本:1.8.0。
门控
build_minutes_fanout
阈值:构建分钟占… · 2026/9/27 21:53:19
离线语音转写V8.3版本技术实测:本地大模型 ASR 方案能否断网跑? 离线语音转写技术实测:本地大模型 ASR 方案能否断网跑?原创 技术实测基于 Qwen3-ASR 本地大模型2026 阅读约 8 分钟摘要:过去三年在线 ASR 是默认选择,但数据合规、网络限制、长期成本三大压力下,本地离线转写正在回… · 2026/9/27 21:53:19
bat 0.26.1 Windows x64 下载:ZIP文件与终端预览示例 bat 0.26.1 Windows x64 下载 官方发行页
本文整理 bat 0.26.1 的 Windows x64 MSVC 压缩包。备用入口经草料提示页进入夸克,点击“继续访问”后查看文件;实际登录与下载要求以页面为准。
文件信息
文件名:bat-v0.26.1-x86_64-pc-windows… · 2026/9/27 23:01:19
硬枫木儿童成品家具 环保上下床带护栏 上海柚至臻木制品销售门店 随着国内居民消费升级与健康家居意识觉醒,原木成品家具行业正迎来快速增长阶段,越来越多的家庭在装修选家具时,优先选择天然原木材质替代人工板材,尤其针对有孩童的家庭,对原木成品家具的环保性、安全性、实用性都提出… · 2026/9/27 23:01:19
你的Python项目为什么越写越乱?答案在这 乱从“随手”开始很多人建项目时,脑子一热就敲下python main.py,然后所有逻辑都往main里塞。函数名用do_something,变量叫data1、data2,文件夹只有根目录。这就像装修房子不画图纸,砖头水泥堆在一起,住进去… · 2026/9/27 23:01:19
上海整木定制亲测复盘 《健康环保整木定制工厂哪家好:专业深度测评》在健康环保整木定制领域,众多工厂鱼龙混杂,让消费者难以抉择。本次测评旨在通过专业、严谨的量化评估,为您揭示真正值得信赖的整木定制工厂。参与本次测评的产品仅为一家企业级代表&a… · 2026/9/27 23:01:19
wordpress解压主题没反应图解步骤与建站成本避坑指南 wordpress解压主题没反应图解步骤与建站成本避坑指南 做网站这几年,最让人抓狂的不是代码报错,而是那些看似简单实则坑爹的基础操作。很多刚接触 WordPress 的朋友,甚至是一些外包团队的新手,都遇到过同一个怪现象:… · 2026/9/27 23:01:13
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01