自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C/C++

阅读|思考|产出|进步

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

原创 DMA原理、Cache一致性问题与配置

/ 1个参数表示通道请求号// 支持外设突发模式// 标记为非一致性设备。

2026-08-10 10:50:47 388

原创 ARM大小核架构调度原理与RK3588嵌入式配置复习

两类核心共享L3缓存与内存总线,任务可在大小核之间无缝迁移,无软件兼容性问题。

2026-08-10 10:14:28 372

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

原创 RK3588 共享 CRTC 同显原理补充

以下会从硬件架构→驱动实现→软件模型→切换流程方向思考。

2026-07-24 08:57:54 472

原创 Ubuntu宿主机中的VMWare选项「可移动设备」整体灰色不可点击

在 Ubuntu 宿主机上 90% 的场景由三个核心原因导致,按概率从高到低依次排查即可解决。

2026-07-21 19:23:50 373

原创 RK3588 CPU绑核

rk3588 CPU 绑核以提升性能

2026-07-20 16:38:13 281

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

原创 不同主机之间网络通信-以太网连接复习

(含PC↔PC、PC↔RK3588开发板、开发板↔开发板全场景,从物理连接到应用层通信全覆盖)

2026-05-20 22:07:37 476

原创 飞凌 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++各个版本的性能和安全性总结

【代码】C++各个版本的性能和安全性比较。

2026-05-08 08:48:13 88

原创 C++17实现0抽象开销的多态方案

方案内存开销调用开销缓存友好编译时优化传统 virtual每个对象 +8 字节(vptr)间接调用(2-3周期)差无法内联最大类型+标签switch/跳转表中可内联0 额外开销直接调用(可内联)优完全内联数据导向(SoA)0 额外开销直接调用+分支优向量化友好编译时函数表0 额外开销直接调用优完全内联。

2026-05-07 11:05:29 229

原创 C++零抽象开销的方案

C++追求,意味着要,主要通过实现。

2026-05-07 10:25:16 227

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

原创 C++ 线程同步复习

线程同步是多线程编程的核心,旨在解决与问题。本文将快速回顾基础,重点聚焦(内存序、无锁编程、C++20 新特性等)。

2026-04-22 22:15:58 379

原创 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++ 标准库中性能较高的函数总结复习

【代码】C++ 标准库中性能较高的函数总结复习。

2026-04-13 23:16:46 393 1

原创 C++模板元编程理论基础简介

理论基础:λ演算、递归理论、范畴论逻辑基础:命题逻辑、一阶逻辑、证明论计算理论:图灵完备性、复杂度、部分求值代数基础:类型代数、同构理论工程实践:表达式模板、策略模式、编译时优化设计更优雅的模板元程序预测编译时计算的行为避免常见的陷阱和错误探索模板元编程的新应用领域。

2026-04-12 22:03:04 405

C++基于Lambda表达式的匿名函数对象设计:现代C++编程中STL算法与函数式编程的高效实现

内容概要:本文系统介绍了C++ Lambda表达式的语法结构、捕获机制、高级应用及其与STL算法的结合使用。文章从基础语法入手,详细讲解了捕获列表(值捕获、引用捕获、混合捕获、初始化捕获)、mutable关键字、返回类型推导等核心概念,并深入剖析其实现原理。进一步涵盖了泛型Lambda、递归Lambda、constexpr Lambda、结构化绑定等C++14至C++23的进阶特性。同时展示了Lambda在STL算法(如sort、find_if、transform、accumulate等)和多线程编程中的实战应用,并通过丰富的代码示例和常见陷阱分析,帮助读者全面掌握这一现代C++核心特性。; 适合人群:具备一定C++基础的开发人员,尤其是希望深入理解现代C++特性、提升代码简洁性与效率的中级程序员,以及准备C++技术面试的求职者。; 使用场景及目标:① 掌握Lambda表达式在STL算法中的高效应用,替代传统函数指针和仿函数;② 理解不同捕获方式的底层原理与生命周期管理,避免悬空引用等常见陷阱;③ 学习泛型、递归、constexpr等高级Lambda技术,应用于函数式编程、多线程和性能敏感场景。; 阅读建议:建议结合文中提供的大量代码示例进行实践,重点关注捕获机制的差异与陷阱,并通过文末的实战练习巩固所学。在学习过程中,应区分不同C++标准(C++11/14/17/23)引入的特性,以适应实际项目的编译环境。

2025-11-17

《设计模式的艺术》复习记录

创建型模式: 单例模式、简单工厂模式、 工厂方法模式、抽象工厂模式、原型模式和建造者模式

2024-05-04

php登录注册页面

简洁的登录注册页面,能实现注册数据同步到接数据库。

2018-12-20

空空如也

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

TA关注的人

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