- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 内核引脚复用(pinmux)详解 —— 以 pinctrl-led 为例
在&pio哪些脚什么功能。&pio {是 label,供别处引用;led-pins是节点名,随便起;pinsfunction必须是该脚支持的功能名之一(见第 2 章的表)。function的值直接决定写进CFG字段的数字:写"gpio_out",内核查表得到 0x1,写进0x0300B04C的 bit[23:20]。
2026-11-13 21:46:19
382
原创 设备树节点与驱动开发教程 —— 以 treenode-led 工程为实例
┌─ 设备树侧 ─────────────────────────────┐ ┌─ 驱动侧 ──────────────────────────────┐│ │ │ ││ .dts 根节点里加: │ │ init(): │←暗号 │ ──►│ of_property_read_string("status") │←开关 │ │ of_property_read_u32_array("reg") │←地址 │ │ ioremap(regdata[0],regdata[1]) ... │。
2026-11-13 12:19:14
552
原创 OpenWrt 内核驱动模块开发指南
—产物时间变了、内容也变了,但打出来的镜像里还是旧 .ko。症状是"我明明改了代码,板子上行为没变"。目标:看懂一个 OpenWrt 内核模块包从"三个文件"到"板子上点亮 LED"的完整链路。目标平台:Orange Pi Zero3(全志 H618,aarch64),内核。PC13 落在 CFG1 的 bit20~23,所以代码里用。里那份 WS2812B/SPI 版本是参考代码,不参与编译。
2026-11-12 14:14:35
409
原创 OpenWrt 设备树(Device Tree)修改与编译替换操作手册
在板级 dts 里加一个&pio&pio {// 你硬件实际接的引脚// 复用成 i2c3 功能(对照 SoC 手册/内核驱动)
2026-11-11 10:11:25
398
原创 VS Code Remote-SSH 内核驱动开发环境配置手册
"arguments": [ "编译器 + 编译参数数组" ]字段含义directory编译工作目录(相对路径基于它),即驱动源码所在目录file要被索引的源文件(绝对路径arguments编译参数数组(每个参数是独立字符串)⚠️里绝不能加自定义字段(比如"说明": "..."这种注释字段)。clangd 会严格校验字段名,遇到未知 key 直接报并拒绝加载整个数据库,退回 fallback(无内核头文件路径),导致所有跳转失效。
2026-11-11 10:07:38
499
原创 Orange Pi Zero 3 WiFi(AW859A/AIC8800)内核移植指南
原理图逐页核对 + 构建树实际代码核对环境:lede(OpenWrt 24.10.5)+ 内核 6.12.80 + A/B 分区镜像。移植工作量比想象小得多。
2026-11-10 10:36:22
425
原创 VS Code Remote-SSH + CMake 交叉编译开发环境配置手册
环境:Windows 本机 + 远程构建机(Ubuntu 22.04)用途:在 Windows 的 VS Code 里通过 SSH 连到构建机,用 CMake 交叉编译 arm64(aarch64)用户态 C/C++ 程序,实现代码跳转、补全、诊断。
2026-11-10 10:23:28
290
原创 OpenWrt A/B 双分区 OTA 升级改造 · 技术总结
A/B 的本质不是"两份系统",而是把切换动作压缩成一次 env 写入:数据全部就位之后才动开关,开关只写在掉电可见的存储上,而启动端每次都会先问"上次那套真的起来了吗"——没问出结果就退回上一个确认过的答案。"已知可用"这个状态只能由用户态确认,bootloader 无权自行认定。
2026-11-09 10:44:35
445
原创 OpenWrt (LEDE) A/B 双分区备份升级改造方案
Orange Pi Zero 3 (sunxi H618, cortexa53) / 构建树。
2026-11-09 10:36:58
361
原创 libvlc添加视频录制接口
vlc开源播放器其实是自带录制功能的,只是其导出库中未包含该接口,下面我们为该库添加录制功能的导出接口。1、在libvlc_media_player.h头文件中加入以下函数LIBVLC_APIint libvlc_video_toggle_record(libvlc_media_player_t *p_mi,const char *psz_filepath,const char *psz_filename);2、在lib/video.c下面加入实现函数intlibvlc_video_togg
2021-03-27 21:01:19
1570
1
原创 基于Qt开发PC客户端软件
Qt 软件库用来开发PC端软件非常方便,如果有一套系统,即有服务端、移动端及PC端,那么PC端最适合用Qt来开发,设计界面所见即所得。基于C++语言高效灵活。下面基于本人之前开发的一个小软件来说说。以下是软件运行时的效果:实现以上界面窗口需要对原始窗口做如下改造1. 界面去掉原始标题栏2. 标题栏自定义,背景透明和工具栏共用背景图片3. 背景图片横向拉申,做出渐变效果4. 自定义控制按钮(最大化、最小化、恢复、关闭)5. 窗口套用mask变为圆角设置窗口为无边框风格WidgetMain
2021-03-27 20:50:26
2427
原创 多目录makefile模板写法
多目录makefile模板写法 在做linux开发的时候经常要写一些程序,这些项目还不是一个源文件就能搞定的,我这个人比较懒,懒的写makefile,也懒得记,于是就找一个模板记下来。以后照抄就好了。以下是一个例子。# libssh2 MakefileDIR_INC = ./includeDIR_SRC = ./srcDIR_OBJ = ./objDIR_BIN = ./binSRC = $(wildcard ${DIR_SRC}/*.c) OBJ = $(patsubst %.
2021-03-27 20:37:49
391
原创 网络编程相关知识点速查
网络编程相关知识点速查网络编程相关知识点速查一、获取网络信息相关的函数二、IPv6服务器流程三、IPv6和IPv4的TCP和UDP交互图四、select 函数就绪的条件五、read函数返回值的含义六、shutdown时的交互流程网络编程相关知识点速查我们在做网络相关的开发时,经常会记不清一些知识点,以下我把需要牢记的知识点分享给大家。希望对您有所帮助。一、获取网络信息相关的函数二、IPv6服务器流程三、IPv6和IPv4的TCP和UDP交互图四、select 函数就绪的条件五、read
2021-03-27 20:32:33
212
转载 使用Win API创建工具栏
到网上查了下资料,初步实现了使用WinAPI创建工具栏。 下面是创建一个标准工具栏的函数,(这里所谓标准工具栏是指工具栏按钮图片是WinSDK内置的)[cpp] view plaincopyprint?BOOL CreateStandardToolbar(HWND hParent) { // 首先需要先调用InitCommonCon
2013-10-22 09:12:15
895
转载 实现一个冒泡提示的浮点数编辑框
最近需要一个浮点数编辑框。所谓浮点数编辑框,就是限制输入只在”-1234567890.” 这些字符,其它字符不予输入(用户输错了冒一个气泡进行提示)。本想使用BCG库的CBCGPMaskEdit类,无奈该类允许重复输入小数点,不满足我的需求。 于是上网搜了一个,发现是基于VS2010的。VS 2010的编辑框已经实现了自动冒泡提示了。但是我的工程是VS 2005的。于是我设法
2013-10-22 09:03:59
495
MFC程序员的WTL指南
2014-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅