自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从零开始打造 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 311

原创 从零开始打造 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 317

原创 优快云 又开始整活?我免费文章竟被自动改成 VIP!

优快云未经授权将用户免费文章自动转为VIP付费内容引发不满。作者表示写博客仅为记录学习笔记和个人备份,平台多次擅自修改文章属性(设为VIP/原创、强制插广告等)违背创作初衷。目前已着手将文章手动改回免费状态,并考虑将内容迁移至GitHub或独立博客。该事件反映平台过度商业化损害用户体验的问题。

2025-12-03 10:09:36 272

原创 从零开始打造 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 516

原创 从零开始打造 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 307

原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(二)

本文介绍了STM32MPU开发者套件的安装过程。首先需要从官网下载两个压缩包:SDK和源码包。然后解压SDK并赋予执行权限,可选择默认或指定目录安装。安装完成后创建软链接并声明SDK环境变量,验证工具链版本和架构信息。最后解压OpenSTLinux BSP源码包完成安装。整个过程提供了详细的命令行操作步骤和环境配置方法,为开发者使用STM32MPU平台提供了基础环境搭建指南。

2025-11-30 15:40:45 394

原创 从零开始打造 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 1026

原创 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 705

原创 正点原子STM32MP157震撼开源,Yocto构建教程揭秘

摘要:本文详细介绍了STM32MP1 Yocto开发环境的配置与镜像编译过程。主要内容包括:通过GitHub获取官方仓库代码、下载Yocto依赖包、设置环境变量、修改配置文件路径、执行镜像编译步骤,以及使用烧录工具将镜像写入开发板。文档还提供了完整的项目目录结构说明和待开发功能列表,并附有相关参考链接。整个过程图文并茂,从环境搭建到最终验证均提供详细指导,适用于STM32MP1开发板的嵌入式Linux系统开发。

2025-11-07 21:56:41 1006

原创 交叉编译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 322

原创 LVGL && SquareLine Studio使用记录

摘要 该项目展示了一个多屏幕人脸识别系统,包含5个功能界面:S0实时视频输出、S1模拟SHELL交互GUI、S2主菜单(支持人脸跟踪/识别/注册/删除)、S3人脸注册界面、S4动画效果界面和S5人脸注册界面。系统通过动态演示展示了流畅的交互效果,开发者表示后续将考虑开源整个工程。该项目整合了实时视频处理、GUI交互和多种人脸识别功能于一体。

2025-09-28 17:26:57 237

原创 从零开始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 451

原创 从零开始打造 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 264

原创 WebRTC调研

WebRTC是一种支持浏览器实时音视频通信的开源技术,具有低延迟、端到端加密等优势。其架构包含信令服务器、STUN/TURN服务器和媒体传输层。Amazon KVS WebRTC提供了云端解决方案,海康、威视通等厂商也将其应用于门禁监控等场景。实现WebRTC需处理信令交互、媒体流共享等关键环节,可借助mongoose、KVS等协议栈开发。编译部署涉及环境配置、库依赖管理等内容。该技术正广泛应用于物联网、视频会议等领域,是构建实时通信系统的重要选择。

2025-06-09 21:53:56 1029

原创 从零开始打造 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 394

原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十一)

本文介绍了使用Buildroot构建嵌入式Linux根文件系统的步骤。首先从官网下载Buildroot源码包,建议使用正点原子的交叉编译工具链。配置过程包括设置目标平台选项、工具链路径、系统配置参数、文件系统镜像格式等关键步骤,特别要注意禁用Linux内核和uboot的编译选项。完成配置后执行make编译,生成的根文件系统可通过NFS挂载启动。最后给出了uboot环境变量的具体设置参数,用于从网络加载根文件系统。整个流程为嵌入式开发提供了完整的根文件系统构建方案。

2025-06-08 14:29:44 415

原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十)

针对Linux启动过程中的两个常见问题:1)解决CPU节点缺失clock-frequency属性的报错,可通过在设备树cpu节点中明确添加时钟频率属性;2)分析内核崩溃无法挂载根文件系统的原因,是由于根文件系统缺失所致,解决方法包括制作根文件系统并正确配置uboot的bootargs参数。第一个问题已通过修改设备树解决,第二个问题将在后续制作根文件系统来处理。

2025-06-08 13:55:07 332

原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

本文记录了STM32MP157开发板的设备树移植、内核编译及启动配置过程。主要包括:同步uboot设备树修改到内核、添加设备树编译选项、参考正点原子修改YT8511网络驱动、配置内核编译环境并通过tftp启动系统。同时涉及uboot网络参数设置、ext4文件系统制作以及eMMC固件下载步骤。最后提出两个待解决问题:CPU缺少clock-frequency属性导致的内核报错,以及VFS无法挂载根文件系统的原因分析。整个移植过程涵盖了从设备树适配到系统启动的关键环节。

2025-06-08 13:43:17 1210

原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(八)

本文总结了STM32MP157D开发板uboot启动异常及解决方法,主要包括:1) 网络问题通过修改设备树添加ethernet0节点和phy配置解决;2) 旧版本设备树警告提示;3) EMMC启动环境变量加载错误通过增加分区表条目解决;4) MAC地址无效通过手动设置解决。还介绍了uboot编译命令和烧录分区配置方法,并提出关于以太网配置和引脚模式选择的思考问题。文章提供了从问题定位到解决方案的完整过程,对嵌入式Linux开发具有参考价值。

2025-06-06 18:21:16 1091

原创 从零开始打造 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 1115

原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(六)

本文介绍了OP-TEE设备树的修改、编译及验证过程。主要内容包括:修改STM32MP157D开发板的设备树文件,配置串口、pinctrl、电源管理等节点;将修改后的设备树复制到OP-TEE源码目录进行编译,生成多个二进制文件;最后通过烧录到开发板验证修改结果,成功进入OP-TEE并显示启动信息。整个流程覆盖了从设备树修改到实际硬件验证的关键步骤,为开发基于STM32MP157D的安全应用提供了参考。

2025-06-05 14:14:01 943

原创 从零开始打造 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 1435

原创 从零开始打造 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 535

原创 从零开始打造 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 436

原创 从零开始打造 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 537

原创 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(一)

本文详细介绍了基于STM32MP15和Yocto的嵌入式Linux系统开发流程。首先搭建Ubuntu开发环境并获取官方源码;然后通过STM32CubeMX配置外设并生成设备树文件;接着将设备树集成到Yocto系统中,编译TF-A/OPTEE/Bootloader和内核;构建完整文件系统后,使用STM32烧录工具进行部署;最后通过串口调试验证设备树加载情况,并测试USB、SPI等外设功能。整个过程涵盖了从环境配置到系统验证的完整开发链。

2025-06-04 09:02:54 628

原创 STM32MP1移植ESP-Hosted(2)

ESP 物联网 STM32MP1 内核 交叉编译

2024-12-31 10:05:26 555

原创 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 886

原创 树莓派验证ESP-Hosted-NG方案

树莓派 物联网 Wi-Fi 蓝牙 ESP

2024-12-24 22:27:55 1170

原创 ESP32C3准备工作

ESP32 ESP32C3 Wi-Fi 物联网 STMMP1

2024-12-23 21:17:56 767

原创 STM32MP1 Dongshanpi-7 ESP32C3

STM32MP1 Dongshanpi-7 ESP32C3

2024-12-23 20:55:00 280

原创 error: ‘CONFIG_ENV_SIZE’ undeclared here (not in a function)问题解决

解决:error: ‘CONFIG_ENV_SIZE’ undeclared here (not in a function);

2022-02-09 17:09:26 4844 2

原创 从零开始编译mqtt

mqtt mosquitto

2022-01-13 09:35:48 272

原创 海思音频调试记录

海思音频调试记录1. 问题描述首先,播放"某某某你好"会出现如下情况:​ 某某某你​ 好 某某某你​ …但是播放"某某你好"是正常的。我做出一下修改: // 音频设备号0,AO通道号0 s32Ret = HI_MPI_AO_ClearChnBuf(0, 0); if (HS_SUCCESS != s32Ret) { printf("%s: HI_MPI_ADEC_ClearChnBuf0 failed!\n", __FUNCTION__); }此时音频会出现如下现象:​ 某

2021-12-13 09:34:08 2895

原创 海思人脸识别(1) -- YUV2BGR

海思人脸识别(1) – YUV2BGR这可能是全网第一个YUV转BGR(B0B1B2…G0G1G2…R0R1R2…)的博客。网上全部都是yuv2rgb(B0G0R0B1G1R1…),而且代码都不规整,不知道对错。所以自己在实际过程中整理了一份YUV2BGR的详细过程。任务要求:人脸识别模型要求图像输入格式BGR(B0B1B2…G0G1G2…R0R1R2…),输入图片的大小是1024 * 576,需要先在外面把图片缩放和格式转化。需要用到的模块VI、VPSS、IVE需要理解的视频格式YUV4

2021-07-14 11:05:01 2400 9

原创 海思3516DV300编译osdrv问题记录

海思3516DV300编译osdrv问题记录:本次实验环境:ubuntu版本18.04开发SDK:rp-hi3516dv300-busybox.tar(深圳荣品提供的SDK)交叉编译工具版本:arm-himix200-linux.tgz(gcc version 6.3.0 (HC&C V1R3C00SPC300B009_20191212)我遇到的一个问题是,输入arm-himix200-linux-gcc -v,可以得到版本号:(V100R002C00B021_20180917)[外链图

2021-07-01 10:26:42 954 2

原创 海思3516DV300搭建交叉编译环境问题记录

xxx@xxx-virtual-machine:~/Downloads/study3516DV300/rp-hi3516dv300-busybox/sample/hifb$ arm-himix200-linux-gcc -varm-himix200-linux-gcc: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type

2021-06-28 08:42:24 2053 3

空空如也

空空如也

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

TA关注的人

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