Hello,
When building FreeRTOSv10.2.0, demo RISCV/QEMU, toolchain riscv64-unknown-elf-gcc, for the embedded profile rv32ec, the compilation
make CROSS_COMPILE_PREFIX=riscv64-unknown-elf ARCH_FLAGS="-march=rv32ec -mabi=ilp32e -mcmodel=medany"
fails with
./fulldemo/RegTest.S: Assembler message:
./fulldemo/RegTest.S: 55: Error: illegal operands 'li x16,0x10'
...
Indeed, in the e profile, registers x16 to x31 do not exist, and are therefore prohibited by the assembler.
For what I've seen, this is also likely to affect FreeRTOS/Source/portable/GCC/RISC-V/portASM.S
All the best
Jean-Francois
Great you are using our new RISC-V port :o) I'm going to take this as feedback rather than a bug though, as currently only the 'i' profile has been implemented. We are keen to receive this kind of feedback so we know what will be the most useful thing to implement next. Currently we are adding 64-bit support, then we can look at the 'e' profile too. Any other feedback greatly appreciated - it can be discussed in the support forum on this site.
Did some test
When building for the e profile, the preprocessor sets __riscv_32e to 1
Last edit: Jean-Francois MONESTIER 2019-03-13
Ok Richard, thank you for the quick update !
Best regards,
Jean-Francois