SMP FreeRTOS kernel support is added in the DPL layer for A53 core. This makes use of both the A53 cores for running applications by making using of the FreeRTOS SMP kernel for scheduling tasks on both cores.
SMP application uses SGI interrupt interrupt number 0 for communication between A53 cores. So care must be taken not to use this interrupt in user applications.
SMP applications can be loaded via SBL as well as CCS. A53 cores must be run as sync group in CCS when running SMP applications.
When runnig SMP application using CCS, the cores needs to be run as sync group.
A sync group can be created as follows. This ensures the same binary is executed on both cores from the same entry point.
An SMP example for A53 can be imported and build just as a single core A53 application. But both cores must be selected and sync group must be created when launching the debug session.
The dhrystone values can be used to compare the performance between single core FreeRTOS on A53 and SMP FreeRTOS on A53 (both at 800 MHz).
No of Threads | No of Iterations | Dhrystone per second for Single Core FreeRTOS on A53 | Dhrystone per second for SMP FreeRTOS on A53 |
---|---|---|---|
1 | 10000000 | 4343856.0 | 4347665.5 |
2 | 10000000 | 4355748.0 | 8679335.0 |
5 | 10000000 | 4372456.5 | 7307816.5 |
10 | 10000000 | 4374856.0 | 8682912.0 |
For more details on debugging an SMP application using CCS, see here