自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MCU与CPU时钟概念详解:从基础到面试高频问题

本文解析了MCU/CPU时钟系统的核心概念,对比了内部时钟源(低成本但精度低)与外部时钟源(高精度但成本高)的特性与应用场景。重点阐述了时钟频率与系统性能的关系,以及分频/倍频技术的实现方法。文章整理8个高频面试考点,包括时钟抖动影响、PLL原理、RTC时钟选择等,并给出技术解决方案。最后总结时钟设计要点:需根据应用需求平衡精度、功耗与成本,合理运用时钟门控、分频和树形布局优化技术。全文为嵌入式开发与硬件设计提供了实用的时钟知识框架。

2025-05-28 11:28:36 157

原创 嵌入式高级工程师面试全解:从 malloc 到 kernel panic 的系统知识梳理

本文系统整理了嵌入式与操作系统方向的技术面试要点,涵盖内存管理、系统权限、虚拟化、调试工具和外设通信等核心内容。详细解析了malloc内存分配机制、栈/堆差异、内核态/用户态切换原理,以及QEMU/KVM虚拟化技术。同时介绍了kernel panic处理、perf性能分析工具和STM32时钟架构等实用知识。通过进程初始化流程、缺页中断机制和Linux IPC等内容,全面剖析系统级开发的关键技术点,为高级嵌入式工程师面试提供完整的知识框架和解决方案。

2025-05-27 21:23:47 691

原创 kallsyms 与 ftrace:巩固训练题(含答案与解析)

文章摘要: 本文围绕Linux内核调试工具kallsyms与ftrace展开,提供10道实战训练题及详细解析。内容涵盖: kallsyms:解析符号表字段、函数/变量类型判断、配合ftrace的查表机制、配置检查方法及地址反查函数名技巧。 ftrace:函数追踪命令示例、关键文件作用(如set_ftrace_filter)、无输出故障排查、常见tracer类型对比(如function/irqsoff),以及追踪时机对模块加载的依赖原理。 附京东购书链接及B站视频教程指引,适合嵌入式Linux开发者进阶学习。

2025-05-27 17:11:22 455

原创 /proc/kallsyms 全面解析和实战应用指南

本文全面解析Linux内核符号表/proc/kallsyms的功能与应用。作为内核调试的基础设施,它记录了所有函数和变量的地址映射,格式为"地址 类型 符号名"。文章详细介绍了符号类型含义,并展示了kallsyms与ftrace、perf、kprobe等调试工具的配合使用,包括常见问题解决方法。此外还涉及安全性配置、地址隐藏机制及实用工具链(nm/addr2line)的使用。kallsyms是内核调试的核心依赖,掌握其用法对模块开发、问题定位至关重要。文末推荐了作者的嵌入式Linux相关

2025-05-27 14:37:44 796

原创 嵌入式系统驱动开发全景解析:协议、裁剪与平台集成实战

本文系统整理了嵌入式Linux驱动开发的实战要点,从设备树、字符设备驱动到平台驱动注册机制,详细解析了驱动开发核心流程。针对常见外设通信协议(I2C/SPI/CAN/MIPI)进行对比分析,提供调试方法指导。同时介绍了Yocto项目裁剪优化、SoC启动流程等系统级知识,以及跨部门协作解决驱动问题的经验。适用于嵌入式驱动开发岗位学习,帮助开发者构建完整知识体系。

2025-05-27 11:42:23 645

原创 ftrace 实战调试:使用 ftrace 精确跟踪 I2C 设备驱动 probe 函数

本文以NXP i.MX8MP-EVK开发板为例,详细介绍了如何利用ftrace工具追踪I2C设备驱动的probe函数调用过程。文章首先说明调试目标,即验证pca9450芯片驱动是否正确加载;接着讲解内核ftrace配置方法;然后分步骤演示如何设置函数追踪、触发probe函数并查看结果;最后给出了调试结果分析和常见问题排查建议。通过ftrace可以无需修改代码就精确追踪驱动加载过程,适用于各类I2C外设驱动调试。文中还提供了实战场景总结和扩展调试建议,是嵌入式Linux驱动开发的实用调试指南。

2025-05-26 17:11:15 636

原创 Linux ftrace基础入门教程:内核调试者的强大利器

本文介绍了Linux内核调试工具ftrace的基础使用方法。ftrace是内核内置的函数跟踪工具,可用于分析函数调用、性能调优和异常排查。文章详细讲解了ftrace的核心功能、内核配置步骤(包括5个关键menuconfig选项)、基础操作指令(如跟踪函数、限定PID)、常用控制文件说明,以及适用场景(如验证probe函数、耗时分析等)。最后给出了与perf配合使用时的推荐配置示例,并强调ftrace是高效低负载的内核级调试利器。

2025-05-26 17:00:15 663

原创 C++每日训练 Day 19:死锁原理与实战剖析(打印机 + 扫描仪模型)

本文深入解析了C++多线程中的死锁问题,通过"打印机+扫描仪"模型生动演示了死锁发生的四个必要条件:互斥、占有并等待、不可抢占和循环等待。文章提供了死锁的代码实现示例,并详细分析了其触发机制。针对死锁问题,作者推荐了四种解决方案:统一加锁顺序、使用C++17的scoped_lock、尝试加锁+超时退出以及RAII资源控制。文中还包含巩固练习题和购书推荐,帮助读者全面掌握死锁的识别、预防与解决方法,提升多线程编程能力。

2025-05-26 14:28:36 680

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

本文详细讲解了备忘录模式(Memento Pattern)的设计与应用。该模式在不破坏封装的前提下保存对象内部状态,支持状态回滚。文章通过文本编辑器撤销操作实例,展示了备忘录模式的UML结构和C++实现,包含Originator、Memento、Caretaker三个核心角色。对比了备忘录模式与原型模式的区别,并解答了面试常见问题。最后提供了两个练习题:文本状态保存器和图形编辑器撤销操作,帮助读者深入理解该模式的实际应用场景。该模式适用于需要撤销/恢复功能的场景,如文档编辑、游戏存档等。

2025-05-26 14:19:24 568

原创 高通 QCS404 芯片平台全解析:从硬件架构到嵌入式软件落地

《高通QCS404嵌入式音频芯片开发指南》摘要:QCS404是高通面向智能音响和物联网设备设计的低功耗SoC,采用四核Cortex-A53架构,集成Hexagon DSP音频处理器。开发涉及BSP移植、Yocto定制(含meta-qualcomm层)、ALSA音频调试(aplay/arecord工具)和Factory Test模块开发。关键点包括通过设备树配置音频路径、使用Yocto构建定制镜像,以及利用ALSA框架实现音频功能验证。该芯片广泛应用于车载音响等场景,需掌握从内核驱动到量产测试的全流程开发技能

2025-05-26 11:48:58 645

原创 B站直播来了:Yocto 到底值不值得学?怎么学才高效?

【B站直播预告:Yocto项目学习指南】5月24日晚22点,作者孙杰将直播讲解Yocto项目的核心价值与学习方法。内容涵盖BitBake机制、系统构建框架、国产芯片/边缘AI应用场景分析,并推荐新书《Yocto项目实战教程》。适合嵌入式开发者、OpenBMC工程师及希望提升系统构建能力的技术人员。直播地址:B站1942244278,图书已在京东上架。通过实战案例,帮助开发者判断项目是否需要Yocto并掌握高效学习路径。(149字)

2025-05-24 12:41:51 376

原创 国内首本 Yocto 实战书,为何我决定把它写出来?

这不是一本炫技的书,而是一本务实、可用、贴近工程现场的书

2025-05-24 08:48:32 1037

原创 USB 软件架构全解:驱动模型、协议栈与开发机制详解

延续《USB 硬件原理全解》篇章,本文将聚焦于 USB 的软件架构、协议栈实现、驱动开发流程以及主从模式下的实际驱动设计逻辑,完整梳理 Linux 中 USB 子系统的核心实现机制,帮助开发者深入理解 USB 软件层的技术全貌。

2025-05-23 14:44:40 768

原创 USB 硬件原理全解:结构、通信、控制器与协议机制

USB(Universal Serial Bus)是现代嵌入式系统和通用计算平台中的关键通信接口,它以其即插即用、统一协议、多种速率等级和强大的主从控制能力成为设备通信的核心。本文聚焦 USB 的**硬件原理与电气架构**,旨在为工程师提供准确、完整的底层知识体系。

2025-05-23 11:48:28 1587

原创 国内首本 Yocto 实战书,为何我决定把它写出来?

国内首本 Yocto 实战书,为何我决定把它写出来?

2025-05-22 23:14:53 498

原创 ftrace 全面入门和实战指南 (Part 2 - 为内核代码添加专用 trace 点)

trace_printk()的使用,这是一种低开销的打印API,适用于需要控制性输出状态、追踪内部流程或输出到ftrace buffer的场景。文章通过示例代码展示了trace_printk()的基础使用、编译加载模块的流程,并对比了trace_printk与printk的区别,强调了trace_printk在调试中的高效性和低延迟优势。此外,书

2025-05-22 16:36:38 441

原创 ftrace 全面入门和实战指南 (Part 1 - 被动监控方)

《Yocto项目实战教程:高效定制嵌入式Linux系统》一书由嵌入式Jerry撰写,主要面向Linux驱动开发者、BSP经验积累者及Yocto开发环境下的内核调试需求者。书中详细介绍了Linux内核内置的ftrace工具链,该工具无需修改代码即可动态观察内核函数调用、事件执行等行为。文章通过实际场景(如i.MX8MP平台上USB设备无响应问题)展示了如何使用ftrace进行函数级跟踪,包括设置过滤函数、启动和停止跟踪、查看调用链和耗时等操作。ftrace的核心优势在于其无需代码修改,适合BSP分析、动态pr

2025-05-22 16:30:13 717

原创 Linux Kernel Debugfs 全面讲解和实战指南

`debugfs` 是 Linux 内核为了提供 **调试接口和开发数据推送** 而设计的一种虚拟文件系统,类似于 `/proc` 和 `/sys`,但是 **完全靠驱动程序动态创建**,不依赖于实际硬件设备。

2025-05-22 15:13:46 639

原创 内核调试高手养成实战 · Day 2:i.MX8MP 实战调试 Vivante GPU 驱动

> 聚焦 `galcore` 模块,从设备树绑定到驱动注册、再到用户空间验证,逐步带你掌握 GPU 驱动调试思路。

2025-05-21 18:33:15 1055

原创 内核调试高手养成实战 · Day 1:实体开发板上的调试方法汇总与实战入口

基于 NXP i.MX8MP-EVK 实体板,深入分析内核调试的典型场景和应对方式。不讲理论,只讲你真遇到问题时该怎么做!

2025-05-21 18:27:03 804

原创 驱动开发硬核特训 · Day 31:理解 I2C 子系统的驱动模型与实例剖析

本文深入探讨了Linux内核中I2C子系统的核心结构和工作机制。I2C子系统是一个总线型子系统,由控制器(i2c_adapter)、从设备(i2c_client)和驱动程序(i2c_driver)组成。控制器通过platform_driver注册,而从设备通过设备树挂载并创建i2c_client对象,最终与i2c_driver匹配。文章以AT24 EEPROM驱动为例,详细解析了驱动注册、设备匹配及数据传输过程,并提供了相关练习题和实战建议,帮助读者巩固理解。通过本文,读者可以全面掌握I2C子系统的组织方式

2025-05-20 20:23:50 867

原创 Runtime Suspend 专项训练

Runtime PM(运行时电源管理)是 Linux 内核为单个设备提供的自动挂起机制,旨在设备空闲时关闭其时钟、电源等资源以节能。与 System Suspend(系统休眠)不同,Runtime PM 控制粒度更细,调用频率更高,且由内核动态触发。设备驱动需实现 runtime_suspend 和 runtime_resume 回调,并确保 pm_runtime_get/put 正确配对。判断设备是否成功挂起可通过检查 control 设置、状态字段、usage 引用数及 perf 分析。若设备无法挂起,

2025-05-20 20:08:23 907

原创 Yocto 项目训练 :搞懂 BitBake 的构建流程

本文深入解析了Yocto项目中BitBake构建流程的核心机制,重点介绍了Task执行模型及其依赖链。通过实际案例,如分析busybox的构建流程,展示了如何使用BitBake命令进行任务列表查看、变量展开和构建调试。文章还提供了构建失败时的调试技巧,如查看日志和使用devshell手动构建。最后,通过练习题巩固了BitBake中关键任务的作用和常用命令的使用。掌握这些知识,有助于高效定制嵌入式Linux系统,并提升排障与扩展能力。

2025-05-19 22:29:16 986

原创 国内首部Yocto项目图书:高效定制嵌入式Linux系统

嵌入式Linux系统在国产芯片、智能家居、工业控制、智能汽车等领域广泛应用,并推动AIoT、边缘计算、智能医疗等技术的发展。然而,其开发面临硬件生态碎片化、定制化需求高、开发流程复杂、版本管理混乱等挑战。为应对这些问题,Yocto项目应运而生,它继承了Buildroot的快速构建优势,并通过高度定制化的工具链和广泛的硬件支持,弥补了Buildroot的不足。Yocto项目提供了一套灵活、可扩展、自动化的构建工具集,但其复杂的学习曲线和构建环境仍让许多开发者望而却步。《Yocto项目实战教程:高效定制嵌入式L

2025-05-19 22:01:37 1980

原创 国内首部Yocto项目图书:高效定制嵌入式Linux系统

嵌入式Linux系统在国产芯片、智能家居、工业控制等领域广泛应用,但开发面临硬件生态碎片化、定制化需求高、开发流程复杂等挑战。Yocto项目应运而生,弥补了Buildroot的不足,提供高度定制化的工具链和广泛的硬件支持,成为主流工具。然而,Yocto的学习曲线陡峭,构建环境复杂,初始构建时间长,增加了开发难度。为帮助开发者高效掌握Yocto,《Yocto项目实战教程:高效定制嵌入式Linux系统》结合理论与实践,系统化解析Yocto项目,提供实战案例,助力开发者快速上手。本书由资深工程师孙杰撰写,内容涵盖

2025-05-17 22:08:27 1262

原创 国内首部Yocto项目图书:高效定制嵌入式Linux系统

《Yocto项目实战教程:高效定制嵌入式Linux系统》是国内首部专注于Yocto项目的图书,旨在帮助开发者应对嵌入式Linux系统开发中的挑战。嵌入式Linux系统在智能家居、工业控制、智能汽车等领域广泛应用,但开发过程中面临硬件生态碎片化、定制化需求高、开发流程复杂等问题。Yocto项目作为主流工具,提供了高度定制化的构建工具集,弥补了Buildroot的不足,但其复杂的学习曲线和构建环境仍让许多开发者望而却步。本书结合作者孙杰的丰富经验,系统化地介绍了Yocto项目的核心框架和实战案例,包括树莓派和N

2025-05-17 22:07:46 967

原创 深入 Linux 内核:GPU Runtime Suspend 源码和工作流程全面分析

设备与驱动在 probe 时相关联,这些操作是 runtime PM 作用的基础。

2025-05-16 20:32:00 603

原创 GPU Runtime Suspend 调试与验证:从 sysfs 到 perf 分析

在基于NXP i.MX8MP平台调试GPU时,确认Vivante GPU2D/3D是否进入runtime suspend是降低功耗的关键。Runtime PM是Linux内核在设备空闲时自动进行suspend操作的机制,不同于全系统睡眠。设备进入suspend需满足五大条件,包括设备默认power/control为auto、驱动实现.runtime_suspend()/.runtime_resume()、挂载power domain、usage为0以及内核判定设备空闲。实际操作中,通过查看/sys/devi

2025-05-16 16:07:42 383

原创 [特殊字符]国内首部Yocto项目图书!

高效定制嵌入式Linux系统,做新时代的Linux系统架构师!📚【重磅新书】《Yocto项目实战教程:高效定制嵌入式Linux系统》

2025-05-16 15:27:21 259

原创 用户态、内核态、用户空间、内核空间:一次分清两层概念

在Linux内核中,用户态与内核态、用户空间与内核空间是两组关键概念,分别涉及CPU执行权限和虚拟内存地址的分域。用户态和内核态描述的是CPU当前的执行权限,用户态下CPU只能执行用户级指令,而内核态下CPU可以访问更底层的硬件资源。用户空间和内核空间则是指虚拟内存地址的划分,用户空间是各进程独立的内存区域,而内核空间是系统共享的内存区域。理解这两组概念的区别与联系,对于掌握Linux内核的运行机制至关重要,尤其是在处理系统调用、内存管理等方面。

2025-05-16 10:42:02 348

原创 刚上市几天,就冲进全国热销榜前五!

《Yocto项目实战教程:高效定制嵌入式Linux系统》在京东上线仅五天即跻身“计算机操作系统图书热卖榜”前五,成为唯一一本新上架即进入前列的技术书籍。该书未进行任何预热宣传,完全依赖读者口碑推动,迅速获得高度关注。它系统解决了工程师在学习Yocto项目时面临的教程碎片化、实战资料稀缺等问题,通过真实项目案例详细讲解了从最小镜像构建到完整系统定制的全过程,包括调试、发布、Docker集成等关键技能。该书凭借其实用性和深度,迅速在技术圈内获得广泛好评,成为Yocto学习者的必备参考。

2025-05-15 21:53:12 234

原创 Linux 内核核心知识热点题分析:10 个连环打通的难点

本文系统分析了 Linux 内核中的 10 个核心面试题,涵盖了用户态与内核态的切换、内核堆栈与用户堆栈的区别、中断处理、内存分配、内核上下文、系统调用、多线程调度、内核日志、平台驱动实现以及运行时挂起调试等关键知识点。通过这些问题的深入解析,读者可以更好地理解 Linux 内核的工作原理,掌握内核开发中的核心概念和技术细节,从而在面试中展现出扎实的内核知识基础。

2025-05-15 19:17:17 431

原创 Linux 内核框架总览:全面经纪体系解析

本文系统介绍了Linux内核的总体构成、启动流程、核心模块、设备模型、子系统分类及调试手段。Linux内核分为架构层、核心层、子系统层和驱动层,各层功能明确。启动流程从U-Boot/TF-A到内核初始化,核心模块包括调度器、内存管理、时钟和日志系统。设备模型通过device、driver和bus的匹配机制实现硬件操作。子系统如ALSA、regulator、pinctrl等各有其特定功能。调试手段包括日志、进程跟踪、系统跟踪等。学习Linux内核需先理解总体框架,再深入特定子系统,并通过调试工具跟踪内核行为,

2025-05-15 13:24:52 551

原创 连海外同学都在找Yocto书籍!

一位在德国的朋友询问是否可以使用信用卡购买《Yocto项目实战教程》一书,同时提到他未来将从事Linux开发工作,并需要从零开始学习Yocto。Yocto在嵌入式Linux领域的重要性日益凸显,无论是定制BSP镜像还是构建产品系统,Yocto已成为必备技能。这本书不仅适合初学者,也为从事BSP、系统裁剪和定制发行版的技术人员提供了坚实的基础。该书已在京东上架,支持信用卡购买,海外用户也可尝试下单。Yocto不仅是Linux工具,更是掌握嵌入式操作系统话语权的关键。如需配图发布,可附上截图原图以增强真实感与传

2025-05-14 22:38:32 694

原创 `dev_info()` 能做什么?驱动开发中的日志调试利器

传统的 printk() 当然能用,但它存在两个问题:输出不带上下文:你无法直接知道哪一个设备、哪一条总线产生了这条日志。维护性差:在多设备、多模块并存的复杂系统中,printk() 的信息常常缺乏“来源说明”。而 dev_info() 提供了解决方案:自动输出设备名称、驱动名、总线名日志更具结构性,便于筛选与追踪与设备生命周期绑定,语义更明确

2025-05-14 21:53:50 769

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

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

2025-05-13 23:09:18 444

原创 《驱动开发硬核特训 · 专题篇》:深入理解 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 1053

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

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

2025-05-13 11:39:45 647

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

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

2025-05-12 22:19:30 843

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

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

2025-05-12 16:16:06 495

空空如也

空空如也

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

TA关注的人

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