自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2025-05-09 19:42:29 18

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

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

2025-05-09 19:41:33 387

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

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

2025-05-08 20:37:21 629

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

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

2025-05-08 20:21:41 764

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

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

2025-05-08 17:42:13 570

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

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

2025-05-07 22:22:46 148

原创 驱动开发硬核特训 · 专题篇: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 1058

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

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

2025-05-07 11:40:28 778

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

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

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

2025-05-06 14:38:35 1078

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

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

2025-05-06 11:14:59 1075

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

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

2025-05-06 10:14:55 854

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

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

2025-05-05 18:14:24 857

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

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

2025-05-05 17:33:15 1085

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

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

2025-05-04 23:35:19 1052

原创 驱动开发硬核特训 · 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 1103

原创 驱动开发硬核特训 · 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 1196

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

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

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

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

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

2025-05-03 10:26:50 107

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

2025-05-02 09:07:28 182

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

2025-05-02 09:06:49 182

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

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

2025-05-01 10:36:36 170

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

请多多支持,共同进步。

2025-05-01 10:35:36 129

原创 感谢支持,共同进步

2025-04-30 07:55:11 80

原创 感谢支持,共同进步

2025-04-30 07:48:37 113

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

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

2025-04-29 17:29:34 1283

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

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

2025-04-29 17:17:10 424

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

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

2025-04-29 16:15:33 1185

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

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

2025-04-29 15:46:08 1080

原创 设计模式每日硬核训练 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 1422 4

原创 驱动开发硬核特训 │ Regulator 子系统全解

全称:Low Dropout Regulator(低压差线性稳压器)特点:输入电压与输出电压很接近,效率中等。应用:为噪声敏感器件供电,比如模拟电路、音频设备。全称:Buck Converter(降压开关稳压器)特点:输入电压高,输出电压低;效率高(通常 > 90%)。应用:为CPU、GPU、大电流设备供电。类型特点应用场景LDO简单、低噪声、低压差模拟电路、摄像头BUCK高效率、大电流层次作用硬件提供真实电源(LDO/BUCK/PMIC)Regulator 驱动层。

2025-04-28 11:45:26 971

原创 驱动开发硬核特训 │ Day 23(下篇): i.MX8MP LCDIFv3 驱动中的 Regulator 系统全解

分级内容最上层:设备LCDIF1 需要供电控制 LCDIF1 模块居位的集成基地regulator实际控制 PMIC 读写,打开或关闭电压pm_runtime云规划系统,根据设备工作流程自动解决GENPD框架组织 power-domain 相关调用是策略级的逻辑划分,它定义了模块应该怎样统一上电/下电,但自己不直接操作电源电压。Regulator是实际的电源控制执行者,负责具体的物理电源开关(比如通过 PMIC 控制 BUCK、LDO 等输出)。GENPD框架。

2025-04-28 10:04:13 1115

原创 驱动开发硬核特训 Day 23(上篇) : i.MX8MP LCDIFv3 驱动中的 Power Domain 管理全解

LCDIFv3 驱动中,实际不用直接管 power domain,所有操作都通过 platform framework + runtime PM + GENPD 来完成!完全完全完全是 完全自动系统,驱动只需做好自己属于设备框架的部分!

2025-04-28 09:22:21 790

原创 i.MX8MP LCDIFv3 驱动中的 Power Domain 管理全解

LCDIFv3 驱动中,实际不用直接管 power domain,所有操作都通过 platform framework + runtime PM + GENPD 来完成!完全完全完全是 完全自动系统,驱动只需做好自己属于设备框架的部分!

2025-04-27 16:39:37 760

原创 驱动开发硬核特训 · Day 22(下篇): # 深入理解 Power-domain 框架:概念、功能与完整代码剖析

在 Linux 内核中,Power-domain(电源域) 是指一组硬件模块的逻辑集合,这些模块可以被统一控制电源状态(上电、断电)。Linux 内核通过 Generic Power Domain Framework(GENPD) 来统一管理所有 Power-domain 的创建、绑定与控制。

2025-04-27 13:54:14 1213

原创 驱动开发硬核特训 · Day 22(上篇): 电源管理体系完整梳理:I2C、Regulator、PMIC与Power-Domain框架

I2C(Inter-Integrated Circuit)是一种简单而高效的串行总线协议,用于连接微控制器与外设(如PMIC、传感器等)。Regulator子系统统一管理系统中所有可以动态控制的电源输出,提供标准接口给上层(如power-domain、驱动程序)。PMIC(Power Management IC)集成多个电源模块(Buck/LDO等),PMIC驱动负责初始化芯片并注册各个电源通道到regulator子系统。

2025-04-27 13:20:33 973

原创 设计模式每日硬核训练 Day 16:责任链模式(Chain of Responsibility Pattern)完整讲解与实战应用

场景链式责任节点GUI 事件处理子控件 → 父控件 → 窗口根Web 请求处理认证中间件 → 日志中间件 → 缓存中间件业务审批流组长 → 部门经理 → 总经理客户请求分发客户端路由规则链配置查找链环境变量 → 配置文件 → 默认值。

2025-04-27 10:39:52 950

原创 驱动开发硬核特训 · Day 21(上篇加强版):深入理解子系统机制与实战初探

接口不统一:每类设备定义自己的操作方式用户访问混乱:无法通过统一路径管理设备内核膨胀严重:各种 if-else、switch-case 代码横行类型作用示例本质字符设备 (cdev)提供read/write/ioctl接口用来读写硬件子系统 (class)统一组织管理设备便于分类管理设备模型 (device model)内核统一抽象子系统基于它。

2025-04-26 16:25:08 1193

原创 Yocto项目实战教程-第8章-树莓派启动定制镜像-8.4小节-使用Wic工具创建分区镜像

Wic 是 Yocto 项目中oe-core它基于 Kickstart 脚本(.wks文件)定义分区结构,并使用底层工具(如partedmkfs.ext4dd等)构建磁盘镜像。最终可生成.wic.sdimg.img等格式的镜像文件,适用于 SD 卡、eMMC、U 盘或虚拟机磁盘。在 BSP 层或并通过local.confWic 工具为 Yocto 项目提供了灵活而强大的分区镜像创建能力。

2025-04-26 12:11:41 1370

空空如也

空空如也

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

TA关注的人

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