自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

joinwilson的专栏

专注于技术,应用于未来

  • 博客(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

原创 SMB 共享配置指南

改模板不改运行时;共享必须有[段名];path必须存在且父目录可穿透;改完restarttestparm双确认。

2026-11-12 14:11:38 407

原创 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指南

WTL 学习的好书 WTL8.1+VS2008 安装过程: 1.下载了WTL8.1,然后运行AppWiz文件夹下的setup90.js,就可以安装成功了。 2.然后就是配置工程了。打开VS2008,选择Tools->Options->Projects and Solutions->VC++ Directories,在include中将c:/wtl81/include加入。或者将include目录复制到Microsoft Visual Studio 9.0/VC/目录下就可以了。

2014-06-06

Visual C+++2008 教程

Visual C+++2008 教程

2012-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除