项目简介
本项目是一个基于Eclipse IDE的RISC-V嵌入式系统软件开发包(SDK)模板,提供了创建和构建RISC-V架构嵌入式应用程序的基础结构与工具链,包含必要的配置文件、示例项目和构建流程。
项目的主要特性和功能
- 集成Eclipse IDE,提供适配的配置文件与模板,便于在Eclipse环境下开发。
- 集成RISC-V架构的交叉编译工具链,涵盖编译器、链接器和调试工具。
- 具备内存段管理功能,可对数据段、只读数据段、BSS段等进行初始化与配置。
- 包含系统启动代码,用于初始化内存、设置运行环境并启动主程序。
- 提供示例项目,展示如何使用SDK模板创建和构建RISC-V嵌入式应用程序。
安装使用步骤
安装前提
- 安装Eclipse IDE(Embedded C/C++ Developers):https://www.eclipse.org/downloads/
安装步骤
- 复制
examples/
文件夹下的一个示例项目到Eclipse工作空间。 - 启动Eclipse,选择
File -> Import
,在General
中选择Existing Projects into Workspace
,选择工作空间目录,选择"soc1_template"
项目并点击Finish
。 - 在项目属性中进行如下设置:
C/C++ Build -> Toolchains
,设置系统中The xPack GNU RISC-V Embedded GCC
和The 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
。
创建空项目步骤
- 选择
File -> New -> C/C++ Project
。 - 选择
All -> C Managed Build
,点击Next
。 - 选择
Empty Project -> RISC-V Cross GCC
,指定项目名称,点击Next
。 - 连续点击
Next
。 - 进行如下选择:
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
。
项目配置步骤
- 进入项目属性设置。
C/C++ Build -> Tool Settings -> Settings
:Architecture
:RV32I(-march=rv32i*)Integer ABI
:ILP32 (-mabi-ilp32*)
C/C++ Build -> Tool Settings -> Optimizations
:Optimization Level
:Optimize size (-Os)Selected Optimization Flags
:-ffunction-sections, -fdata-sections -ffreestandingOther Optimization Flags
:-fomit-frame-pointer -fno-asynchronous-unwind-tables -fno-jump-tables -nostartfiles
C/C++ Build -> Tool Settings -> Warnings
:Selected Warnings
:-Wall, -Wextra, -Wconversion
C/C++ Build -> Tool Settings -> GNU RISC-V Cross C Compiler -> Includes -> Include paths
:${workspace_loc:/${ProjName}}
${workspace_loc:/${ProjName}/components}
C/C++ Build -> Tool Settings -> GNU RISC-V Cross C Compiler -> Optimization
:Language standard
:GNU ISO C11(-std=gnu11)
C/C++ Build -> Tool Settings -> GNU RISC-V Cross C Linker -> Script Files
:Add
:${workspace_loc:/${ProjName}/SoCs/SoC1/soc1.ld}
C/C++ Build -> Tool Settings -> GNU RISC-V Cross C Linker -> Miscellanous
:Selected Useful Command
:Print link map(-Xlinker --print-map)
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"
C/C++ Build -> Toolchains
:Name
:xPack GNU RISC-V Embedded GCC (riscv-none-embed-gcc)Toolchain Path
:C:/Users/%username%/AppData/Roaming/xPacks/@xpack-dev-tools/riscv-none-embed-gcc/10.1.0-1.1.1/.content/bin
Build Tools Path
:C:/Users/%username%/AppData/Roaming/xPacks/@xpack-dev-tools/windows-build-tools/4.2.1-2.1/.content/bin
- 勾选
"Create flash image"
和"Print size"
C/C++ General -> Paths and Symbols -> Source Location
:Link Folder.. -> Link to folder in the file system
:WORKSPACE_LOC\eclipse_riscv_sdk_structure\components
Link Folder.. -> Link to folder in the file system
:WORKSPACE_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】