搭建编译环境,主要就是一个编译工具链 riscv64-unknown-elf-gcc。。整个拉取下来的文件大概有 3G ...
如上图所示, riscv包含3个特权等级,OS运行在Superviosr级上, bootloader和其他固件运行在Machine级上, 用户程序运行在User级上。 工作目录 首先我们建立一个工作目录 mkdir riscv-linux cd riscv-linux 安装qemu for riscv 我们统一选项只安装64版本, 目录到和riscv toolschian相同目录里 git clone https://git...
Linux允许多个版本的gcc共存,当你需要安装多个版本的gcc的时候,比如同时安装gcc-7和gcc-8,你可以通过 update-alternatives 来重定位你想使用的gcc版本。 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7 sudo update-alternatives --insta...
下载linux 5.2.4源码(可以选择其他实现了riscv的内核版本),进入linux内核根目录(以后用'linux-5.2.4$' 作为linux内核根目录的提示符),如下: linux-5.2.4$ linux-5.2.4$ 配置riscv内核选项 为了配置的方便,我们先试用riscv的默认配置选项,然后再在此基础上进行配置的修改: linux-5.2.4$ make ARCH=riscv def...
ubuntu自身带有gcc,直接apt-get install gcc(或gc++)安装或更新。没有安装的linux系统可从svn checkout svn://gcc./svn/gcc/trunk拿最新的gcc代码。 即便如此,在执行riscv-tools下的build.sh脚本时,依然会报如下error: configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. ...
1、CROSS_COMPILE:交叉编译器的前缀,表示将代码编译编译成目标CPU指令的工具,如果不指定,make 会默认使用系统自带的 gcc 来编译,这里指定我们之前编译出来的 riscv64-unknown-linux-gnu- 为前缀。 2、ARCH:即 architecture ,用于选择编译哪种 CPU 架构,也就是编译 arch/ 目录下的哪个子目录,这里指定 ARCH=riscv...
确认rtconfig.py文件中EXEC_PATH为上诉 newlib toolchain 解压地址,如/opt/Xuantie-900-gcc-elf-newlib-x86_64-V2.6.2/bin。 确认rtconfig.py文件中PREFIX为上诉newlib toolchain 命令头,如riscv64-unknown-elf- 编译 $ scons 或不采用手工修改,直接运行 ...
root@ubuntu:/home/ubuntu/mini-riscv-os/04-TimerInterrupt# make riscv64-linux-gnu-gcc -T os.ld -o os.elf start.s sys.s lib.c timer.c os.c timer.c: In function ‘timer_init’: timer.c:11:4: warning: cast to pointerfrominteger of different size [-Wint-to-pointer-cast]*(reg_...
另外,从官网了解到,RISC-V有一个自己的开发工具Freedom Studio,这是是一个集成的开发人员环境,可用于编写和调试针对基于SiFive的处理器的软件。 Freedom Studio基于行业标准Eclipse平台与预构建的RISC-V GCC工具链,OpenOCD,示例程序和文档捆绑在一起。不过目前来看好像只支持基于RISC-V的微控制器系列产品。
export RISCV=~/riscv ./build.sh 可能会遇到如下的错误: 要解决这个问题,首先需要安装下载riscv64的交叉编译工具链。 git clone https://github.com/riscv/riscv-gnu-toolchain ./configure --prefix=$RISCV 其中配置项目--enable-multilib表示编译32bit和64bit的gcc,支持,这里不选择,只编译32bit的交叉编译...