自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(432)
  • 收藏
  • 关注

原创 签了三十多本书,真心感谢每一位支持和帮助我的人

昨天,我签了三十多本书,今天也全部寄出了。是为了感谢你们,也是希望这本书带去的不只是技术知识,还有回应信任的诚意。

2025-05-13 23:09:18 117

原创 《驱动开发硬核特训 · 专题篇》:深入理解 I2C 子系统

本文详细解析了 Linux 内核中 I2C 子系统的结构与运行机制,重点区分了 platform_driver 和 i2c_driver 的职责。I2C 子系统基于总线设备驱动模型,主要涉及 i2c_adapter(控制器)、i2c_client(外设设备)和 i2c_driver(外设驱动)三个核心数据结构。控制器驱动通常通过 platform_driver 注册,而外设驱动则通过 i2c_driver 注册,并通过设备树匹配 i2c_client 完成初始化。文章通过实际代码示例展示了如何注册 I2C

2025-05-13 20:12:43 584

原创 使用 Cutter 反编译 Qt 应用:实战案例与完整流程

本文详细介绍了如何使用开源工具 Cutter 对 Qt 应用程序进行静态分析与反编译。文章首先介绍了 Qt 应用的特点及其在反编译中的挑战与价值,随后以一个小型 Qt 登录对话框为例,逐步演示了从工具安装、程序加载、结构还原、信号槽机制识别、资源文件提取到伪代码阅读与行为还原的完整流程。Cutter 作为 Radare2 的图形界面,支持多种文件格式和丰富的分析功能,适合中小型 Qt 应用的分析。文章还提供了调试 Qt 程序的附加操作,并总结了反编译流程中的关键步骤与技术点,最后给出了进一步学习的建议。

2025-05-13 11:39:45 369

原创 Yocto 源码下载失败?掌握 MIRRORS、PREMIRRORS 与 EMIRRORS 三板斧,构建更稳定

本文详细介绍了Yocto项目中的多源下载策略系统,包括MIRRORS、PREMIRRORS和EMIRRORS的作用、区别及最佳实践。Yocto构建过程中,源码下载失败是常见问题,尤其是依赖全球各地的Git仓库和HTTP镜像站时。通过配置这些镜像机制,可以有效提高构建的稳定性和成功率。文章还提供了实际案例和调试技巧,帮助开发者应对网络不稳定和源站失效问题。建议在企业或CI/CD环境中搭建本地镜像,以确保构建的可靠性。

2025-05-12 22:19:30 512

原创 还没开始宣传,预售就破百了

《Yocto项目实战教程》在京东计算机操作系统图书热卖榜上迅速攀升至TOP9,这一成绩出乎作者意料,也令人感动。尽管没有大规模宣传,仅凭封面和标题,该书在短短半个月内售出超过100本,反映了市场对Yocto项目相关知识的真实需求。作者表示,这本书旨在帮助那些在Yocto项目中遇到困难的开发者,深入理解BSP层定制,而不仅仅是复制粘贴。作者对读者的支持表示感谢,并承诺将继续完善书籍内容和配套视频课程,与读者共同深入探讨Yocto项目。

2025-05-12 16:16:06 441

原创 Yocto 项目中的 glibc 编译失败全解析:原因、原理与修复策略

本文详细探讨了在Yocto项目中使用glibc 2.39构建嵌入式Linux系统时可能遇到的编译失败问题。文章首先强调了glibc作为系统基础组件的重要性,随后分析了编译失败的典型原因,包括主机依赖不满足、内存不足、并发问题、源代码补丁应用失败、QEMU模拟错误以及Yocto层冲突等。针对这些问题,提供了具体的修复方法和排错步骤,如调整构建配置、检查日志文件、确保必要的工具和依赖项等。此外,文章还介绍了在开发调试阶段快速绕过构建失败的策略,并提供了一个通用的修复脚本,用于构建前的环境检测。最后,总结了处理g

2025-05-11 23:19:14 864

原创 还没开始宣传,就收到了这样的评价,我有点破防了

《Yocto项目实战教程》作者Jerry分享了一位OpenBMC开发工程师的积极反馈,尽管书刚上市且未大规模宣传,读者已主动给予高度评价,称赞其内容的逻辑性和实用性,涵盖了自己工作中的关键知识点。Jerry表示,写书过程虽辛苦,但看到读者的共鸣是最幸福的回报。他承诺将继续创作,将Yocto、BSP等复杂知识讲解得更清晰实用,并鼓励读者反馈,提供更多学习资源。Jerry希望这本书能成为嵌入式工程师的长期参考,感谢读者的信任与支持。

2025-05-11 15:49:16 469

原创 Yocto项目实战经验总结:从入门到高级的全面概览

Yocto 项目不是一个操作系统,而是一套构建 Linux 分发版本的工具和基础元数据,包括 BitBake 构建引擎,元数据 Layer 和参考分发版 Poky。

2025-05-10 18:27:28 597

原创 一文看清:主流半导体厂商对 Yocto Project 与 Buildroot 的支持现状与趋势

一本书,能改在嵌入式 Linux 开发领域,Yocto Project 和 Buildroot 是两种主流的系统构建框架,虽然它们都能完成从工具链生成到根文件系统打包的完整过程,但适用场景、技术路线和用户体验存在显著差异。变嵌入式行业格局吗? ——《Yocto项目实战教程》正式上市

2025-05-10 14:15:42 850

原创 国内首本Yocto项目书籍,必须支持一下

国内首本Yocto项目书籍,必须支持一下

2025-05-09 19:42:29 186

原创 一文彻底读懂 Buildroot:从原理到实践的深度解析

我们以添加openocdhelpendefendefendef用于提前挂载目录、创建自定义结构等操作。快速出样开发板系统;自动化 CI/CD 嵌入式打包;小团队、初学者学习 Linux 构建流程;搭配 Qt、Busybox、OpenSSH、OpenCV 等工具使用。使用已有配置快速构建基础系统;尝试添加新包(如 openocd);熟悉根文件系统结构和 overlay 机制;使用 post-image 脚本定制镜像;开发应用程序并部署至构建系统。

2025-05-09 19:41:33 775

原创 驱动开发硬核特训 · Day 30(下篇): 深入解析 lm48100q I2C 音频编解码器驱动模型(基于 i.MX8MP)

理解 lm48100q 的设备树绑定方式* 解析 codec 驱动与 machine 驱动的协同工作* 分析其 register map、音频路径、power domain 的实现方式* 展示 ASoC codec 驱动完整注册流程及常用结构体* 给出核心代码结构 + 注释 + 驱动关系图

2025-05-08 20:37:21 871

原创 驱动开发硬核特训 · Day 30(上篇):深入理解 I2C 总线驱动模型(以 at24 EEPROM 为例)

* 驱动如何注册到 I2C 总线上?* I2C client 是如何匹配的?* at24 是如何成为标准驱动代表的?* 如何配置设备树节点?* 如何验证实际读写?

2025-05-08 20:21:41 1279

原创 嵌入式开发岗位面试12题详解:清晰准确,一篇读懂

当前/过往工作方向(如Linux驱动开发、RTOS调度、BSP定制);熟悉的平台或芯片(如NXP i.MX系列、STM32);项目中负责的模块(如电源管理、外设驱动、系统移植);补充团队合作能力、学习能力或技术分享经历。示例模板“主要从事嵌入式系统开发工作,熟悉Linux和RTOS平台,曾独立完成多个BSP开发、驱动移植与电源优化项目。对底层调试、系统架构有较强的理解能力,注重代码质量和系统稳定性。这12个问题覆盖了嵌入式岗位常见的技术、项目与软技能考察点。

2025-05-08 17:42:13 920

原创 一本书,能改变嵌入式行业格局吗? ——《Yocto项目实战教程》正式上市

一本书,能改变嵌入式行业格局吗? ——《Yocto项目实战教程》正式上市

2025-05-07 22:22:46 198

原创 驱动开发硬核特训 · 专题篇:Vivante GPU 与 DRM 图形显示体系全解析(i.MX8MP 平台实战)

问题分类推荐方案Weston 启动失败检查 G2D 渲染是否开启失败GPU 渲染无效检查 galcore 驱动和设备树DRM 输出失败检查 /dev/dri/cardX 是否存在Pixman 性能低启用 galcore / use-g2d=true开发调试使用 etnaviv + Mesa 更易调试。

2025-05-07 19:04:01 1333

原创 C++ 每日训练 · Day 17:只讲一件事 —— 死锁

核心问题说明死锁定义多线程间因互相持锁而无限等待,程序无法继续必要条件互斥、占有且等待、不可剥夺、循环等待实战示例线程交叉访问 log.txt 和 config.json,顺序不同导致死锁避免技巧加锁顺序统一、try_lock、自旋重试、std::lock 等调试方法打日志 + GDB + strace/valgrind/perf 等系统工具分析死锁是多线程系统中的“沉默杀手”,它不会引发异常,却会让程序永久卡住。在设计阶段就统一好资源加锁顺序、合理安排资源持有范围。

2025-05-07 11:40:28 967

原创 在 i.MX8MP 平台上使用 Vivante GPU 运行 Weston:原理、配置与完整调试指南

Yocto 中 GPU 驱动问题多来自版本不匹配或裁剪缺失;推荐使用 NXP 官方 BSP,避免混合不同 layer;Weston 启动失败大多与权限管理或用户态库不兼容有关;seat 权限系统在嵌入式中推荐使用seatd,配置简单、体积小;在开发初期,可以作为故障隔离手段。本项目从硬件架构、GPU 驱动、seat 权限、Yocto 配置到 weston 启动机制进行了全面梳理,为后续浏览器运行 AI 模型、图形显示打通底层图形加速通路。视频教程请关注 B 站:“嵌入式 Jerry”

2025-05-06 18:54:53 1042

原创 恩智浦 GoPoint 全面解析:初学者的嵌入式 AI 学习指南

GoPoint 是一个集成在 i.MX Yocto BSP 中的应用程序,提供了一个直观的界面,使开发人员能够轻松访问 i.MX 处理器的特定应用演示。它不仅突出了高级功能,还提供了实用的实现解决方案,并在 GitHub 上提供了应用的源代码和构建配方。GoPoint 确保开发人员获得出色的开箱即用体验,并迅速启动他们的项目。通过上述内容的学习,初学者不仅可以清晰理解 GoPoint 的技术架构与工作原理,还可以逐步掌握从简单体验到实际 AI 应用开发的全部过程。

2025-05-06 14:38:35 1148

原创 内核调试与性能分析全景图:工具汇总、优劣对比与市场趋势

初学推荐:从perfftracetrace-cmd入手;进阶选择:掌握eBPF/BCC脚本、内核符号调试;生产场景:崩溃用,调优用;可视化辅助:适配 FlameGraph、KernelShark。📺视频教程请关注 B 站:“嵌入式 Jerry”

2025-05-06 11:14:59 1084

原创 性能分析硬核特训 · Perf 全面指南:内核实例 + 原理实战 + 面试答疑

Perf 是 Linux 性能调优的核心工具之一,无论是系统开发、内核调试还是性能优化,都能提供强大支持。结合真实项目或内核模块进行采样分析;熟练使用 tracepoint 与 perf script;进阶学习 FlameGraph、ftrace、eBPF/BCC 等辅助工具。视频教程请关注 B 站:“嵌入式 Jerry”

2025-05-06 10:14:55 877

原创 驱动开发硬核特训 · Day 28(上篇):pinctrl 子系统详解与实战分析

引脚复用管理:允许将同一引脚配置为不同的功能,如 GPIO、UART 等。引脚配置管理:设置引脚的电气属性,如上拉/下拉、电平驱动能力等。状态管理:支持根据设备的不同工作状态(如正常、休眠)切换引脚配置。// ...pinctrl 子系统为 Linux 内核提供了一个统一的引脚管理机制,使得驱动开发者可以方便地配置引脚的复用和电气属性。通过设备树的配置和驱动中的 API 调用,pinctrl 子系统简化了引脚管理的复杂性,提高了驱动的可移植性和可维护性。嵌入式Jerry。

2025-05-05 18:14:24 921

原创 设计模式每日硬核训练 Day 18:备忘录模式(Memento Pattern)完整讲解与实战应用

我们在图像处理系统中使用备忘录模式保存图像编辑的中间状态。每次用户进行滤镜、剪裁、调整操作时,会生成一个状态快照,存入备忘录栈。当用户点击撤销时,恢复到上一个状态。该方案确保封装性,同时支持多层撤销。✅ 所以我们引入备忘录模式:由备忘录(Memento)保存对象状态,管理员(Caretaker)持有备忘录,对象(Originator)可保存/恢复。我们模拟一个文本编辑器,每次输入文本都可以保存当前状态。它是“撤销 / 恢复”操作背后的设计思想核心。✅ 强调:状态封装、用户体验、栈式回滚逻辑。

2025-05-05 17:33:15 1131

原创 设计模式每日硬核训练 Day 17:中介者模式(Mediator Pattern)完整讲解与实战应用

分类主要目的中介者模式归属理由创建型模式负责对象创建与实例化(如工厂、单例)❌ 中介者不负责创建对象结构型模式负责对象组合与组织(如适配器、桥接)❌ 中介者不改变对象静态结构行为型模式负责对象间通信与职责协作✅ 中介者专注协调对象之间的交互关系“中介调行为,不管造结构。场景中介者作用说明GUI 控件交互统一管理按钮、文本框、下拉框的协作逻辑聊天室系统聊天服务器作为中介,转发各用户消息航空交通管制系统塔台协调各飞机起降调度游戏多人房间管理。

2025-05-04 23:35:19 1061

原创 驱动开发硬核特训 · Day 27(下篇):深入掌握 Common Clock Framework 架构与实战开发

Common Clock Framework(CCF)是 Linux 内核自 v3.4 起引入的通用时钟架构,用于统一管理 SoC 上所有的时钟资源,解决平台异构、驱动分裂、代码冗余等问题。提供统一的时钟抽象接口(如clk_get()支持复杂的时钟树结构,包括分频、门控、复用器等组件。支持时钟源的动态切换与频率动态调整(DFS)。解耦设备驱动与时钟控制的实现。Provider 注册逻辑必须按 CCF 规则实现clk_hwclk_ops,并注册给框架;Consumer 驱动应只依赖标准。

2025-05-04 15:06:54 1151

原创 驱动开发硬核特训 · Day 27(上篇):Linux 内核子系统的特性全解析

子系统特性说明驱动注册机制基于 platform_driver / i2c_driver / spi_driver 等标准驱动模型通用 API 接口提供标准操作函数(如 clk_get,regulator_enable)资源管理能力框架统一调度、控制 enable/disable、依赖计数等支持设备树匹配使用 compatible 与设备树属性,支持灵活配置支持多种设备类型框架可支持多个同类型 Provider(如多个时钟源)可调试性提供 sysfs/debugfs 入口(如。

2025-05-04 14:52:32 1210

原创 理论+实战+工具+视频,能破解Yocto项目的技术难关?

理论+实战+工具+视频,能破解Yocto项目的技术难关?

2025-05-03 10:27:50 163 1

原创 理论+实战+工具+视频,能破解Yocto项目的技术难关?

理论+实战+工具+视频,能破解Yocto项目的技术难关?

2025-05-03 10:26:50 109

原创 Yocto项目学习门槛高,你真的这么觉得?

2025-05-02 09:07:28 185

原创 Yocto项目学习门槛高,你真的这么觉得?

2025-05-02 09:06:49 186

原创 Yocto项目实战教程,作者简介,五一快乐[特殊字符]

五一快乐~请多支持,共同进步。

2025-05-01 10:36:36 172

原创 Yocto项目实战教程,作者简介

请多多支持,共同进步。

2025-05-01 10:35:36 132

原创 感谢支持,共同进步

2025-04-30 07:55:11 84

原创 感谢支持,共同进步

2025-04-30 07:48:37 116

原创 驱动开发硬核特训 · Day 25 (附加篇):从设备树到驱动——深入理解Linux时钟子系统的实战链路

本次实战选取的例子是 ——UART 控制器(串口)。在 i.MX8MP 平台上,UART1控制器是一个非常典型的时钟消费者。它需要一个稳定的时钟源来驱动波特率生成器,确保数据收发的准确性。过程内容说明设备树定义通过指定设备需要使用的时钟及父时钟关系内核解析设备树使用等接口完成设备初步时钟配置驱动中申请时钟使用获取时钟句柄与设备生命周期绑定,自动管理释放启用时钟使用确保时钟开启,模块能够正常读写工作关闭时钟使用(通常在 remove 时)释放功耗资源,避免悬空开启。

2025-04-29 17:29:34 1292

原创 C++每日训练 Day 18:构建响应式表单与数据验证(初学者友好)

通过以上步骤,我们实现了一个响应式表单系统,使用协程清晰地表达了异步验证逻辑,避免了传统回调方式带来的复杂性。

2025-04-29 17:17:10 431

原创 驱动开发硬核特训 · Day 24(下篇):深入理解 Linux 内核时钟子系统结构

在上一章节中,我们详细探讨了 SoC 中时钟控制器的硬件组成和功能。本篇将聚焦于 Linux 内核中的时钟子系统,深入解析其架构、关键数据结构、驱动实现以及与设备树的关系,帮助您全面掌握时钟子系统的工作原理和开发要点。Linux 内核中的时钟子系统主要由 Common Clock Framework(CCF)组成,旨在为各种硬件平台提供统一的时钟管理接口。CCF 通过抽象不同类型的时钟,简化了时钟的注册、配置和使用流程,增强了内核的可移植性和可维护性。

2025-04-29 16:15:33 1191

原创 驱动开发硬核特训 · Day 24(上篇):走进Linux内核时钟子系统 —— 硬件基础全解析

Linux内核中,时钟子系统(Clock Subsystem)承担了统一管理硬件时钟资源的重要角色。要真正理解Linux内核的时钟子系统,必须先理解——**底层硬件中的时钟控制器是如何构建的,它们解决了什么问题,提供了什么能力。**

2025-04-29 15:46:08 1087

原创 设计模式每日硬核训练 Day 17:中介者模式(Mediator Pattern)完整讲解与实战应用

分类主要目的中介者模式归属理由创建型模式负责对象创建与实例化(如工厂、单例)❌ 中介者不负责创建对象结构型模式负责对象组合与组织(如适配器、桥接)❌ 中介者不改变对象静态结构行为型模式负责对象间通信与职责协作✅ 中介者专注协调对象之间的交互关系“中介调行为,不管造结构。场景中介者作用说明GUI 控件交互统一管理按钮、文本框、下拉框的协作逻辑聊天室系统聊天服务器作为中介,转发各用户消息航空交通管制系统塔台协调各飞机起降调度游戏多人房间管理。

2025-04-29 14:59:41 1109

原创 驱动开发硬核特训 │ 深度解析 fixed regulator 驱动与 regulator_ops

Linux 的Regulator 子系统是电源管理领域的重要基础设施。抽象各类供电资源(BUCK、LDO、固定电源、开关)统一标准化的 enable/disable/set_voltage 接口集中管理电源状态(包括 suspend/resume 生命周期)项目描述子系统作用统一管理硬件供电资源管理对象各种电压输出单元(BUCK/LDO/fixed/开关)上层使用标准 API,无需关心硬件细节配置来源设备树、驱动层次内容作用设备树 (.dts)描述供电需求、参数。

2025-04-28 12:18:48 1442 4

空空如也

空空如也

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

TA关注的人

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