- 博客(11)
- 收藏
- 关注
原创 AMP架构下的核间通信:RPMSG与共享内存原理详解
本文以RK3568等异构多核硬件为例,深入浅出解析了AMP架构下核间通信的核心逻辑,阐明RPMSG并非替代共享内存,而是以共享内存为数据载体、硬件信箱为中断通知工具、VirtIO为数据管理规则,构建的标准化高层协议与框架,为开发者提供简洁API,实现不同操作系统核心间高效通信。
2025-09-07 18:17:51
1318
原创 深入浅出:Linux 设备树 (Device Tree) 解析流程详解
本文详细介绍了Linux设备树(Device Tree)的工作原理和解析流程。设备树通过将硬件描述与驱动代码分离,提高了内核的可移植性。文章从基础概念入手,解释了DTS、DTSI和DTB等核心组件,并详细梳理了设备树从编译到内核使用的完整流程:包括编译生成DTB、Bootloader加载、内核解析展开、驱动匹配等关键步骤。特别以RK3568平台的I2C设备为例,展示了设备树如何实现硬件描述与驱动匹配。最后总结了设备树"编译→加载→解析→匹配→使用"的完整流程。
2025-09-07 18:02:37
836
原创 HAL 层在 Android 架构中的位置
Android系统通过HAL层实现硬件抽象,其架构分为应用层(Java/Kotlin)、Framework(Java)、JNI/Native(C/C++)、HAL(C/C++)、内核驱动(C)和硬件层。HAL作为"硬件翻译官",通过动态加载机制和版本管理实现双向隔离,平衡性能与安全。典型调用链如Camera API经JNI转发到HAL,最终由内核驱动操作硬件。
2025-08-25 22:27:11
462
原创 RK3568中GC8034摄像头实时视频捕获然后在 LCD 显示
摘要:本项目开发了一个基于RK3568 Linux嵌入式系统的C语言程序,实现gc8034摄像头视频实时采集与LCD显示。系统通过V4L2 API控制摄像头获取NV12格式视频(800x600@30fps),使用nv12_to_rgb888函数转换为RGB888格式,并通过帧缓冲区API输出到1280x800 LCD屏幕。程序包含硬件初始化(/dev/video0、/dev/fb0)、内存映射和格式转换等核心功能,确保系统稳定运行。辅助工具cam_scan.c用于验证摄像头配置。
2025-07-08 10:16:44
782
原创 RK3568启动和引导过程摘要,包括依赖关系和日志摘录
设备内核版本启动介质:eMMC日志:分析日志 ,涵盖硬件初始化(DDR、eMMC、CPU)、外设(显示、触摸屏、摄像头)和问题(触摸屏、SDMMC 冲突等)。目标:明确启动流程的每个阶段,描述相邻步骤的依赖关系,提取日志 的关键代码片段,总结细节,助力嵌入式开发与调试。
2025-04-30 14:31:41
1164
原创 RK3568 HDMI 配置与调试指南
通过修改设备树、编译内核、检查 VOP 和 Connector 状态,以及控制 HDMI 和 CEC,本文展示了在 RK3568 平台上配置和调试 HDMI 输出的完整流程。配置 VP0 作为 HDMI 输出。使用 DRM 调试接口(和)监控状态。手动控制 HDMI 使能/禁用,验证热插拔功能。开发者可参考本文命令和输出,快速验证和调试 RK3568 的 HDMI 功能。
2025-04-29 22:47:50
3451
3
原创 Rockchip RK3568 平台上 /dev/videoX 和 /dev/v4l-subdevX 设备节点在摄像头应用中的作用
Video4Linux 版本 2 (V4L2) 是 Linux 系统中用于处理视频设备的标准 API 和驱动框架,旨在统一 USB 网络摄像头、电视调谐器、CSI 摄像头等视频硬件的接口。它通过设备驱动和用户空间 API 提供标准化视频输出,便于将视频功能集成到应用程序中。相较于 V4L1,V4L2 修复了设计缺陷,扩展性更强。设备节点是/dev目录下的特殊文件,作为内核驱动与硬件设备的接口,抽象底层硬件复杂性,通过标准文件操作和ioctl调用与用户空间交互。
2025-04-29 17:26:45
2053
1
原创 Markdown 基本语法教学
Markdown 是一种轻量级标记语言,语法简单,易于编写和阅读,可转换为 HTML,广泛应用于 优快云、GitHub 等平台。简洁高效:少量标记实现丰富格式。跨平台:支持多种编辑器(如 Typora、VS Code)和渲染工具。易转换:可导出为 HTML、PDF 等格式。
2025-04-27 16:36:57
742
原创 Git 版本控制系统使用总结
版本控制是记录文件内容变化的系统,便于查阅历史版本。跟踪变化:记录修改内容、时间、作者。协作开发:支持多人同时修改,合并更改。版本回溯:恢复特定版本,应对误删或错误。分支管理:隔离并行开发。适合版本控制的内容:源代码、开发/设计文档等会频繁修改的文件。。
2025-04-27 12:37:02
678
原创 Gitee创建新仓库并上传代码
本文总结了如何在 Gitee 平台上创建新仓库并通过 Git 命令行将本地代码上传至仓库的步骤,包括登录、创建仓库、初始化本地仓库、添加文件、提交更改、关联远程仓库和推送代码。
2025-04-27 12:24:40
2368
原创 嵌入式与物联网开发:为什么选择 MQTT 而不是 HTTP?
MQTT 的发布/订阅模式和轻量级设计非常适合物联网场景,比如在 STM32 上跑 Paho MQTT 客户端,只需几 KB 内存就能实现实时数据推送,比 HTTP 轮询高效得多。MQTT 因其轻量、低功耗、高实时性和灵活的发布/订阅模式,成为嵌入式和物联网开发的首选协议。相比 HTTP,MQTT 在资源受限、实时性要求高的场景下表现更优,尤其适合电池供电的设备和复杂网络拓扑。通过理解 MQTT 的工作原理和实际应用,你不仅能在面试中清晰讲解,还能在开发中设计更高效的通信方案。
2025-04-27 10:14:07
1244
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅