riscv32-unknown-elf-gcc 的主要用途是为 RISC-V 32位架构的设备编译软件。这些设备可能包括微控制器、嵌入式系统、以及其他基于 RISC-V 指令集的计算机硬件。使用此编译器,开发者可以编写和编译 C 和 C++(以及其他 GCC 支持的语言)源代码,生成可在这些设备上运行的机器代码。
以“riscv64-unknown-elf-”为前缀的版本表示该版本为非Linux(Non-linux)版本的工具链,此Non-Linux不是指当前版本工具链一定不能运行在Linux操作系统的电脑上,此Non-Linux是指该GCC工具链会使用newlib作为C运行库。同上理,此处的前缀riscv64(还有riscv32的版本)与运行在64位或者32位电脑上毫无关系,此处的64和32...
Configured with: /tools/riscv-gnu-toolchain-1/build/../riscv-gcc/configure --target=riscv64-unknown-elf --prefix=/opt/riscv64 --disable-shared --disable-threads --enable-languages=c,c++ --with-system-zlib --enable-tls --with-newlib --with-sysroot=/opt/riscv64/riscv64-unknown-elf ...
一、查看gcc内置宏参数 这里以芯来科技发布的riscv-nuclei-elf-gcc工具链为例。 使用以下命令,可以得到该工具的内置宏参数: riscv-nuclei-elf-gcc -E -dM a.h | grep riscv 可以得到如下的一些宏参数 #define __riscv 1 #define __riscv_ato...
当使用标准工具链 riscv32-unknown-elf-gcc编译时, 输出结果: SystemCoreClock: 108000000 CK_SYS: 8000000 CK_AHB: 8000000 CK_APB1: 8000000 CK_APB2: 8000000 可以看到, 在使用芯来工具链编译时, 系统运行于108MHz, 而使用标准工具链编译时, 系统却运行于默认的8MHz!
1、riscv32-unknown-elf-gcc 执行以下命令: ../configure --prefix=/opt/riscv32 --with-arch=rv32imc --with-abi=xxxmake —-mabi可以选择如下: ilp32 ilp32f ilp32d 编译完成后,在/opt/riscv/bin目录下,有riscv32-unknown-elf-gcc的所有工具。
riscv-gcc工具,有内置的一些宏参数。我们可以根据这些内置的宏参数,判断编译器的行为。 一、查看gcc内置宏参数 这里以芯来科技发布的riscv-nuclei-elf-gcc工具链为例。 使用以下命令,可以得到该工具的内置宏参数: riscv-nuclei-elf-gcc -E -dM a.h | grep riscv ...
riscv-gcc工具,有内置的一些宏参数。我们可以根据这些内置的宏参数,判断编译器的行为。 一、查看gcc内置宏参数 这里以芯来科技发布的riscv-nuclei-elf-gcc工具链为例。 使用以下命令,可以得到该工具的内置宏参数: riscv-nuclei-elf-gcc -E -dM a.h | grep riscv ...
默认情况下面,GCC risc-v 使用的 code model 是medlow,在这种情况下,编译器生成的代码使用lui来构造全局变量的地址。 比如下面这段代码: charx[2u*1024*1024*1024];intmain(){x[0]=42;return0;} riscv64-unknown-elf-gcc main.c --save-temps -O2以后,生成的汇编代码如下: ...
riscv64-unknown-elf-gcc -v riscv64-unknown-linux-gnu-gcc -v 上述编译的是64位版本的,若要编译32位版本,在.configure处应做如下处理 ./configure --prefix="${PREFIX}" --with-arch=rv32imafdc --with-abi=ilp32d 其余步骤与64位相同。