- 博客(754)
- 资源 (1)
- 收藏
- 关注
原创 一个 .ko 的一生
ko不是可执行程序,它是一个,和.o同一个家族。它里面没有链接好的绝对地址,没有_start,没有 libc,也没有自己的栈。你不能"运行"它,只能把它。所以insmod干的事,本质上不是执行,而是把一个半成品交给内核里的一个迷你动态链接器。这个链接器要验货、选址、解析符号、打补丁(重定位)、改页表权限,最后才调用你写的那个函数。下面按时间顺序走一遍。以 x86-64、6.x 内核为准,5.x 上个别函数名和步骤有出入,但骨架一样。
2026-11-07 23:21:56
74
原创 Jetson Orin 启动链
本文基于NVIDIA官方L4T开发文档,完整拆解Orin系列(AGX Orin / Orin NX / Orin Nano)的冷启动全流程,明确QSPI Flash的核心角色与UEFI引导的完整逻辑,所有阶段按执行顺序分步说明。
2026-10-25 00:15:24
226
原创 PX4代码架构研究学习报告
先说清楚这份报告是怎么写出来的,你需要知道的前提。代码基线。报告里的结论全部来自我实际读过的源码,不是二手转述。基线是 PX4-Autopilot 的main分支,commit同期的版本状况是:最新稳定版v1.17.0于 2026-09-10 发布,main上跑的是 v1.18 之后的开发内容。这一点很重要,因为 PX4 在 2024–2026 这两年做了一轮不小的重构。你在网上看到的很多中文教程(尤其是 2019–2021 年那批)描述的架构,和今天的main已经对不上了。老教程里的说法今天main。
2026-10-15 22:37:53
291
原创 RK3588 连接 Intel AX200NGW 接口方案
Intel AX200NGW 的硬件接口是因此“哪种最快”的本质不是选不同类型的接口,而是。,这也是官方参考设计的标准接法,体感最快、最稳定。
2026-09-15 21:10:25
222
原创 Linux V4L2 子系统内核底层实现深度拆解记录
VB2_QUEUE_UNCONFIGED, // 未配置:初始状态,REQBUFS 之前VB2_QUEUE_PREPARED, // 已配置:REQBUFS 成功,buffer 已分配VB2_QUEUE_STREAMING, // 流传输中:STREAMON 成功fill:#333;important;important;fill:none;fill:none;ry:5px;ry:5px;ry:0;ry:5px;rx:0;ry:0;rx:0;ry:0;fill:#333;驱动 probe 后初始化。
2026-08-25 17:55:17
280
原创 VScode回归ACM模式(古法编程)配置
要有古法编程的能力, 面对AI的最后一丝掙扎, 不能废了(打脸), 主要更改settings.json。
2026-08-25 17:19:42
276
原创 V4L2 子系统完整架构与工作原理记录
本文基于 Linux 5.10 内核源码,从应用层到硬件层全链路拆解 V4L2 子系统,所有核心点均标注源码路径与关键函数。
2026-08-25 17:02:29
494
原创 rootfs 详解与裁剪优化记录
rootfs(Root File System,根文件系统)是 Linux 内核启动后挂载的第一个文件系统(挂载点为),是整个用户空间的运行根基。内核完成硬件初始化后,会挂载 rootfs 并执行其中的init进程,正式进入用户态。它包含了系统运行必需的初始化程序、命令工具、动态库、配置文件、设备节点等所有核心组件。
2026-08-11 22:16:56
366
原创 RK3588 冷启动优化分步操作指南记录
本指南完全适配, 从原厂基线38s优化至15s以内,全程按「测基线→分阶段优化→逐段验证→稳定性压测」的可落地步骤推进。
2026-08-07 22:27:15
332
原创 C++ 零拷贝(Zero-Copy)
狭义零拷贝:操作系统内核层面,完全消除CPU在内存间的数据搬运,所有数据传输由DMA控制器完成,CPU仅做调度,不触碰数据本身。广义零拷贝:所有减少/消除冗余数据拷贝的技术统称,涵盖内核、用户态、语言层面的优化,只要避免了不必要的数据复制,都属于零拷贝范畴。C++开发中通常兼顾两个层面:既利用系统调用实现内核级零拷贝,也通过语言特性减少应用层的冗余拷贝。语言层:优先使用移动语义、只读视图消除应用层冗余拷贝,成本最低,收益最高。用户态层:进程间大数据用共享内存,数据流场景用环形缓冲区。内核层。
2026-08-07 22:02:18
411
原创 Windows + Ubuntu 双系统启动故障修复
BCD损坏0xc0000225Windows无法启动↓检查EFI分区↓确认Ubuntu没有损坏↓SFC修复系统文件↓BCDBOOT重建Windows EFI↓DISM修复系统组件↓Windows恢复启动↓BIOS调整启动顺序↓Ubuntu GRUB恢复↓Windows + Ubuntu双启动恢复对于Windows + Linux 双系统 UEFI 环境组件作用存放启动文件BCDWindows启动数据库GRUBLinux启动管理器遇到问题时:不要直接重装系统。
2026-08-07 17:15:18
362
原创 ipcs复习总结
ipcs全称,是 Linux/Unix 系统内置的命令行工具,专门用于查询ipcs仅支持 System V IPC,(POSIX 共享内存/信号量/消息队列需通过/dev/shm等路径查看)。
2026-07-27 21:28:39
345
原创 RK3588 全链路 NPU/CPU/系统性能实战调优总结
(覆盖硬件原理→模块调优→瓶颈定位→量产落地全流程)做RK3588调优3年,见过太多人上来就锁CPU频率、跑个分就说优化完了,结果一上量产业务就掉链子:推理延迟抖动大、多路视频卡顿、跑半小时就降频、NPU算力连一半都跑不满。本质问题是没搞懂。本文章不讲入门级的参数罗列,只讲量产验证过的深度调优逻辑、底层原理和可直接落地的操作,覆盖CPU、NPU、DDR总线、多媒体协同、散热管控全链路。
2026-07-27 18:59:34
451
原创 Ubuntu宿主机中的VMWare选项「可移动设备」整体灰色不可点击
在 Ubuntu 宿主机上 90% 的场景由三个核心原因导致,按概率从高到低依次排查即可解决。
2026-07-21 19:23:50
373
原创 volatile复习
/ ✅ 正确用法volatile// ✅ 正确用法 volatile uint32_t * hardware_register = reinterpret_cast < volatile uint32_t * >(0xFFFF0000);// ✅ 信号处理 volatile sig_atomic_t quit_flag = 0;// ✅ 内存映射I/O struct MemoryMappedRegs {uint32_t// ✅ 信号处理// ✅ 内存映射I/O这三道题揭示了。
2026-06-18 21:30:10
203
原创 海思MPP媒体处理平台架构与实践
海思MPP(Media Process Platform)是基于硬件加速的模块化媒体处理平台,采用分层设计,所有核心操作均由专用硬件完成,CPU仅负责控制和调度。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;应用层MPP核心层驱动层硬件层摄像头Sensor麦克风喇叭显示器/HDMI音视频编解码硬件图形缩放硬件运动估计硬件。
2026-06-08 22:50:19
507
原创 /proc/umap/的功能及使用帮助
umap 节点中文名属于域你用它查什么主控 API 头文件sys系统控制基础MPP版本/初始化状态vb视频缓存池基础/内存buffer泄漏第一现场media-memMMZ物理内存基础/内存连续内存占用分布—(proc)logmppMPP日志基础开调试打印vi视频输入视频采集pipe/channel/丢帧/FPSisp图像信号处理视频采集曝光/降噪/3A状态mipi_rxMIPI接收视频采集lane/clock/sensor链路设备树+sensor drvvpss。
2026-06-02 07:54:08
410
原创 Hi3403加载出 /proc/umap
proc/umap只有在ot_sys.ko成功加载后才会出现;在 SS928V100 上,直接运行即可。
2026-06-02 07:46:28
380
原创 C++ 各类数据的内存分区与读写性能详解
C++内存分区与性能详解(Linux x86-64)本文详细分析了Linux x86-64系统中C++程序的内存布局和各区域的性能特征,揭示了内存性能差异的本质原因。主要内容包括:内存布局全景:从低地址到高地址依次是代码段、静态数据段(.rodata/.data/.bss)、堆、MMAP区和栈区性能对比:栈内存:性能天花板(0.5ns读写,100%缓存命中)静态数据段:次优选择(0.6-0.7ns)堆内存:性能最差(1-3ns,缓存命中率低)TLS:线程安全的静态存储(0.9ns)
2026-05-31 19:12:29
337
原创 C++ 高性能编程最佳实践清单
C++高性能编程最佳实践摘要 本文提供了一份全面的C++高性能编程指南,主要涵盖以下核心内容: 编译优化:推荐使用-O3、-march=native、-flto等基础优化选项,以及PGO剖面引导优化等高级技术,可获得30-70%的性能提升。 编码规范:强调类型安全、函数设计(小函数优先)、循环优化和错误处理的最佳实践,包括避免全局变量、优先使用值传递小对象等。 内存优化:重点建议栈内存优先、正确使用智能指针、内存池技术(jemalloc/tcmalloc)和预分配内存,可显著减少内存分配开销。 CPU优化:
2026-05-31 18:42:55
575
1
原创 C++ 高性能状态机
超高性能状态机的本质:把计算从运行时移到编译期,消除所有不必要的开销SML是目前性能最强的状态机库,运行时开销为零,是工业级系统的首选C++20协程是编译器自动生成的无栈状态机,开发效率最高,特别适合异步IO场景极致表驱动是手写状态机的性能极限,适合无依赖的嵌入式和内核开发高并发系统中,绝对不要使用switch/case和虚函数多态实现状态机,这是性能瓶颈的根源。
2026-05-31 18:13:40
455
原创 ROS 2 rclcpp 代码架构
rclcpp 作为 ROS 2 的官方 C++ 客户端库,采用了分层、模块化、面向对象的设计架构。它不仅提供了基础的通信功能,还包含了动作通信、组件管理和生命周期管理等高级特性。通过使用 rclcpp,开发者可以快速构建复杂、可靠、可维护的机器人应用程序。理解 rclcpp 的代码架构,对于深入学习 ROS 2 和开发高质量的机器人软件至关重要。
2026-05-26 22:44:24
431
原创 飞凌 RK3588 开发板同显 / 异显模式切换
这是嵌入式多屏系统最基础的两种显示模式,RK3588硬件最多支持(HDMI0、HDMI1、MIPI-DSI/LVDS/eDP任意组合)。
2026-05-20 20:58:15
524
2
原创 C++ 20联合体(Union)
访问非活动成员:永远不要访问当前不活动的成员,除非是类型双关场景且编译器明确支持忘记析构非POD成员:如果联合体包含等非POD类型,必须显式调用析构函数忽略结构体填充:在协议解析和硬件访问时,必须禁用结构体填充,否则会导致内存布局错误字节序问题:跨平台开发时,所有多字节字段必须进行字节序转换未使用:C++17及以上版本,在重新构造对象后必须使用获取有效指针。
2026-05-14 22:33:01
475
原创 C++17实现0抽象开销的多态方案
方案内存开销调用开销缓存友好编译时优化传统 virtual每个对象 +8 字节(vptr)间接调用(2-3周期)差无法内联最大类型+标签switch/跳转表中可内联0 额外开销直接调用(可内联)优完全内联数据导向(SoA)0 额外开销直接调用+分支优向量化友好编译时函数表0 额外开销直接调用优完全内联。
2026-05-07 11:05:29
229
原创 std::condition_variable的使用及注意事项
永远使用带谓词的wait,这是避免虚假唤醒和通知丢失的唯一可靠方法必须使用与条件变量配合先解锁再通知,避免被唤醒的线程立即阻塞在锁上优先使用notify_one而非notify_all,减少惊群效应避免在临界区执行耗时操作,缩小锁的粒度使用双条件变量优化生产者-消费者模型的性能。
2026-04-29 19:34:27
433
原创 C++ 回调较容易出错问题
问题类型核心避坑原则生命周期用智能指针管理对象,避免引用捕获局部变量线程安全加锁、原子变量或单线程事件循环串行化死锁统一加锁顺序,避免递归加锁异常安全回调内捕获异常,用 RAII 管理资源性能陷阱用std::move避免拷贝,小对象优化异步结果确保promise设置值,future调用get()跨模块 ABI用 C 风格回调,或统一编译环境。
2026-04-22 22:45:21
473
原创 VSCode C++ 插件方案
最近win11更新后, 无法开机, 修复还原点也有问题, 又重装了系统win10, vscode也重装了, 当然vscode插件也有些更新, 以下是新装的vscode插件。
2026-04-19 18:00:30
538
原创 机器人运动学正解核心原理
参数符号定义连杆长度aia_iai沿xix_ixi轴,从ziz_izi轴到zi1z_{i+1}zi1轴的距离连杆扭转角αi\alpha_iαi绕xix_ixi轴,从ziz_izi轴到zi1z_{i+1}zi1轴的角度(右手定则)连杆偏移did_idi沿ziz_izi轴,从xi−1x_{i-1}xi−1轴到xix_ixi轴的距离关节角θi\theta_iθ。
2026-04-14 23:20:29
691
原创 POD类型复习
POD类型是指不需要用户自定义构造/析构函数、没有虚函数/虚基类、内存布局连续且可直接按字节操作的类型。与C语言的structunion/基本类型完全兼容可以安全使用等内存操作函数生命周期仅由存储分配决定,无需显式构造/析构。
2026-04-13 23:36:05
404
原创 C++模板元编程理论基础简介
理论基础:λ演算、递归理论、范畴论逻辑基础:命题逻辑、一阶逻辑、证明论计算理论:图灵完备性、复杂度、部分求值代数基础:类型代数、同构理论工程实践:表达式模板、策略模式、编译时优化设计更优雅的模板元程序预测编译时计算的行为避免常见的陷阱和错误探索模板元编程的新应用领域。
2026-04-12 22:03:04
405
C++基于Lambda表达式的匿名函数对象设计:现代C++编程中STL算法与函数式编程的高效实现
2025-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅