目录
目录README.md

x04v

更新日志

  • 2025.11.10

    • bsp目录规范化,删除不需要的文件和代码,整合文件及目录结构
    • 增加 TAG 标签
  • 2025.11.04

    • 消除了编译过程中遇到的警告,rtt源码无法上传,编译时遇到的警告可能来自于rtt源码中的组件部分
  • 2025.11.03

    • 系统时间已完成校准。通过 ARM Generic Timer 硬件计数器(gtimer_get_counter())获取的时间进行校准。
    • 修改 release 模式的优化等级。release 版本问题可能是 GCC -O2 优化生成的代码与您当前 RT-Thread 内核 Hard-Float 上下文切换代码之间的 ABI 不兼容性导致的。
    • 简化 main 函数内容。
    • ft_sch_test() 函数在 release 下为 50 ms
  • 2025.09.17

    • 基于官方rt-thread v5.1.0 版本适配至 x04v
    • 测试了学校代码,ft_sch_test() 函数在debug下为73ms,release下为39ms
    • 测试时间以系统定时器时间为准,可能不准确
    • release下运行ft_sch_test() 函数,系统会崩溃,debug下没有这个问题
  • 2025.08.15

    • 基于 rt_thread_arm 仓库开发
    • 适配 X04V 硬件,修改寄存器地址,增加 CIC 串口中断清除功能
    • 删除冗余文件夹(pnna、rpmsg、pcie、openlibm、mongoose)
    • 实现 RT-Thread 运行、串口通信及任务切换功能

项目简介

x04v 是基于 RT-Thread 操作系统针对 X04V 开发板进行适配的项目,旨在为该硬件平台提供稳定的操作系统运行环境及丰富的功能支持,方便开发者进行应用开发与调试。

功能特点

  1. 系统运行:支持在 X04V 开发板上稳定运行 RT-Thread 操作系统,实现任务创建、切换与调度。
  2. 串口通信:确保串口输入输出功能正常,支持通过串口进行数据交互与命令操作。
  3. 基础功能测试:提供内存拷贝(ft_memcpy_test)、动态内存分配(ft_malloc_test)等基础功能的测试命令。

环境要求

  • 硬件:X04V 开发板
  • 操作系统:支持 RT-Thread 编译的 Linux/Windows 环境
  • 已安装官方Env辅助工具:Env 辅助工具安装教程

编译与烧录

  1. RT-Thread 源码获取

    为了避免重复下载以及重复删除不相干文件,已将官方 RT-Thread 源码复制到远程仓库, 在此基础上,只保留bsp、libcpu里与arma15相关的内容,其他不相干文件均已经删除

    git clone https://gitlink.org.cn/nudt_dsp/rt-thread-v5.1.0.git
    cd bsp/
  2. bsp下 x04v 源码获取

    git clone https://gitlink.org.cn/nudt_dsp/x04v.git
    cd x04v/
  3. 配置交叉编译器

    确保已安装 RT-Thread 相关工具(如 scons、env 工具),并在 bsp/rtconfig.py 中配置交叉编译工具链路径。

    # === Toolchain Path ===
    EXEC_PATH   = r'D:\env-windows\tools\gnu_gcc\arm_gcc\mingw\bin'
  4. 编译项目

    在 bsp/x04v 目录下,使用:

    scons

    命令编译工程,编译成功后,在 build 目录下生成镜像文件(如 .bin.elf

  5. 烧录镜像:使用开发板对应的烧录工具(如 J-Link、串口烧录工具等),将生成的镜像文件烧录到 X04V 开发板。

    PC端打开 tftp64.exe 工具,并填写 bsp/x04v 所在目录

    在 boot 模式下通过 tftpboot 命令,将 rtthread-a15.bin 文件传输至开发板

    tftpboot 0x82000000 rtthread-a15.bin
    
    # sch_test
    tftpboot 0xD0020000 ./applications/sch_test/CPI1291_CFARout_2048.bin
    
    dcache flush
    
    # 跳转运行
    go 0x82000000

使用说明

  1. 开发板上电后,系统自动启动 RT-Thread,通过串口终端可进入 Finsh/MSH 命令行交互界面。
  2. 常用命令:
    • ft_sch_test:启动学校测试程序并打印耗时
    • ft_memcpy_test:DDR 内存拷贝测试
    • ft_printf_test:打印功能测试
    • ft_malloc_test:内存申请释放测试
    • 更多命令可通过 help 查看。

目录结构

x04v/
├── applications/               # 放置应用程序、测试程序、网络客户端/服务端示例等(设计说明 5)
│   ├── main.c                  # 应用程序主入口文件
│   ├── sch_test/               # 示例应用程序或测试用例目录
│   └── SConscript              # SCons 构建脚本
├── board/                      # 提供板级定制化初始化、外设复位、GPIO/LED/按键初始化等(设计说明 2)
│   ├── board.c                 # 板级初始化和定制化逻辑实现
│   ├── board.h                 # 板级相关定义
│   └── SConscript              # SCons 构建脚本
├── docs/                       # 用于存放项目相关文档
│   └── x04v_BSP_Structure.md   # x04v BSP 结构说明文档
├── drivers/                    # 面向所有 SoC 和板子的通用外设驱动,以及 OS 适配层(设计说明 3)
│   ├── common/                 # 驱动程序通用的抽象层/工具集
│   ├── drv_usart.c             # 通用 UART 驱动的 OS 适配层实现(BSP/RT-Thread 适配层)
│   ├── drv_usart.h             # 通用 UART 驱动的 OS 适配层定义
│   ├── SConscript              # SCons 构建脚本
│   └── serial/                 # 串口/串行通信相关驱动
│       └── fpl011              # 特定型号 UART (fpl011) 的硬件抽象层 (HAL)
├── Kconfig                     # Kernel 配置系统文件(用于配置 OS 和驱动)
├── LICENSE                     # 许可文件
├── link_ram.lds                # 链接脚本文件(定义内存布局)
├── rtconfig.h                  # RT-Thread 配置文件
├── rtconfig.py                 # RT-Thread 配置脚本
├── SConscript                  # SCons 构建脚本(子目录)
├── SConstruct                  # SCons 主构建脚本
└── soc/                        # 提供芯片级通用支持,如寄存器定义、时钟、中断控制器等
    └── SConscript              # SCons 构建脚本

许可证

本项目遵循 MIT 许可证,详情参见 LICENSE 文件。

作者:{{xunyingya}}

关于

rt-thread在x04v上的部署

148.0 KB
邀请码