littlebot
Published on 2025-04-12 / 6 Visits
0

【源码】基于Eclipse IDE的RISCV嵌入式系统SDK模板

项目简介

本项目是一个基于Eclipse IDE的RISC-V嵌入式系统软件开发包(SDK)模板,提供了创建和构建RISC-V架构嵌入式应用程序的基础结构与工具链,包含必要的配置文件、示例项目和构建流程。

项目的主要特性和功能

  1. 集成Eclipse IDE,提供适配的配置文件与模板,便于在Eclipse环境下开发。
  2. 集成RISC-V架构的交叉编译工具链,涵盖编译器、链接器和调试工具。
  3. 具备内存段管理功能,可对数据段、只读数据段、BSS段等进行初始化与配置。
  4. 包含系统启动代码,用于初始化内存、设置运行环境并启动主程序。
  5. 提供示例项目,展示如何使用SDK模板创建和构建RISC-V嵌入式应用程序。

安装使用步骤

安装前提

  • 安装Eclipse IDE(Embedded C/C++ Developers):https://www.eclipse.org/downloads/

安装步骤

  1. 复制examples/文件夹下的一个示例项目到Eclipse工作空间。
  2. 启动Eclipse,选择File -> Import,在General中选择Existing Projects into Workspace,选择工作空间目录,选择"soc1_template"项目并点击Finish
  3. 在项目属性中进行如下设置:
    • C/C++ Build -> Toolchains,设置系统中The xPack GNU RISC-V Embedded GCCThe xPack Windows Build Tools的路径。
    • C/C++ Build -> Tool Settings -> GNU RISC-V Cross C Compiler -> Includes -> Include paths,确保标准文件目录路径为C:\Users\%username%\AppData\Roaming\xPacks\@xpack-dev-tools\riscv-none-embed-gcc\10.1.0-1.1.1\.content\riscv-none-embed\include

创建空项目步骤

  1. 选择File -> New -> C/C++ Project
  2. 选择All -> C Managed Build,点击Next
  3. 选择Empty Project -> RISC-V Cross GCC,指定项目名称,点击Next
  4. 连续点击Next
  5. 进行如下选择:
    • Toolchain name:xPack GNU RISC-V Embedded GCC(riscv-none-embded-gcc)
    • Toolchain path%xPack_Toolchain_Path% ,例如C:/Users/%username%/AppData/Roaming/xPacks/@xpack-dev-tools/riscv-none-embed-gcc/10.1.0-1.1.1/.content/bin,点击Finish

项目配置步骤

  1. 进入项目属性设置。
  2. C/C++ Build -> Tool Settings -> Settings
    • Architecture:RV32I(-march=rv32i*)
    • Integer ABI:ILP32 (-mabi-ilp32*)
  3. C/C++ Build -> Tool Settings -> Optimizations
    • Optimization Level:Optimize size (-Os)
    • Selected Optimization Flags:-ffunction-sections, -fdata-sections -ffreestanding
    • Other Optimization Flags:-fomit-frame-pointer -fno-asynchronous-unwind-tables -fno-jump-tables -nostartfiles
  4. C/C++ Build -> Tool Settings -> Warnings
    • Selected Warnings:-Wall, -Wextra, -Wconversion
  5. C/C++ Build -> Tool Settings -> GNU RISC-V Cross C Compiler -> Includes -> Include paths
    • ${workspace_loc:/${ProjName}}
    • ${workspace_loc:/${ProjName}/components}
  6. C/C++ Build -> Tool Settings -> GNU RISC-V Cross C Compiler -> Optimization
    • Language standard:GNU ISO C11(-std=gnu11)
  7. C/C++ Build -> Tool Settings -> GNU RISC-V Cross C Linker -> Script Files
    • Add${workspace_loc:/${ProjName}/SoCs/SoC1/soc1.ld}
  8. C/C++ Build -> Tool Settings -> GNU RISC-V Cross C Linker -> Miscellanous
    • Selected Useful Command:Print link map(-Xlinker --print-map)
  9. C/C++ Build -> Tool Settings -> GNU RISC-V Cross Create Flash Image -> General
    • Output file format (-O):Raw binary
    • 勾选"Section: -j .text""Section: -j .data"
  10. C/C++ Build -> Toolchains
    • Name:xPack GNU RISC-V Embedded GCC (riscv-none-embed-gcc)
    • Toolchain PathC:/Users/%username%/AppData/Roaming/xPacks/@xpack-dev-tools/riscv-none-embed-gcc/10.1.0-1.1.1/.content/bin
    • Build Tools PathC:/Users/%username%/AppData/Roaming/xPacks/@xpack-dev-tools/windows-build-tools/4.2.1-2.1/.content/bin
    • 勾选"Create flash image""Print size"
  11. C/C++ General -> Paths and Symbols -> Source Location
    • Link Folder.. -> Link to folder in the file systemWORKSPACE_LOC\eclipse_riscv_sdk_structure\components
    • Link Folder.. -> Link to folder in the file systemWORKSPACE_LOC\eclipse_riscv_sdk_structure\SoCs

构建输出

构建完成后,如果在Eclipse的Debug文件夹下看不到输出文件,尝试刷新项目即可显示。具体构建输出示例如下: ``` ... Invoking: GNU RISC-V Cross Create Flash Image riscv-none-embed-objcopy -O binary -j .text -j .data "soc1_template_cxx.elf" "soc1_template_cxx.bin" Finished building: soc1_template_cxx.bin

Invoking: GNU RISC-V Cross Print Size riscv-none-embed-size --format=berkeley --totals "soc1_template_cxx.elf" text data bss dec hex filename 480 0 4096 4576 11e0 soc1_template_cxx.elf 480 0 4096 4576 11e0 (TOTALS) Finished building: soc1_template_cxx.siz

Creating Disassembly File of Elf File riscv-none-embed-objdump -h -S -C -D -f -F -g -w -s soc1_template_cxx.elf > soc1_template_cxx.elf.disassembly ```

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】