framework = freedom-e-sdk
Open Source Software for Developing on the SiFive Freedom E Platform
For more detailed information please visit vendor site.
In order to add FreeRTOS to your project, it must be explicitly specified as an
additional framework in the framework
field of “platformio.ini” (Project Configuration File), for example:
[env:freertos]
platform = sifive
framework = freedom-e-sdk, freertos
board = ...
Note
FreeRTOS RISC-V port for the SiFive development platform is
distributed as part of Freedom E SDK
and cannot be used as a standalone
framework
Most of the application specific configuration is done in a special file called
FreeRTOSConfig.h
which must be present in each FreeRTOS-based project. Additional
settings for build configuration are set in “platformio.ini” (Project Configuration File) using the following
syntax board_build.freertos.*
where *
is an option from the following list:
Available values: heap_1, heap_2, heap_3, heap_4, heap_5
| Default: heap_4
FreeRTOS offers several heap management schemes that range in complexity and features:
heap_1
– the very simplest, does not permit memory to be freed.
heap_2
– permits memory to be freed, but does not coalescence adjacent free blocks.
heap_3
– simply wraps the standard malloc()
and free()
for thread safety.
heap_4
– coalescences adjacent free blocks to avoid fragmentation. Includes
absolute address placement option.
heap_5
– as per heap_4
, with the ability to span the heap across multiple
non-adjacent memory areas.
More information about FreeRTOS Memory Management can be found in the official documentation.
Default: FreedomMetal_InterruptHandler
The name of a function to be called to handle interrupts
Default: FreedomMetal_ExceptionHandler
The name of a function to be called to handle exceptions
Default: 0x2000000
The address of Machine Timer Register mtime
Available values: enable | disable
| Default: disable
Use Memory Protection Unit wrappers
SystemView is a real-time recording and visualization tool for embedded systems that reveals the true runtime behavior of an application.
Available values: enable | disable
| Default: disable
Compile and link Segger SystemView library
Default: SEGGER_SYSVIEW_RecordEnterISR
The name of a function to be called to record interrupt execution.
Default: SEGGER_SYSVIEW_RecordExitISR
The name of a function to be called to record finish of interrupt execution.
Default: SEGGER_SYSVIEW_RecordExitISRToScheduler
The name of a function to be called to record finish of interrupt when it’s caused by a context switch.
An example of “platformio.ini” (Project Configuration File) with modified heap settings and enabled SystemView feature:
[env:sifive-hifive1-revb]
platform = sifive
framework = freedom-e-sdk, freertos
board = hifive1-revb
monitor_speed = 115200
; Configure stack size
board_build.freedom-e-sdk.heap_size = 0x400
; Configure heap model and enable SystemView
board_build.freertos.heap_model = heap_1
board_build.freertos.systemview = enable
More information about FreeRTOS package for SiFive development platform can be found in the official repository.
Debugging - “1-click” solution for debugging with a zero configuration.
Supported debugging tools are listed in “Debug” column. For more detailed information, please scroll table by horizontal. You can switch between debugging Tools & Debug Probes using debug_tool option in “platformio.ini” (Project Configuration File).
Warning
You will need to install debug tool drivers depending on your system. Please click on compatible debug tool below for the further instructions.
Boards listed below have on-board debug probe and ARE READY for debugging! You do not need to use/buy external debug probe.
Name |
Platform |
MCU |
Frequency |
Flash |
RAM |
---|---|---|---|---|---|
FE310 |
450MHz |
16MB |
256MB |
||
FU540 |
1500MHz |
32MB |
8GB |
||
FE310 |
320MHz |
16MB |
16KB |
||
FE310 |
320MHz |
16MB |
16KB |
||
FE310 |
320MHz |
16MB |
16KB |
||
FE310 |
320MHz |
16MB |
16KB |
Name |
Description |
---|---|
SiFive brings the power of open source and software automation to the semiconductor industry, making it possible to develop new hardware faster and more affordably than ever before. |
Note
You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer
For more detailed board
information please scroll the tables below by horizontally.
Name |
Platform |
Debug |
MCU |
Frequency |
Flash |
RAM |
---|---|---|---|---|---|---|
On-board |
FU540 |
1500MHz |
32MB |
8GB |
||
On-board |
FE310 |
320MHz |
16MB |
16KB |
||
On-board |
FE310 |
320MHz |
16MB |
16KB |
Name |
Platform |
Debug |
MCU |
Frequency |
Flash |
RAM |
---|---|---|---|---|---|---|
On-board |
FE310 |
320MHz |
16MB |
16KB |
||
On-board |
FE310 |
320MHz |
16MB |
16KB |
Name |
Platform |
Debug |
MCU |
Frequency |
Flash |
RAM |
---|---|---|---|---|---|---|
On-board |
FE310 |
450MHz |
16MB |
256MB |