操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载本文基于 RT-Thread 仓库中 RK3500 BSP 使用文档 展开系统讲解如何在 ARMv8/AArch64 架构的瑞芯微 RK35xx 系列 SoCRK3566/RK3568/RK3576 等上使用 RT-Thread Smart 专用工具链完成 RT-Thread 的下载、编译与启动。读完后你将掌握BSP 支持矩阵与 earlycon 调试串口配置、RTT_CC/RTT_EXEC_PATH/RTT_CC_PREFIX环境变量的作用、scons --menuconfig 软件包拉取的完整编译流程以及通过 U-Bootfatload/booti命令从 SD 卡引导rtthread.bin的实操步骤与启动日志解读。1. 支持芯片列表与调试串口Earlycon配置RK3500 BSP 位于 bsp/rockchip/rk3500 目录其 Kconfig 中定义了目标架构选型默认启用以下关键选项见 Kconfigconfig SOC_RK3500 bool select ARCH_ARMV8 select ARCH_CPU_64BIT select ARCH_ARM_MMU select RT_USING_CACHE select RT_USING_COMPONENTS_INIT select RT_USING_USER_MAIN select RT_USING_STDC_ATOMIC default y从源码结构看该 BSP 面向 64 位 Cortex-A 大核、带 MMU 的 SoC 设计并强制开启了缓存一致性支持RT_USING_CACHE、组件自动初始化RT_USING_COMPONENTS_INIT和用户态main入口RT_USING_USER_MAIN这些与后文启动日志中出现的msh /命令行及Hi, this is RT-Thread!!来自 applications/main.c一一对应。BSP 文档给出的 SoC 支持矩阵如下RK3562 与 RK3506 尚未支持SoC支持情况EarlyconRK3576支持earlyconuart8250,mmio32,0x2ad40000RK3588支持earlyconuart8250,mmio32,0xfeb50000RK3562--RK3568J支持earlyconuart8250,mmio32,0xfe660000RK3568支持earlyconuart8250,mmio32,0xfe660000RK3566支持earlyconuart8250,mmio32,0xfe660000RK3528支持earlyconuart8250,mmio32,0xff9f0000RK3506--表中earlycon参数指向各芯片上调试 UART 的物理基地址例如 RK3566/RK3568/RK3568J 均为0xfe660000RK3576 为0x2ad40000。这个值需要在设备树chosen.bootargs中配置启动早期控制台由此输出日志中即可看到[I/rtdm.ofw] Earlycon: uart8250 at MMIO/PIO 0x00000000fe660000。仓库中还有一份补充文档 Taishanpi-RK3566_CN.md详细给出了chosen节点与fiq-debugger节点的设备树写法示例含rockchip,baudrate 1500000等参数可作为设备树配置参照。2. 编译环境RT-Thread Smart 专用工具链RK3500 BSP 使用 RT-Thread Smart 专用 AArch64 musl 工具链。工具链解析逻辑位于 rtconfig.py关键实现如下ARCH aarch64 CPU cortex-a CROSS_TOOL gcc if os.getenv(RTT_CC): CROSS_TOOL os.getenv(RTT_CC) PLATFORM gcc EXEC_PATH os.getenv(RTT_EXEC_PATH) or /usr/bin ... PREFIX os.getenv(RTT_CC_PREFIX) or aarch64-none-elf- CC PREFIX gcc可以看到三个环境变量与源码的对应关系RTT_CCgcc决定交叉工具类别对应CROSS_TOOLRTT_EXEC_PATH指向工具链bin目录对应EXEC_PATHRTT_CC_PREFIX交叉编译器前缀如aarch64-linux-musleabi-拼接出gcc/ar/objcopy等工具全名默认回退为aarch64-none-elf-。此外rtconfig.py 中针对 Cortex-A53/A72 大核固定了编译参数DEVICE -g -mcpucortex-a53 -fdiagnostics-coloralways并以-nostartfiles、-u,system_vectors、-T link.lds方式链接最终POST_ACTION生成rtthread.bin并打印 md5。按文档操作下载并解压工具链到/optwget https://github.com/RT-Thread/rt-thread/releases/download/v5.2.0/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu_242520-979be38cba.tar.bz2 sudo tar -xf aarch64-linux-musleabi_for_x86_64-pc-linux-gnu_242520-979be38cba.tar.bz2 -C /opt然后设置环境变量可整体粘贴执行export RTT_CCgcc export RTT_EXEC_PATH/opt/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/ export RTT_CC_PREFIXaarch64-linux-musleabi- export PATH$RTT_EXEC_PATH:$PATH3. 编译流程menuconfig 配置、软件包拉取与 scons 构建进入rt-thread/bsp/rockchip/rk3500目录后执行scons --menuconfig在菜单中选择并拉取 zlib 软件包BSP 构建过程依赖该压缩库随后执行以下命令拉取软件包并编译source ~/.env/tools/scripts/pkgs --update scons编译入口是 SConscript它遍历 BSP 目录子目录applications、driver收集源文件并额外挂载上层../dmDevice Model驱动目录objs objs SConscript(cwd /../dm/SConscript, variant_dir dm, duplicate 0)dm目录即瑞芯微系列 SoC 的公共设备驱动层其 Kconfig 中声明了 ADC、音频、CAN、时钟clk、DVFS、网口、显示帧缓冲、硬件加密、hwspinlock、硬件定时器、I2C、Mailbox、MFD、NVMEM、PCI、Phy、Pinctrl、PWM、Regulator、RTC、SDIO、SPI、热管理、UFS、看门狗等完整驱动模块。其中时钟驱动按芯片拆分为 clk-rk3528.c、clk-rk3568.c、clk-rk3576.c、clk-rk3588.c与第 1 节的支持矩阵相互印证。BSP 自身的板级初始化 driver/board.c 只有三行rt_hw_board_init直接调用rt_hw_common_setup完成通用初始化体现了 BSP 精简、依赖 dm 驱动层的设计。编译成功后当前目录生成rtthread.elf与rtthread.bin镜像供 SD 卡启动使用。4. 运行SD 卡引导与 U-Boot 命令行启动不同板卡有不同的内核安装方法文档推荐安装到 SD 卡并以 Orange Pi Compute Module 4RK3566为例说明。步骤 1连接开发板串口。打开串口工具选择对应串口设置波特率为1500000与设备树fiq-debugger节点的rockchip,baudrate一致。步骤 2将编译生成的rtthread.bin放置到 SD 卡FAT 分区中。步骤 3开发板上电按ctrl c中断自动引导进入 U-Boot 命令行步骤 4执行以下指令从 SD 卡加载镜像并启动 RT-Thread Smart 系统fatload mmc 1:1 0x480000 rtthread.bin;booti 0x480000 - 0x8300000命令含义fatload从 SD 卡mmc 1:1FAT 分区读取rtthread.bin到内存地址0x480000booti以0x480000为内核入口启动第三个参数指定设备树 blob 位于0x8300000即 U-Boot 自身加载时保留的 DTB 位置。注意booti要求内存中存在有效设备树。若未加载 DTB 会得到Could not find a valid device tree错误Taishanpi-RK3566_CN.md 给出了完整排错过程——需将板卡对应的.dtb文件一并拷入 SD 卡用fatload加载到0x8300000后再执行booti且每次引导失败后应完全断电再上电清空内存。启动日志解读正常启动的输出节选及含义如下reading rtthread.bin 1188080 bytes read in 102 ms (11.1 MiB/s) Fdt Ramdisk skip relocation ## Flattened Device Tree blob at 0x08300000 Booting using the fdt blob at 0x08300000 ... DO RELOCATE Kernel from 0x00280000 to 0x00480000 Starting kernel ... [I/rtdm.ofw] Booting RT-Thread on physical CPU 0x0 [I/rtdm.ofw] Machine model: Rockchip RK3566 Orange Pi CM4 Board [I/rtdm.ofw] Earlycon: uart8250 at MMIO/PIO 0x00000000fe660000 (options ) [I/rtdm.ofw] Memory node(1) ranges: 0x0000000000200000 - 0x0000000008400000 [I/mm.memblock] 4191 MB memory installed to system page [I/osi.psci] Using PSCI v1.1 Function IDs [I/clk.rk3568] set cpu_freq to 1800000000 [I/rtdm.ofw] Console: uart0 (fiq-debugger) \ | / - RT - Thread Smart Operating System / | \ 5.2.1 build Apr 28 2025 09:19:08 lwIP-2.1.2 initialized! [I/sal.skt] Socket Abstraction Layer initialize success. [I/drivers.serial] Using /dev/ttyS0 as default console Hi, this is RT-Thread!! I/TC: Secondary CPU 1 initializing [I/cpu.aa64] Call cpu 1 on success msh /各关键行的含义Machine model行确认 U-Boot 传递的设备树属于目标板卡此例为 RK3566 Orange Pi CM4说明该 BSP 被 RK356x 家族板卡共用Earlycon: uart8250 at MMIO/PIO 0xfe660000表示第 1 节支持矩阵中的 earlycon 参数生效[I/mm.memblock]段解析 DTB 的 memory 节点扣除reserved-memoryramoops、CMA 等保留区后最终4191 MB memory installed to system page表示约 4 GB 内存被装入系统页管理[I/osi.psci] Using PSCI v1.1 Function IDs表明 SMP 通过 PSCI 固件接口实现随后Secondary CPU 1/2/3 initializing ... Call cpu x on success即三个次核被逐个拉起完成四核启动[I/clk.rk3568] set cpu_freq to 1800000000来自 clk-rk3568.c 时钟驱动将 CPU 频率设为 1.8 GHzlwIP-2.1.2 initialized!与[I/sal.skt]表示网络协议栈和 Socket 抽象层就绪最终停在msh /提示符可执行 shell 命令。5. 小结RK3500 BSP 是 RT-Thread Smart 面向瑞芯微 RK35 系列 AArch64 SoC 的板级支持包其工程特点是BSP 目录本身非常精简板级初始化仅调用rt_hw_common_setup驱动能力集中在上层 dm 设备模型目录中按 Kconfig 可选编译编译侧通过RTT_CC/RTT_EXEC_PATH/RTT_CC_PREFIX三个环境变量与 rtconfig.py 解耦工具链路径运行侧完全依托板载 U-Boot用一条fatload; booti命令即可从 SD 卡引导rtthread.bin并通过 earlycon/fiq-debugger 串口1500000 波特率获得从 U-Boot、设备树解析、内存管理到 SMP 拉核的完整启动日志便于逐段验证系统状态。赞分享操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载相关推荐Rockchip RK35xx(RK3500 BSP)上编译与启动 RT-Thread Smart 的完整实践Rockchip RK35xx RK3500 BSP 上编译与启动 RT Thread Smart 的完整实践 本文围绕 Rockchip RK3500 BSP操作系统嵌入式物联网嵌入式OSRTOSRT-Thread Rockchip RK3300 BSPaarch64 工具链配置与 scons 完整构建指南RT Thread Rockchip RK3300 BSPaarch64 工具链配置与 scons 完整构建指南 本篇指南基于 RT Thread 仓库中的操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 瑞萨 RA 系列 BSP 制作实战基于 FSP 与 Scons 构建可发布的板级支持包RT Thread 瑞萨 RA 系列 BSP 制作实战基于 FSP 与 Scons 构建可发布的板级支持包 本文以 RT Thread 仓库自带的《RA 系列操作系统嵌入式物联网嵌入式OSRTOS上一篇ansible-elasticsearch升级实战从7.x到8.x的平滑过渡方案下一篇Move 标准库 0x1::offer 模块详解用 Offer 资源实现两笔交易跨账户转移数据创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
USB转I2C适配器扫总线:400KHz速率下设备枚举与Excel报表实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 4:48:18
C6678 SPI NOR Flash烧写全攻略:.out转.bin与Boot Table实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 4:48:12
CherryStudio跨设备同步实战:WebDAV+rclone可控数据主权方案 1. CherryStudio跨设备数据同步:不是“云同步”,而是“可控的数据主权实践” CherryStudio作为一款面向AI开发者与高级用户设计的本地化大模型交互环境,它的核心价值恰恰在于 把数据留在自己手里 ——不上传、不联网、不依赖厂商服务器。但… · 2026/9/25 4:48:12
Ubuntu 22.04便携系统实战:从引导迁移、显卡驱动到UEFI启动 1. 为什么“Linux to go”不是噱头,而是真实可用的生产力方案你有没有过这样的经历:在公司用着顺手的Ubuntu开发环境,回家想继续调试代码,却发现家里的Windows电脑装不了Docker Compose最新版;或者带笔记本去客户现场做… · 2026/9/25 5:18:16
PaddleSpeech 基于 ESC-50 的声音分类基准:PANNs 模型 5-Fold 指标与端到端复现指南 人工智能语音音频NLP媒体生成 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation … · 2026/9/25 5:18:16
DataFusion Crate 构建配置指南:Git 依赖、编译优化与错误回溯调试 大数据数据分析后端 【免费下载链接】datafusion Apache DataFusion SQL Query Engine 项目地址: https://gitcode.com/gh_mirrors/datafu/datafusion 点击查看 免费下载 本篇技术指南围绕 Apache DataFusion 官方文档 crate-configuration.md 展开,系统… · 2026/9/25 5:18:16
opencode客户端TLS安全验证与MITM防护实战 1. “opencode在线无码精码秘入口”到底指什么?先破除三个常见误解很多人看到“opencode在线无码精码秘入口”这个标题,第一反应是:这又是一个打着“免登录”“免密直连”旗号的灰色工具入口。尤其结合热搜词里反复出现的error from provider… · 2026/9/25 5:18:16
Skia GPU Gardener 值班指南:三大核心职责、GPU Bot 可靠性与轮换管理实战 图形学图像处理 【免费下载链接】skia Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. 项目地址: https://gitcode.com/gh_mirrors/skia1/skia 点击查看 免费下载 本文基于 Skia 仓库中的 GPU Gardener 文档,系统讲… · 2026/9/25 5:18:16
CDR话单聚合数据导入MySQL:imei与cell_info全解析 简介:面向需要进行基站掉话率分析的数据处理技术人员,这份压缩包提供从原始通话话单中统计掉线率最高前10基站的完整数据与SQL方案,适用于Hive/MySQL环境下的话务数据清洗、统计与网络质量评估。资源共2个文件,包括一份CSV原始数据… · 2026/9/25 5:18:10
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37