项目简介
本项目是一个基于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/binBuild 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\componentsLink 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】