I am attempting to run FreeRTOS on a Mi-V softcore on a Microsemi PolarFire FPGA using Libero v2.3 for PolarFire and SoftConsole v6.0
I have an LSRAM block in the design and am initializing it from UPROM (i.e. the hex file is getting loaded into UPROM and then onto LSRAM for the Mi-V).
The application miv-rv32im-freertos-port-test is sized as follows:
03:34:29 **** Incremental Build of configuration Release for project miv-rv32im-freertos-port-test ****
make all
Invoking: GNU RISC-V Cross Print Size
riscv64-unknown-elf-size --format=berkeley "miv-rv32im-freertos-port-test.elf"
text data bss dec hex filename
5904 144 233776 239824 3a8d0 miv-rv32im-freertos-port-test.elf
Finished building: miv-rv32im-freertos-port-test.siz
03:34:30 Build Finished. 0 errors, 0 warnings. (took 1s.48ms)
The hex file size is 17044 bytes.
When I load it as a Stage 3 client in UPROM, the Used Memory is shown as 16640 9-bit words.
I am trying to understand how the .elf/hex file sizes relate to the usage in UPROM.
If the max available memory in UPROM is 52224 9-bit words, what does it mean as to the maximum size of the app (.elf/hex)?
Thank you for any information on this data initialization process.
Subu