Freertos support in E300


In E300 reference manual(SiFive-E300-platform-reference-manual-v1.0.1), it said that FreeRTOS is support. Where can I find the reference code for Hifive 1? Thanks a lot for your help.

Sam Yuan

Hi Sam,

Check under the freedom-e-sdk. I think you will find what you need there:


1 Like

Thanks a lot for your guide, Donnie. I will check it.

Sam Yuan

I believe the folder in Donnie’s reply is just for OpenOCD FreeRTOS support so that the debugger knows how to handle the OS. It doesn’t actually contain RISC-V or E300 specific ports of FreeRTOS.

There is a user port of the OS to RISC-V in the FreeRTOS forums here.

I’m guessing it needs porting to work on the HiFive board. The linker script at the very least. I’m planning to poke around with it now that I have a board.

1 Like

Is there any required built-in memory size in order to support freeRTOS?

Hi Philip,

The amount of memory required by FreeRTOS is going to be dependent on your application. The more tasks, mailboxes, etc…, the higher the memory requirements. You can also config the amount of memory FreeRTOS allocates per task via the configuration file: FreeRTOSConfig.h

So 16 KB has enough left over after the OS loads to do something useful?

Depending on what you set your task stack size to, 16KB should give you enough room for a few tasks.

I have the same question with @Sam , and I’d like to know if @DrewatSiFive can help on this

Hi Ijliao,

The original reference in the manual was a mistake, nevertheless it is something that we intend to have in the future.