有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 皋陶 于 2020-8-26 15:21 编辑
我在windows7 32/64bit系统下都分别试过,编译 OK
采用的是 eclipse + GNU ,具体链接如下(32bit):
GNU 编译器
https://github.com/gnu-mcu-eclipse/riscv-none-gcc/releases/tag/v7.2.0-1-20171109[^]
(gnu-mcu-eclipse-riscv-none-gcc-7.2.0-1-20171109-1926-win32-setup)
elipcse c/c++安装包,用的是Neon3这个版本:http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neon3[^]
(eclipse-cpp-neon-3-win32)
CDT,eclipse c/c++的开发环境,下载的是9.2.1
https://projects.eclipse.org/projects/tools.cdt[^](cdt-9.2.1)
eclipse for gnu-mcu-clipse的plugin
https://github.com/gnu-mcu-eclipse/eclipse-plugins[^]
(ilg.gnumcueclipse.repository-4.2.1-201711101735)
具体安装过程就不累述了,注意事项:
a. IDE使用eclipse,版本需要用neon3以上的,这也是plug in要求的 版本。而Eclipse的基础是必须有先安装过JRE b. CDT和plug in配合gnu-mcu-eclipse,形成我们的eclipse+gnu编译环境,对CDT的版本有要求也是因为plug in的 需求 c. build tool好像并没有版本要求,有装过就ok,主要用于提供Make和rm..等命令 d. gnuarmeclipse.github.io已经更名为gnu-mcu-eclipse.github.io,其中原来arm toolchain的下载链接都转到arm.com的官网(因为我之前一直在用ARM) e. eclipse配置和以前用ARM差别不大,仅仅是对于RISC-V tool chain需要设定路径
实际上在linux或MAC上编译都差不多,上面那些链接里都可以找到对应文件压缩包的。 个人感觉,改名为gnu-mcu-eclipse也是社区风向的转变,既然有开源CPU 可用而且还好用,当然更对这些人的口味,商用CPU已经不是唯一的选择了。
软件编译的时候要根据picoRV32的配置来搭配,-march=rv32i* 肯定没有问题。不要选-march=rv32e*,编译不过,好像当前gcc(v7.2.0.1)还未支持16位嵌入式ISA
首先从数字ic工程师那边确认一下,picoRV32配置了哪些,默认如下:
ENABLE_COUNTERS = 1,
ENABLE_COUNTERS64 = 1,
ENABLE_REGS_16_31 = 1,
ENABLE_REGS_DUALPORT = 1,
LATCHED_MEM_RDATA = 0,
TWO_STAGE_SHIFT = 1,
BARREL_SHIFTER = 0,
TWO_CYCLE_COMPARE = 0,
TWO_CYCLE_ALU = 0,
COMPRESSED_ISA = 0,
CATCH_MISALIGN = 1,
CATCH_ILLINSN = 1,
ENABLE_PCPI = 0,
ENABLE_MUL = 0,
ENABLE_FAST_MUL = 0,
ENABLE_DIV = 0,
ENABLE_IRQ = 0,
ENABLE_IRQ_QREGS = 1,
ENABLE_IRQ_TIMER = 1,
ENABLE_TRACE = 0,
REGS_INIT_ZERO = 0,
MASKED_IRQ = 32'h 0000_0000,
LATCHED_IRQ = 32'h ffff_ffff,
PROGADDR_RESET = 32'h 0000_0000,
PROGADDR_IRQ = 32'h 0000_0010,
STACKADDR = 32'h ffff_ffff
默认不支持RVM,也就是不支持整数乘除法,也没加载interrupt controller(它有32bits 中断源,可以选择按位MASK,增加了4个regiser给irq使用,关于interrupt controller具体介绍留在下一章写吧)。trap地址是0x10,有个timer,不过我没用过,当然这都不影响编译了。
对了,研究代码可以去下载的picoRV32 source code里找,里面的fireware目录都是c code。
(下篇介绍下RISC-V指令打下基础)
本篇完,感谢关注:RISC-V单片机中文网 |