操作系统嵌入式物联网嵌入式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 开源仓库的 bsp/phytium/aarch32 目录下针对飞腾PhytiumE2000 系列芯片开展 AARCH32Armv8-A 32 位模式嵌入式开发。内容覆盖编译工具链的两种获取方式Ubuntu 与 RT-Thread env 环境、RT-Thread 与 RT-Smart 两套工具链的环境变量配置、基于scons的开发板选择与驱动裁剪、以及如何将编译产物rtthread_a32.bin通过 TFTP 或 XMODEM 烧录启动。读完本文你将能够独立完成从「拿到板子」到「在板上跑起 RT-Thread」的完整开发闭环。一、开发前须知AARCH32 目录与两种工作模式bsp/phytium/aarch32是飞腾 BSP 中面向 32 位应用处理器模式的工程目录其核心特点可以从 Kconfig 中看到TARGET_ARMV8_AARCH32目标为 Armv8 架构的 AArch32 执行状态USE_AARCH64_L1_TO_AARCH32复用 AArch64 的 L1 层启动流程再切换进入 AArch32 代码默认开启由PHYTIUM_ARCH_AARCH32一并选中ARCH_ARM_CORTEX_A、RT_USING_GIC_V3、RT_USING_CACHE内核按 Cortex-A GICv3 中断控制器 缓存使能进行配置。该工程支持两种工作模式对应两套不同的编译工具链工作模式工具链编译器前缀典型场景RT-Thread标准模式ARM GNU 官方arm-none-eabi工具链arm-none-eabi-常规嵌入式 RTOS 开发当前不支持 C文档明确注明RT-Smart智能终端模式arm-linux-musleabi工具链arm-linux-musleabi-需要 MMU、进程级隔离与用户态应用的场景从源码结构看两种模式的差异还体现在链接脚本上SConstruct 中检测到RT_USING_SMART宏后会自动把link.lds替换为link_smart.lds即 link_smart.lds为 RT-Smart 提供独立的链接布局。二、准备编译环境开始前先在aarch32目录下创建tools文件夹用于存放下载好的交叉编译工具链mkdir tools提示使用 RT-Smart 编译链同样可以编译标准 RT-Thread但当前仓库不支持 C需要注意。2.1 Ubuntu 环境下的 RT-Thread 工具链下载 ARM GNU 官方gcc-arm-10.3-2021.07-x86_64-arm-none-eabi工具链压缩包放入tools目录解压tar xvf gcc-arm-10.3-2021.07-x86_64-arm-none-eabi.tar.xz返回aarch32目录执行环境脚本source ./thread-env.shthread-env.sh 脚本会设置以下关键环境变量scons构建时正是从这些变量读取编译器路径与前缀export RTT_CCgcc export RTT_EXEC_PATH$(pwd)/tools/gcc-arm-10.3-2021.07-x86_64-arm-none-eabi/bin export RTT_CC_PREFIXarm-none-eabi- export PATH$PATH:$RTT_EXEC_PATH执行成功后终端会回显arch aarch32、CC gcc、PREFIX arm-none-eabi-、EXEC_PATH ...四行信息说明环境变量已生效。运行scons前请务必确认这些变量正确。2.2 Ubuntu 环境下的 RT-Smart 工具链从工具链发布页下载arm-linux-musleabi_for_x86_64-pc-linux-gnu_stable.tar.bz2压缩包放入tools目录解压注意此处使用jxvf因为这是 bzip2 格式tar jxvf arm-linux-musleabi_for_x86_64-pc-linux-gnu_stable.tar.bz2返回aarch32目录执行环境脚本source ./smart-env.shsmart-env.sh 的设置与 thread 版对应核心差异是编译器前缀与路径export RTT_CCgcc export RTT_EXEC_PATH$(pwd)/tools/arm-linux-musleabi_for_x86_64-pc-linux-gnu/bin export RTT_CC_PREFIXarm-linux-musleabi- export PATH$PATH:$RTT_EXEC_PATH2.3 两种模式下如何拿到二进制产物无论使用哪套工具链构建命令一致scons -j8初次编译时 SConstruct 会调用install_phytium_sdk()检查bsp/phytium/libraries/phytium_standalone_sdk目录是否存在若不存在则自动执行 phytium_standalone_sdk_install.py 从远端克隆phytium-standalone-sdk并切换到指定提交该脚本当前固定 clonemaster分支并 checkout 提交8d6aefa63f4b38e72f9a3bd6e62a3ec30da50ae9。因此首次编译务必保证网络畅通。编译完成后aarch32目录下会生成三个文件rtthread_a32.bin # 可直接烧录/加载的二进制镜像 rtthread_a32.elf # 带调试信息的 ELF rtthread_a32.map # 链接映射文件用于排查内存布局这些产物名称由 rtconfig.py 定义TARGET rtthread_a32. rtconfig.TARGET_EXTPOST_ACTION中的objcopy -O binary负责生成.bin。若需要切换 SDK 版本进行调试请先删除bsp/phytium/libraries/phytium_standalone_sdk目录再重新执行scons -j8以拉取指定版本。2.4 RT-Thread env 环境Windows下的配置RT-Thread env 环境已内嵌 AARCH32 编译链无需手动下载工具链RT-Thread 模式在aarch32目录下执行.\thread-env.batthread-env.bat 内部使用%ENV_ROOT%指向 env 自带的gnu_gcc\arm_gcc\mingw\bin目录并设置RTT_CC_PREFIXarm-none-eabi-。RT-Smart 模式需要自行下载arm-linux-musleabi_for_i686-w64-mingw32工具链压缩包到tools目录并解压然后执行.\smart-env.batsmart-env.bat 会同时将下载的工具链与 env 内嵌的 mingw GCC 路径加入PATHRT-Smart 链接阶段需要借助 mingw 的辅助工具。随后同样执行scons -j8完成编译产物与 Ubuntu 环境一致。三、如何选择开发板注RT-Thread env 环境下使用menuconfig即可打开配置菜单Ubuntu 下需要显式使用scons --menuconfig。使用scons --attach?可以查看当前 BSP 支持的全部开发板scons --attach?以E2000Q_DEMO开发板为例加载其默认配置会生成对应的rtconfig.hscons --attachboard.e2000q_demo_rtthread加载完成后进入menuconfig做进一步配置scons --menuconfig从源码来看开发板的可选项由 board.kconfig 提供通过 Kconfig 中的source $(BSP_DIR)/../board/board.kconfig挂载到配置树中。仓库默认的rtconfig.h使用的是E2000D_DEMO_BOARDBOARD_NAME pe2202_demoSoC 为PE2202、双核、RT_CPUS_NR 2开发者可按需在menuconfig中切换。四、如何选择驱动scons --menuconfig在配置菜单中进入以下路径使能外设驱动Hardware Drivers Config On-chip Peripheral Drivers以仓库默认 rtconfig.h 为例该目录下当前使能的驱动包括BSP_USING_UART串口控制台设备为uart1、BSP_USING_IOPAD引脚复用、BSP_USING_DRIVERS_EXAMPLE与BSP_USING_DRIVERS_AUTO_TEST驱动示例与自测程序。更底层的驱动选项由 bsp/phytium/libraries/drivers/Kconfig 提供涵盖 CAN、GPIO、I2C、I2S、PWM、QSPI、SDIF、SPI、USART、XMAC 网卡等飞腾外设的 RT-Thread 驱动框架接入对应 drivers 目录 下的drv_*.c实现。使能后对应的驱动代码会随scons编译链接进镜像。五、开启 SDK 内部调试信息scons --menuconfig当需要定位飞腾 standalone SDK 底层如启动、DDR、中断等的问题时可以在menuconfig中开启 SDK 内部调试信息输出。该选项对应 rtconfig.h 中Sdk common configuration一节的相关宏默认已开启LOG_ERROR、USE_PHYSICAL_GTIMER、USE_DEFAULT_INTERRUPT_CONFIG、INTERRUPT_ROLE_MASTER调试日志缓冲区大小为ELOG_LINE_BUF_SIZE 0x100。开启更详细的调试级别后SDK 初始化阶段的内部打印会通过默认调试串口uart1DEFAULT_DEBUG_PRINT_UART1输出便于对照分析。六、如何切换至 RT-Thread Smart 工作模式scons --menuconfig在menuconfig的RT-Thread Kernel菜单中勾选 RT-Smart 相关选项即开启RT_USING_SMART等配置。切换后需要注意编译前应使用source ./smart-env.shUbuntu或.\smart-env.batWindows env切换到arm-linux-musleabi-工具链构建时 SConstruct 检测到RT_USING_SMART后会把链接脚本从link.lds替换为link_smart.lds以适配 RT-Smart 的用户态/内核态内存布局rtconfig.py 中为 RT-Smart 预留了-fPIC、-shared、max-page-size0x4等模块编译选项供用户态应用lwp/动态模块链接使用。七、启动镜像程序7.1 清理并重新编译完成上述配置后先清理旧产物再重新编译scons -c scons -j8-c用于清除之前的编译缓存确保配置变更完整生效编译完成后再次确认aarch32目录下已生成新的rtthread_a32.bin / .elf / .map。7.2 两种烧录启动方式详细步骤请参考 启动镜像程序。串口连接方面E2000D_DEMO、E2000Q_DEMO 开发板使用 CPU_UART 串口Phytium PI 开发板使用 J2 组引脚。方式一TFTP 网口加载推荐在 Ubuntu host 侧安装并配置 TFTP 服务tftpd-hpaxinetd将编译产物放到tftpboot目录进入开发板 uboot 界面配置开发板 IP、host 侧 IP 与网关setenv ipaddr 192.168.4.20 setenv serverip 192.168.4.50 setenv gatewayip 192.168.4.1通过 TFTP 加载镜像并跳转执行AARCH32 模式请使用rtthread_a32.bin并将加载地址与 uboot 对 AArch32 内存的约定对齐tftpboot 加载地址 rtthread_a32.bin dcache flush go 加载地址Windows 下则可使用 Tftpd64 工具搭建 TFTP 服务端并在每次使用前于 Windows 服务中手动开启服务。方式二串口 XMODEM 传输启动开发板进入 uboot 界面输入loadx 加载地址使用 SecureCRT 等串口工具的 XMODEM 协议发送rtthread_a32.bin传输完成后输入go 加载地址跳转成功后RT-Thread 内核启动可通过默认控制台串口uart1看到 msh 命令行输出随后即可按需执行list_device、ifconfig等命令验证系统与外设状态。八、常见问题与排查要点首次编译报错拉取 SDK 失败确认网络可访问远端仓库删除bsp/phytium/libraries/phytium_standalone_sdk后重试scons -j8若 SConstruct 检测到该目录已存在则不会重新拉取。环境变量未生效scons依赖RTT_EXEC_PATH、RTT_CC_PREFIX等变量见 rtconfig.py 的os.getenv(RTT_EXEC_PATH)务必在当前 shell 会话中先source对应 env 脚本再执行编译。切换 RT-Smart 后链接报错确认已切换到 musl 工具链并检查RT_USING_SMART是否在配置中真正开启链接脚本切换由该宏驱动。C 支持限制当前 AARCH32 工程使用标准 RT-Thread 工具链编译时不支持 C如需 C 特性请关注 RT-Smart 模式或仓库中 C 支持文档 的说明。赞分享操作系统嵌入式物联网嵌入式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 基于飞腾 Phytium AArch64 平台的开发环境搭建、编译与镜像启动指南RT Thread 基于飞腾 Phytium AArch64 平台的开发环境搭建、编译与镜像启动指南 本文以 RT Thread 仓库中的 bsp/phytiu操作系统嵌入式物联网嵌入式OSRTOSRT-Thread bouffalo_lab BSP 实战指南博流 AIoT 芯片的环境搭建、编译、烧录与驱动开发RT Thread bouffalo_lab BSP 实战指南博流 AIoT 芯片的环境搭建、编译、烧录与驱动开发 本篇技术指南以 RT Thread 仓库中操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 飞腾 Phytium E2000 GPIO 驱动开发指南引脚编号与外部中断使用RT Thread 飞腾 Phytium E2000 GPIO 驱动开发指南引脚编号与外部中断使用 导读 本文以 bsp/phytium/doc/driver操作系统嵌入式物联网嵌入式OSRTOS上一篇vanilla-extract的CSS变量性能优化清单检查列表下一篇Theano深度学习工程实践CI/CD与模型版本控制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Dask cuDF 最佳实践:从集群部署、IO 调优到 Shuffle 策略的完整指南 数据分析数据工程机器学习 【免费下载链接】cudf cuDF - GPU DataFrame Library 项目地址: https://gitcode.com/gh_mirrors/cu/cudf 点击查看 免费下载 本文以 cuDF 仓库中的官方最佳实践文档 best_practices.rst 为主体,系统梳理在 Dask cuDF 上构建… · 2026/9/25 3:22:17
Windows上彻底卸载OpenClaw的完整指南:清除所有残留 OpenClaw 这东西,装的时候一条命令就完事,卸载的时候才让人头疼。很多人在 Windows 上装完 OpenClaw,跑了一阵子发现占用高、配置乱,或者想换部署方式,结果卸载时发现删了主程序还有一堆东西留在系统里:开机… · 2026/9/25 3:22:17
Bifrost release-checklist 技能深度解析:数据库迁移死锁与启动阻塞风险的发布前审计 人工智能LLM 网关API网关后端 【免费下载链接】bifrost Fastest enterprise AI gateway (50x faster than LiteLLM) with adaptive load balancer, cluster mode, guardrails, 1000 models support & <100 s overhead at 5k RPS. 项目地址: https://gitcode.… · 2026/9/25 3:22:17
React 360 资源缓存利器:深入解读 RefCountCache 引用计数缓存实现与应用 前端3D渲染 【免费下载链接】react-360 Create amazing 360 and VR content using React 项目地址: https://gitcode.com/gh_mirrors/re/react-360 点击查看 免费下载 导读
ref-count-cache 是 React 360 项目中的一个独立基础工具包,提供了一种以&quo… · 2026/9/25 3:56:57
免费给老 Mac 装上新版 macOS:OpenCore Legacy Patcher 三步完整走通 免费给老 Mac 装上新版 macOS:OpenCore Legacy Patcher 三步完整走通 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher
OpenCore Legacy Patcher&am… · 2026/9/25 3:56:57
TEN Framework 中的 PIL 演示 Python 扩展:基于 VideoFrame 的图像处理实战 人工智能AI Agent多模态语音AI 应用 【免费下载链接】ten-framework Open-source framework for conversational voice AI agents 项目地址: https://gitcode.com/TEN-framework/ten-framework 点击查看 免费下载 导读
本文围绕 pil_demo_python 扩展,… · 2026/9/25 3:56:57
AI辅助的逆向分析:用 TaoToken 统一 Key 打通 Cline 与 settings.json 配置 /* 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 3:56:57
CodeGuide 拼团交易平台:从 MRD 到 PRD 的拼团需求分析全流程解析 文档教程后端 【免费下载链接】CodeGuide :books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、… · 2026/9/25 3:56:51
创维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