- 博客(46)
- 收藏
- 关注
原创 Amazon Kinesis Video Streams C WebRTC SDK 开发实战
本文介绍了WebRTC实时音视频传输技术及其在物联网中的应用。WebRTC作为开源项目,支持浏览器和移动应用的点对点音视频通信,具有低延迟、标准化、安全性高等优势。文章详细解析了WebRTC架构,包括信令、STUN/TURN服务器等核心组件,并重点介绍了Amazon KVS WebRTC SDK的全托管服务特性。同时对比了海康、威视通等厂商的WebRTC方案,提供了设备端实现WebRTC的技术选型建议,包括局域网/公网部署方案和编译指南。该技术为物联网设备提供了高效可靠的实时音视频通信解决方案。
2026-04-26 22:57:55
644
原创 蓝牙差异更新方案(bsdiff/bspatch)
本文提出了一种基于bsdiff/bspatch的蓝牙OTA更新方案,用于嵌入式设备固件升级。系统通过手机端计算新旧固件的二进制差异(80MB固件仅需165KB补丁,压缩比0.2%),经蓝牙传输至设备端还原新版本。方案详细描述了手机端补丁生成流程和设备端补丁应用步骤,包括分区操作、槽位切换等关键操作。实测数据显示该方案显著降低传输数据量(BLE传输时间<5秒),并利用RAUC的A/B槽机制确保更新可靠性。文中还提供了验证方法和Buildroot配置建议,特别强调了内存占用、分区大小匹配等注意事项。
2026-04-26 08:49:55
623
原创 STM32MP2 Secure Boot实战
本文介绍了在Ubuntu 24.04 LTS系统上使用STM32CubeProgrammer 2.22.0工具进行STM32MP2开发的相关操作流程。主要内容包括:环境变量设置、密钥生成与烧录(生成8组公私钥及PKHTH文件)、设备锁定与密钥撤销机制、以及FSBL镜像的签名处理(含加密与非加密两种方式)。文中提供了详细的命令行操作步骤和关键参数说明,并附有相关配置界面的截图参考。这些操作主要针对STM32MP2系列芯片的安全启动和固件验证功能进行配置。
2026-04-25 22:22:24
259
原创 STM32MP2安全启动技术深度解析
本文详细解析了STM32MP2微处理器的安全启动机制。安全启动通过多级验证架构确保固件完整性,从初始启动加载器(FSBL)到OP-TEE、U-Boot直至内核,每一级都需通过签名验证。文章深入介绍了密钥生成管理、固件签名流程、FIP镜像包结构以及OTP配置烧录等关键技术环节,并提供了调试方法和安全注意事项。该机制以OTP存储器中的公钥哈希为信任根基,通过链式验证有效防止恶意代码执行,为嵌入式设备构建了可靠的安全防线。开发过程中需严格管理私钥安全,遵循测试验证后再烧录的规范流程。
2026-04-25 22:13:28
428
原创 STM32MP2 RIF资源隔离框架详解:从架构到实践
RIF(Resource Isolation Framework)是STM32MP2系列微处理器中引入的资源隔离框架,用于实现外设和内存区域的访问控制。本文将深入解析RIF的架构设计、核心组件以及实际配置方法。RIF资源隔离框架是STM32MP2安全架构的核心组件,通过合理的配置可以实现细粒度的访问控制。理解RIF的架构设计和配置方法,对于开发安全可靠的嵌入式系统至关重要。参考文档STM32MP2系列参考手册CubeMX用户指南OP-TEE安全扩展文档。
2026-04-25 22:09:08
457
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(八)
本文总结了基于正点原子STM32MP257开发板使用STM32CubeMX+OpenSTLinux开发过程中遇到的10个典型问题及解决方案,包括SDMMC/RCC配置警告、TF-A阶段USB控制台报错、DDR初始化失败、RISAF4加密配置错误、OP-TEE安全访问异常等关键问题。重点指出DDR加密功能不支持、RISAB保护寄存器配置错误等硬件差异导致的问题,并提供了设备树修改、CubeMX参数调整等具体解决方法。这些经验对STM32MP2系列开发具有重要参考价值,可帮助开发者快速定位和解决类似问题。
2026-04-05 11:42:43
556
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(七)
本文介绍了STM32MP2平台中OP-TEE启动所需的关键外设与设备树配置。主要内容包括:1)OP-TEE在安全世界中的核心功能(电源管理、安全控制等);2)关键外设配置(I2C7、IPCC、PWR、SERC、USART2);3)必须手动添加的设备树补充代码(如CPU电源供应、SCMI调节器、RISAF等);4)常见问题点(CPU电源绑定、SCMI调节器对应关系等)。这些配置CubeMX不会自动生成,但对系统正常启动至关重要,缺失会导致OP-TEE卡死或电源管理失效。
2026-04-03 09:31:03
278
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(六)
本文记录了STM32MP2平台在TF-A启动阶段遇到的典型问题及解决方案。主要包括:1) TF-A PANIC报错,通过添加串口别名、chosen节点和OTP配置解决;2) DDR电源初始化失败,通过补充DDR供电配置修复;3) FCONF配置不完整错误,通过添加dtb-registry节点解决。文章还详细介绍了I2C7总线和STPMIC2电源管理芯片的完整设备树配置。目前系统已成功完成TF-A阶段初始化,进入OP-TEE阶段,为后续启动流程奠定了基础。
2026-02-03 11:19:43
521
原创 使用 LTC4150 库仑计进行锂电池电量测量
本文介绍了使用LTC4150库仑计芯片精确测量锂电池电量的方案。相比传统ADC电压测量法,LTC4150通过统计充放电电量脉冲来计算剩余容量,不依赖非线性放电曲线,在负载变化时仍能保持精度。硬件连接简单,只需将LTC4150的INT和POL引脚接入MCU,通过中断方式统计电量脉冲。该方案特别适合单节3.7V锂电池应用,能准确跟踪实际充放电过程,解决了单纯电压测量误差大的问题。文中还提供了硬件连接示意图和Arduino代码实现思路。
2026-02-02 14:27:39
570
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(九)
本文介绍了在STM32MP257开发板的U-Boot阶段点亮MIPI屏幕的方法。通过分析STM32MP2显示系统架构(LTDC→DSI Host→MIPI D-PHY→LCD Panel),详细说明了设备树配置和驱动实现过程,包括4 lane和1 lane两种MIPI屏幕的连接方式。文章提供了完整的设备树节点描述、驱动文件配置方法,并展示了厂家提供的屏幕时序和初始化参数。最后通过编译测试和板端验证,成功实现了在U-Boot阶段显示启动画面的功能,为硬件验证和系统调试提供了便利。
2025-12-20 16:18:40
487
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(五)
本文介绍了STM32MP25开发板的自定义Flash布局配置过程。首先下载Starter Package并提取FLASH压缩包中的flashlayout_st-image-weston文件,然后基于参考文件创建新的FlashLayout_emmc_stm32mp257dak3-optee.tsv配置文件,详细定义了各分区的类型、位置和二进制文件路径。在烧录验证阶段出现了PANIC错误,作者表示后续将通过修改CubeMX配置来完善启动链(TF-A -> optee -> uboot -> kernel
2025-12-06 15:55:34
466
原创 CSDN 又开始整活?我免费文章竟被自动改成 VIP!
CSDN未经授权将用户免费文章自动转为VIP付费内容引发不满。作者表示写博客仅为记录学习笔记和个人备份,平台多次擅自修改文章属性(设为VIP/原创、强制插广告等)违背创作初衷。目前已着手将文章手动改回免费状态,并考虑将内容迁移至GitHub或独立博客。该事件反映平台过度商业化损害用户体验的问题。
2025-12-03 10:09:36
1615
2
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(四)
本文详细介绍了STM32MP257开发板的开发环境搭建和固件编译流程。首先通过STM32CubeMX创建工程并配置DDR控制器和USART2串口,然后准备设备树文件并建立软连接。接着分步骤编译TF-A(支持EMMC启动和USB下载两种模式)、optee-os和u-boot,最终生成FIP镜像文件。整个流程包含了环境变量设置、源码编译和设备树配置等关键步骤,为后续的固件烧录和系统调试奠定了基础。文章还预告了下一章将介绍Flash.tsv文件制作和STM32 Programmer烧录方法。
2025-12-01 21:05:55
635
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(三)
本文详细介绍了STM32MP2平台下DDR PHY、TF-A、OP-TEE和U-Boot的编译过程。首先解压并初始化各组件源码仓库,打补丁后创建WORKING分支;然后设置环境变量,使用Makefile.sdk.stm32mp2分别编译各组件,成功后在FIP_artifacts目录下生成对应的二进制文件。最后提到下一章将使用STM32CubeMX生成的设备树继续编译流程。整个过程严格遵循各组件README.HOW_TO.txt.stm32mp2文档指引,确保编译正确性。
2025-12-01 21:02:15
464
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(二)
本文介绍了STM32MPU开发者套件的安装过程。首先需要从官网下载两个压缩包:SDK和源码包。然后解压SDK并赋予执行权限,可选择默认或指定目录安装。安装完成后创建软链接并声明SDK环境变量,验证工具链版本和架构信息。最后解压OpenSTLinux BSP源码包完成安装。整个过程提供了详细的命令行操作步骤和环境配置方法,为开发者使用STM32MPU平台提供了基础环境搭建指南。
2025-11-30 15:40:45
616
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(一)
本文介绍了使用STM32CubeMX从零开始创建STM32MP2项目并生成OpenSTLinux Yocto系统所需设备树的过程。主要内容包括:1) 安装STM32CubeMX和MP2器件包;2) 新建MP2项目并选择芯片型号;3) 说明MP2特有的项目目录结构;4) 详细配置外设引脚、时钟、DDR等关键参数;5) 生成TF-A、U-Boot、Kernel和OP-TEE所需的设备树文件。文章强调CubeMX在STM32MP2开发中的核心作用,能自动生成完整的启动链设备树,为后续集成到Yocto系统奠定基础。
2025-11-28 22:29:50
1510
1
原创 STM32MP1 没有硬件编解码,如何用 CPU 实现 H.264 编码支持 WebRTC?
本文探讨了在STM32MP1平台上使用CPU实现H.264视频编码的可行性。STM32MP157/153系列SoC虽然性能尚可,但缺乏专用视频编解码单元(VPU)。实验采用x264编码库,通过交叉编译在STM32MP1上运行。结果显示:CPU占用率高达150%(双核满载),编码效率低且温度显著上升,无法满足实时WebRTC需求。结论指出,实际应用中应采用带硬件编码的摄像头、外部VPU模块,或将编码任务交由上位机/云端处理。该方案验证了纯CPU编码的技术可能性,但证实了其实用性不足。
2025-11-13 17:19:32
851
原创 正点原子STM32MP157震撼开源,Yocto构建教程揭秘
摘要:本文详细介绍了STM32MP1 Yocto开发环境的配置与镜像编译过程。主要内容包括:通过GitHub获取官方仓库代码、下载Yocto依赖包、设置环境变量、修改配置文件路径、执行镜像编译步骤,以及使用烧录工具将镜像写入开发板。文档还提供了完整的项目目录结构说明和待开发功能列表,并附有相关参考链接。整个过程图文并茂,从环境搭建到最终验证均提供详细指导,适用于STM32MP1开发板的嵌入式Linux系统开发。
2025-11-07 21:56:41
1245
原创 交叉编译aws kvs webrtc
本文介绍了在Linux环境下交叉编译AWS Kinesis Video Streams WebRTC SDK的过程。首先设置交叉编译器环境变量,使用arm-none-linux-gnueabihf工具链。然后克隆SDK代码库并创建构建目录。通过CMake配置编译选项,包括启用静态库构建、OpenSSL编译,并指定不同平台参数(linux-generic32、x86_64和arm-none-linux-gnueabihf)。最后执行make命令完成编译过程。该流程适用于为ARM架构设备构建WebRTC视频流S
2025-11-06 09:42:45
356
原创 LVGL && SquareLine Studio使用记录
摘要 该项目展示了一个多屏幕人脸识别系统,包含5个功能界面:S0实时视频输出、S1模拟SHELL交互GUI、S2主菜单(支持人脸跟踪/识别/注册/删除)、S3人脸注册界面、S4动画效果界面和S5人脸注册界面。系统通过动态演示展示了流畅的交互效果,开发者表示后续将考虑开源整个工程。该项目整合了实时视频处理、GUI交互和多种人脸识别功能于一体。
2025-09-28 17:26:57
303
原创 从零开始WebRTC(一)
亚马逊Kinesis视频流WebRTC SDK(C语言版)提供完整的音视频通信解决方案,支持VP8/H264视频编码和Opus/G.711音频编码。该SDK包含开发者可控的媒体管道、数据通道、NACK丢包恢复和STUN/TURN穿透服务,并内置信令客户端,可与Android/iOS/Web端快速对接。其特点包括支持WebRTC流媒体存储、跨平台兼容性(Linux/MacOS/x64/ARMv5)、轻量级设计(<200KB)以及简洁的构建流程。用户可通过Git克隆源码,使用CMake进行跨平台编译部署。
2025-09-26 16:10:00
486
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十三)
本文介绍了基于STM32CubeMX从零开始构建OpenSTLinux 6.6 Yocto系统的过程。主要内容包括:下载官方Yocto仓库并添加自定义层(meta-my-custo-layer),配置编译环境后成功构建系统镜像;使用STM32CubeProgrammer将生成的镜像烧录到开发板EMMC启动;完整项目已在GitHub开源,并列出待完善功能如屏幕调色、PWM背光控制、声卡支持等。该项目为STM32MP157DAA1开发板提供了完整的Yocto构建方案。
2025-08-21 23:11:07
325
原创 WebRTC调研
WebRTC是一种支持浏览器实时音视频通信的开源技术,具有低延迟、端到端加密等优势。其架构包含信令服务器、STUN/TURN服务器和媒体传输层。Amazon KVS WebRTC提供了云端解决方案,海康、威视通等厂商也将其应用于门禁监控等场景。实现WebRTC需处理信令交互、媒体流共享等关键环节,可借助mongoose、KVS等协议栈开发。编译部署涉及环境配置、库依赖管理等内容。该技术正广泛应用于物联网、视频会议等领域,是构建实时通信系统的重要选择。
2025-06-09 21:53:56
1059
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十二)
本文介绍了YT8511网络驱动在Linux内核中的修改方法。针对使用ST官方YT8511驱动时出现的根文件系统网络问题,需要替换两个关键文件:将motorcomm.c替换到drivers/net/phy/目录,motorcomm_phy.h替换到include/linux/目录。文档详细提供了内核重新编译的完整命令流程,包括配置合并、镜像生成、模块安装和设备树复制等步骤。最后给出了通过NFS启动的bootargs环境变量设置示例,并附带了操作过程截图。该解决方案可确保系统正常使用nfsroot启动网络功能。
2025-06-08 14:51:36
494
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十一)
本文介绍了使用Buildroot构建嵌入式Linux根文件系统的步骤。首先从官网下载Buildroot源码包,建议使用正点原子的交叉编译工具链。配置过程包括设置目标平台选项、工具链路径、系统配置参数、文件系统镜像格式等关键步骤,特别要注意禁用Linux内核和uboot的编译选项。完成配置后执行make编译,生成的根文件系统可通过NFS挂载启动。最后给出了uboot环境变量的具体设置参数,用于从网络加载根文件系统。整个流程为嵌入式开发提供了完整的根文件系统构建方案。
2025-06-08 14:29:44
505
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十)
针对Linux启动过程中的两个常见问题:1)解决CPU节点缺失clock-frequency属性的报错,可通过在设备树cpu节点中明确添加时钟频率属性;2)分析内核崩溃无法挂载根文件系统的原因,是由于根文件系统缺失所致,解决方法包括制作根文件系统并正确配置uboot的bootargs参数。第一个问题已通过修改设备树解决,第二个问题将在后续制作根文件系统来处理。
2025-06-08 13:55:07
406
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
本文记录了STM32MP157开发板的设备树移植、内核编译及启动配置过程。主要包括:同步uboot设备树修改到内核、添加设备树编译选项、参考正点原子修改YT8511网络驱动、配置内核编译环境并通过tftp启动系统。同时涉及uboot网络参数设置、ext4文件系统制作以及eMMC固件下载步骤。最后提出两个待解决问题:CPU缺少clock-frequency属性导致的内核报错,以及VFS无法挂载根文件系统的原因分析。整个移植过程涵盖了从设备树适配到系统启动的关键环节。
2025-06-08 13:43:17
1310
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(八)
本文总结了STM32MP157D开发板uboot启动异常及解决方法,主要包括:1) 网络问题通过修改设备树添加ethernet0节点和phy配置解决;2) 旧版本设备树警告提示;3) EMMC启动环境变量加载错误通过增加分区表条目解决;4) MAC地址无效通过手动设置解决。还介绍了uboot编译命令和烧录分区配置方法,并提出关于以太网配置和引脚模式选择的思考问题。文章提供了从问题定位到解决方案的完整过程,对嵌入式Linux开发具有参考价值。
2025-06-06 18:21:16
1209
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(七)
本文介绍了uboot设备树的修改配置,主要包括:1) 包含必要的头文件;2) 在根节点下增加设备别名、电源调节器等配置;3) 对i2c1、sdmmc2、usbh和usb_otg等接口进行详细配置;4) 修改uboot的Makefile.sdk文件,仅保留optee-emmc和optee-programmer-usb两种FIP配置;5) 最后编译uboot源码。这些修改主要涉及设备驱动配置、电源管理和USB接口优化等关键功能。
2025-06-05 14:36:14
1238
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(六)
本文介绍了OP-TEE设备树的修改、编译及验证过程。主要内容包括:修改STM32MP157D开发板的设备树文件,配置串口、pinctrl、电源管理等节点;将修改后的设备树复制到OP-TEE源码目录进行编译,生成多个二进制文件;最后通过烧录到开发板验证修改结果,成功进入OP-TEE并显示启动信息。整个流程覆盖了从设备树修改到实际硬件验证的关键步骤,为开发基于STM32MP157D的安全应用提供了参考。
2025-06-05 14:14:01
1031
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(五)
本文摘要总结了STM32MP157D开发板的TF-A设备树修改和编译过程。主要内容包括:1) 设备树配置,如串口设置(uart4作为输出)、SDMMC2引脚配置(8位数据总线、上拉电阻、推挽驱动等)、RCC兼容性声明;2) Makefile.sdk文件修改,指定默认TF-A配置为optee-emmc和optee-programmer-usb;3) 编译流程,使用特定命令生成tf-a二进制文件和元数据文件;4) 最终生成tf-a-stm32mp157d--emmc.stm32和-programmer-usb.
2025-06-04 14:44:23
1548
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(四)
本文介绍了使用STM32CubeMX配置STM32MP157DAA1开发板的步骤。首先需安装STM32Cube MCU Package 1.7.0版本,然后新建项目并选择对应CPU型号。重点配置了DDR3内存参数(32位宽度,8Gb密度,533MHz频率)、电源管理、时钟源(HSE/LSE)、PLL1主频设置、RNG1随机数生成器、SDMMC2存储接口、UART4串口通信(配置为异步模式)以及USB高速和OTG接口。最后生成设备树代码,为后续开发提供硬件配置基础。
2025-06-04 11:57:03
654
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(三)
本文介绍了从零开始构建OpenSTLinux 6.6 Yocto系统的第三部分,主要包含以下步骤:1) 解压ST官方源码包;2) 分别进入TF-A、OP-TEE、U-Boot和Linux内核目录,按照各组件README.HOW_TO.txt文件中的4.2章节指引,将相应命令复制到test.sh脚本中运行,完成补丁打补丁和Git仓库创建操作。每个步骤都附有命令行截图,指导用户正确执行补丁应用和版本控制初始化过程。这些操作为后续系统构建奠定了源码基础。
2025-06-04 10:29:17
572
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(二)
本文介绍了STM32MP1开发环境搭建步骤:1)从官网下载源代码、交叉编译器和STM32CubeMX工具;2)安装交叉编译工具链,包括解压SDK包、设置执行权限、运行安装脚本、创建软链接和环境配置;3)在Windows系统安装STM32CubeMX;4)解压源代码包。最后提到后续将为TF-A/OP-TEE/U-Boot/Kernel打补丁。文档提供了详细的命令行操作和验证截图,并附有ST官方Wiki参考链接。
2025-06-04 09:57:31
728
原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(一)
本文详细介绍了基于STM32MP15和Yocto的嵌入式Linux系统开发流程。首先搭建Ubuntu开发环境并获取官方源码;然后通过STM32CubeMX配置外设并生成设备树文件;接着将设备树集成到Yocto系统中,编译TF-A/OPTEE/Bootloader和内核;构建完整文件系统后,使用STM32烧录工具进行部署;最后通过串口调试验证设备树加载情况,并测试USB、SPI等外设功能。整个过程涵盖了从环境配置到系统验证的完整开发链。
2025-06-04 09:02:54
805
原创 STM32MP1移植ESP-Hosted(1)
将stm32mp157c-100ask-512d-v1.dtb和uImage复制到tftp目录,在uBoot下按空格,设置从网络启动。使用100ask_stm32mp157_pro_defconfig。如果遇到网络错误,设置serverip和ipaddr。硬件连接,底板上SPI有SCK不能浮空,否则会异常。确保板子上有根文件系统。
2024-12-26 22:13:13
970
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅