<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[joinwilson的专栏]]></title><description><![CDATA[专注于技术，应用于未来]]></description><link>https://blog.youkuaiyun.com/joinwilson</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; joinwilson]]></copyright><item><title><![CDATA[内核引脚复用（pinmux）详解 —— 以 pinctrl-led 为例]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/170743689</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/170743689</guid><author>joinwilson</author><pubDate>Fri, 13 Nov 2026 21:46:19 +0800</pubDate><description><![CDATA[在&pio哪些脚什么功能。&pio {是 label，供别处引用；led-pins是节点名，随便起；pinsfunction必须是该脚支持的功能名之一（见第 2 章的表）。function的值直接决定写进CFG字段的数字：写"gpio_out"，内核查表得到 0x1，写进0x0300B04C的 bit[23:20]。]]></description><category></category></item><item><title><![CDATA[设备树节点与驱动开发教程 —— 以 treenode-led 工程为实例]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/170714970</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/170714970</guid><author>joinwilson</author><pubDate>Fri, 13 Nov 2026 12:19:14 +0800</pubDate><description><![CDATA[┌─ 设备树侧 ─────────────────────────────┐ ┌─ 驱动侧 ──────────────────────────────┐│ │ │ ││ .dts 根节点里加: │ │ init(): │←暗号 │ ──►│ of_property_read_string("status") │←开关 │ │ of_property_read_u32_array("reg") │←地址 │ │ ioremap(regdata[0],regdata[1]) ... │。]]></description><category></category></item><item><title><![CDATA[OpenWrt 内核驱动模块开发指南]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/170610848</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/170610848</guid><author>joinwilson</author><pubDate>Thu, 12 Nov 2026 14:14:35 +0800</pubDate><description><![CDATA[—产物时间变了、内容也变了，但打出来的镜像里还是旧 .ko。症状是"我明明改了代码，板子上行为没变"。目标：看懂一个 OpenWrt 内核模块包从"三个文件"到"板子上点亮 LED"的完整链路。目标平台：Orange Pi Zero3（全志 H618，aarch64），内核。PC13 落在 CFG1 的 bit20~23，所以代码里用。里那份 WS2812B/SPI 版本是参考代码，不参与编译。]]></description><category></category></item><item><title><![CDATA[SMB 共享配置指南]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/170610441</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/170610441</guid><author>joinwilson</author><pubDate>Thu, 12 Nov 2026 14:11:38 +0800</pubDate><description><![CDATA[改模板不改运行时；共享必须有[段名]；path必须存在且父目录可穿透；改完restarttestparm双确认。]]></description><category></category></item><item><title><![CDATA[OpenWrt 设备树（Device Tree）修改与编译替换操作手册]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/170496170</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/170496170</guid><author>joinwilson</author><pubDate>Wed, 11 Nov 2026 10:11:25 +0800</pubDate><description><![CDATA[在板级 dts 里加一个&pio&pio {// 你硬件实际接的引脚// 复用成 i2c3 功能（对照 SoC 手册/内核驱动）]]></description><category></category></item><item><title><![CDATA[VS Code Remote-SSH 内核驱动开发环境配置手册]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/170495440</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/170495440</guid><author>joinwilson</author><pubDate>Wed, 11 Nov 2026 10:07:38 +0800</pubDate><description><![CDATA["arguments": [ "编译器 + 编译参数数组" ]字段含义directory编译工作目录（相对路径基于它），即驱动源码所在目录file要被索引的源文件（绝对路径arguments编译参数数组（每个参数是独立字符串）⚠️里绝不能加自定义字段（比如"说明": "..."这种注释字段）。clangd 会严格校验字段名，遇到未知 key 直接报并拒绝加载整个数据库，退回 fallback（无内核头文件路径），导致所有跳转失效。]]></description><category></category></item><item><title><![CDATA[Orange Pi Zero 3 WiFi（AW859A/AIC8800）内核移植指南]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/170415955</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/170415955</guid><author>joinwilson</author><pubDate>Tue, 10 Nov 2026 10:36:22 +0800</pubDate><description><![CDATA[原理图逐页核对 + 构建树实际代码核对环境：lede（OpenWrt 24.10.5）+ 内核 6.12.80 + A/B 分区镜像。移植工作量比想象小得多。]]></description><category></category></item><item><title><![CDATA[VS Code Remote-SSH + CMake 交叉编译开发环境配置手册]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/170342378</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/170342378</guid><author>joinwilson</author><pubDate>Tue, 10 Nov 2026 10:23:28 +0800</pubDate><description><![CDATA[环境：Windows 本机 + 远程构建机（Ubuntu 22.04）用途：在 Windows 的 VS Code 里通过 SSH 连到构建机，用 CMake 交叉编译 arm64（aarch64）用户态 C/C++ 程序，实现代码跳转、补全、诊断。]]></description><category></category></item><item><title><![CDATA[OpenWrt A/B 双分区 OTA 升级改造 · 技术总结]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/170342067</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/170342067</guid><author>joinwilson</author><pubDate>Mon, 09 Nov 2026 10:44:35 +0800</pubDate><description><![CDATA[A/B 的本质不是"两份系统"，而是把切换动作压缩成一次 env 写入：数据全部就位之后才动开关，开关只写在掉电可见的存储上，而启动端每次都会先问"上次那套真的起来了吗"——没问出结果就退回上一个确认过的答案。"已知可用"这个状态只能由用户态确认，bootloader 无权自行认定。]]></description><category></category></item><item><title><![CDATA[OpenWrt (LEDE) A/B 双分区备份升级改造方案]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/170341323</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/170341323</guid><author>joinwilson</author><pubDate>Mon, 09 Nov 2026 10:36:58 +0800</pubDate><description><![CDATA[Orange Pi Zero 3 (sunxi H618, cortexa53) / 构建树。]]></description><category></category></item><item><title><![CDATA[libvlc添加视频录制接口]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/115271653</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/115271653</guid><author>joinwilson</author><pubDate>Sat, 27 Mar 2021 21:01:19 +0800</pubDate><description><![CDATA[vlc开源播放器其实是自带录制功能的，只是其导出库中未包含该接口，下面我们为该库添加录制功能的导出接口。
1、在libvlc_media_player.h头文件中加入以下函数
LIBVLC_API
int libvlc_video_toggle_record(libvlc_media_player_t *p_mi,const char *psz_filepath,const char *psz_filename);


2、在lib/video.c下面加入实现函数
int
libvlc_video_togg]]></description><category></category></item><item><title><![CDATA[基于Qt开发PC客户端软件]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/115271347</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/115271347</guid><author>joinwilson</author><pubDate>Sat, 27 Mar 2021 20:50:26 +0800</pubDate><description><![CDATA[Qt 软件库用来开发PC端软件非常方便，如果有一套系统，即有服务端、移动端及PC端，那么PC端最适合用Qt来开发，设计界面所见即所得。基于C++语言高效灵活。下面基于本人之前开发的一个小软件来说说。
以下是软件运行时的效果：

实现以上界面窗口需要对原始窗口做如下改造
1. 界面去掉原始标题栏
2. 标题栏自定义，背景透明和工具栏共用背景图片
3. 背景图片横向拉申，做出渐变效果
4. 自定义控制按钮（最大化、最小化、恢复、关闭）
5. 窗口套用mask变为圆角

设置窗口为无边框风格
WidgetMain]]></description><category></category></item><item><title><![CDATA[多目录makefile模板写法]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/115271267</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/115271267</guid><author>joinwilson</author><pubDate>Sat, 27 Mar 2021 20:37:49 +0800</pubDate><description><![CDATA[多目录makefile模板写法
    在做linux开发的时候经常要写一些程序，这些项目还不是一个源文件就能搞定的，我这个人比较懒，懒的写makefile，也懒得记，于是就找一个模板记下来。以后照抄就好了。以下是一个例子。

# libssh2 Makefile
DIR_INC = ./include
DIR_SRC = ./src
DIR_OBJ = ./obj
DIR_BIN = ./bin

SRC = $(wildcard ${DIR_SRC}/*.c)  
OBJ = $(patsubst %.]]></description><category></category></item><item><title><![CDATA[网络编程相关知识点速查]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/115271084</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/115271084</guid><author>joinwilson</author><pubDate>Sat, 27 Mar 2021 20:32:33 +0800</pubDate><description><![CDATA[网络编程相关知识点速查网络编程相关知识点速查一、获取网络信息相关的函数二、IPv6服务器流程三、IPv6和IPv4的TCP和UDP交互图四、select 函数就绪的条件五、read函数返回值的含义六、shutdown时的交互流程
网络编程相关知识点速查
我们在做网络相关的开发时，经常会记不清一些知识点，以下我把需要牢记的知识点分享给大家。希望对您有所帮助。
一、获取网络信息相关的函数

二、IPv6服务器流程

三、IPv6和IPv4的TCP和UDP交互图

四、select 函数就绪的条件

五、read]]></description><category></category></item><item><title><![CDATA[使用Win API创建工具栏]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/12942289</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/12942289</guid><author>joinwilson</author><pubDate>Tue, 22 Oct 2013 09:12:15 +0800</pubDate><description><![CDATA[到网上查了下资料，初步实现了使用WinAPI创建工具栏。


        下面是创建一个标准工具栏的函数，（这里所谓标准工具栏是指工具栏按钮图片是WinSDK内置的）


[cpp] 
view plaincopyprint?


BOOL CreateStandardToolbar(HWND hParent)  {      // 首先需要先调用InitCommonCon]]></description><category></category></item><item><title><![CDATA[实现一个冒泡提示的浮点数编辑框]]></title><link>https://blog.youkuaiyun.com/joinwilson/article/details/12942117</link><guid>https://blog.youkuaiyun.com/joinwilson/article/details/12942117</guid><author>joinwilson</author><pubDate>Tue, 22 Oct 2013 09:03:59 +0800</pubDate><description><![CDATA[最近需要一个浮点数编辑框。所谓浮点数编辑框，就是限制输入只在”-1234567890.” 这些字符，其它字符不予输入（用户输错了冒一个气泡进行提示）。本想使用BCG库的CBCGPMaskEdit类，无奈该类允许重复输入小数点，不满足我的需求。
 
       于是上网搜了一个，发现是基于VS2010的。VS 2010的编辑框已经实现了自动冒泡提示了。但是我的工程是VS 2005的。于是我设法]]></description><category></category></item></channel></rss>