驱动开发常用开发流程
📅 2026/7/11 7:32:03
👁️ 次浏览
一、杂项设备注册流程杂项字符设备主设备号固定10次设备号0~255 255表示内核自动分配次设备号1.1 杂项字符设备注册函数1int misc_register(struct miscdevice *misc)形参杂项核心结构体1.1struct miscdevice{ int minor;//次设备号 const char *name;//设备文件名 const struct file_operations *fops;//文件操作指针集 struct list_head list; struct device *parent; struct device *this_device; const struct attribute_group **groups; const char *nodename; umode_t mode; }minor:次设备号0~255 255自动分配name:设备文件名 位置在/dev name给应用抽象出来的硬件文件fops文件操作指针集 -------给应用层留的接口1.1.3fops操作指针集 struct file_operations { struct module *owner; // THIS_MODULE 表示接口属于当前模块【必须填写】 //下面函数接口根据硬件需要填写 loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); ssize_t (*read_iter) (struct kiocb *, struct iov_iter *); ssize_t (*write_iter) (struct kiocb *, struct iov_iter *); int (*iopoll)(struct kiocb *kiocb, bool spin); int (*iterate) (struct file *, struct dir_context *); int (*iterate_shared) (struct file *, struct dir_context *); __poll_t (*poll) (struct file *, struct poll_table_struct *); long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); unsigned long mmap_supported_flags; int (*open) (struct inode *, struct file *); int (*flush) (struct file *, fl_owner_t id); ...... };返回值成功返回0失败返回负数1.2 杂项字符设备函数2void misc_deregister(struct miscdevice *misc)这个函数和1.1一样只不过函数不一样而已使用方法一致二、GPIO子系统开发流程Linux GPIO通用输入输出子系统是一个驱动框架用于管理和控制设备的 GPIO 引脚1、请求GPIOint gpio_request(unsigned gpio, const char *label)形参gpio 编号 瑞芯微引脚命名 GPIOX_YZ 编号计算X*32Y*8ZX从 0 开始 一组 32 个引脚Y从 A 开始 一组 8 个引脚Z从 0 开始 每一个小组中引脚编号例如: beep GPIO1_A432*10*8436label: 引脚命名2、配置 gpio 模式2.1配置为输出模式int gpio_direction_output(unsigned gpio, int value)形参: gpio: 引脚编号 value: 引脚初始值2.2配置为输入模式int gpio_direction_input(unsigned gpio)3、设置 GPIO 口值void gpio_set_value(unsigned gpio, int value)参数 gpio: 引脚编号 value: 给 io 的值4释放 GPIOvoid gpio_free(unsigned gpio)
NanoPi NEO3 Armbian 6.18.35 部署:Debian 13 Trixie 最小化系统配置实战指南 在嵌入式开发领域,NanoPi NEO3凭借其Rockchip RK3328处理器和紧凑设计成为轻量级Linux服务器的理想选择。本文将深入探讨如何通过Armbian 6.18.35为NanoPi NEO3部署最新的De…
📅 2026/7/11 7:32:03
更多请点击:
https://kaifayun.com
第一章:参数权重失控?风格崩坏?——Midjourney提示词精准控制全链路拆解,含37组AB测试对比数据 Midjourney的提示词解析机制并非线性加权,而是基于CLIP文本编码器与扩散…
📅 2026/7/11 7:32:03
戴尔G15终极散热控制方案:3步快速掌握开源替代神器 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15
还在为戴尔G15游戏本散热烦恼吗?原厂…
📅 2026/7/11 7:31:03
背景 作为开源计算流体力学( CFD)领域的标杆工具,OpenFOAM 在工程仿真中始终是处理复杂流体流动与多物理场耦合问题的核心支柱 。该软件凭借其灵活的有限体积法框架与模块化数值库,支持从不可压缩到可压缩流 、层流到高雷诺数湍流…
📅 2026/7/11 8:43:27
一、激光共聚焦显微镜粗糙度数据失真成因解析
1.1 物镜先天视野局限
纳米级粗糙度检测主流采用尼康50APO高倍物镜,设备精度与物镜倍率正相关,但高倍率会大幅压缩成像视野。该物镜单幅视场仅0.5mm,取样范围极小,无法覆盖工业标准…
📅 2026/7/11 8:43:27
1. EM3080-W解码芯片的工业级特性解析EM3080-W是Newland Auto-ID Tech专为工业场景设计的条形码解码芯片,我在多个自动化产线项目中验证过它的可靠性。与消费级解码方案相比,它的核心优势体现在三个维度:环境适应性方面,芯片内置的…
📅 2026/7/11 8:43:27
1. 项目背景与硬件选型解析 在工业自动化和机器人控制领域,直流电机因其结构简单、控制方便、成本低廉等优势,仍然是中小功率运动控制的首选执行器。但如何实现精确的速度和方向控制,一直是工程师面临的挑战。传统的H桥驱动方案存在电路复杂、…
📅 2026/7/11 8:43:27
在江西省宜春市丰城市,不少农村自建房都偏爱半圆弧形楼梯,造型大气但中间围合的空间极不规则,很多业主加装电梯时,要么被迫选造价偏高的半圆形观光梯,要么只能牺牲空间做小型方梯,始终难兼顾美观与实用性。…
📅 2026/7/11 8:43:27
1. 项目概述:当“小模型”开始倒逼大厂重新定义AI边界最近在几个嵌入式开发群和边缘计算技术沙龙里,几乎每天都有人甩出同一张截图:Gemma 4的推理延迟对比表——在树莓派5上跑通7B量化版,端到端响应压到820ms;在高通QC…
📅 2026/7/11 8:42:27
摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计…
📅 2026/7/11 0:00:31
1. 命令简介gpm 是 Linux 系统下运行于虚拟控制台(文字终端模式)的鼠标服务器。它的主要功能是在没有图形界面的纯文本环境中,为虚拟控制台提供鼠标支持,允许用户使用鼠标进行文本的选择、复制和粘贴操作,极大地提升了…
📅 2026/7/11 0:00:31
导语
先澄清一个常被混用的概念:BI试点"上线",并不等于试点"验收通过"。很多企业把仪表板做出来、账号发下去、培训开完场,就默认试点已经跑通,随后进入推广阶段——结果推广到第二个部门、第三个业务线时&am…
📅 2026/7/11 0:00:31
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/10 22:46:54
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/10 22:46:54
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/10 22:46:54
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/10 22:46:54
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/10 22:46:54
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/10 22:46:54