S32DS - S32K3xx SMP example compilation error

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32DS - S32K3xx SMP example compilation error

Jump to solution
685 Views
ogai
Contributor II

I'm trying to compile FreeRTOS_Toggle_Led_Example_S32K358_SMP project and it produces the following error:

C:/NXP/workspaceS32DS.3.6.0/FreeRTOS_Toggle_Led_Example_S32K358_SMP/generate/include/FreeRTOSConfig.h:64:66: error: implicit declaration of function 'taskDISABLE_INTERRUPTS' [-Werror=implicit-function-declaration]
arm-none-eabi-gcc "@RTD/src/Clock_Ip.args" -MMD -MP -MF"RTD/src/Clock_Ip_Monitor.d" -MT"RTD/src/Clock_Ip_Monitor.o" -o "RTD/src/Clock_Ip_Monitor.o" "../RTD/src/Clock_Ip_Monitor.c"
64 | #define configASSERT(x) if((x)==0) { taskDISABLE_INTERRUPTS(); for( ;; ); }
| ^~~~~~~~~~~~~~~~~~~~~~
../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/portmacro.h:184:17: note: in expansion of macro 'configASSERT'
184 | configASSERT( Get_64(&ucRecursionCountByLock[ulLockNum]) != 255u);
| ^~~~~~~~~~~~

 

Missing #include?

Is there a quick way to fix this?

I'm using DS 3.6.0 and 'FreeRTOS for S32K3XX version 5.0.0' package. Example taken from 'SW32K3 FreeRTOS 11.1.0 5.0.0 CD1 D2409 Example Projects' section of the above package.

thanks

0 Kudos
Reply
1 Solution
670 Views
Julián_AragónM
NXP TechSupport
NXP TechSupport

Hi @ogai,

This issue has already been reported to the SW team. The provided example is incomplete, and some workarounds are needed for it to work correctly: 

1. Configuration .mex needs to be updated to include SMP support:

Use SMP feature.png

2. Calls to vPortGET_CORE_ID need to be replace with calls to portGET_CORE_ID. 

3. In ASSERT(), change macro definition to "if((x)==0) {__asm volatile ( " cpsid i " ::: "memory" ); for( ;;); }

config ASSERT.png

Best regards,
Julián

View solution in original post

0 Kudos
Reply
2 Replies
671 Views
Julián_AragónM
NXP TechSupport
NXP TechSupport

Hi @ogai,

This issue has already been reported to the SW team. The provided example is incomplete, and some workarounds are needed for it to work correctly: 

1. Configuration .mex needs to be updated to include SMP support:

Use SMP feature.png

2. Calls to vPortGET_CORE_ID need to be replace with calls to portGET_CORE_ID. 

3. In ASSERT(), change macro definition to "if((x)==0) {__asm volatile ( " cpsid i " ::: "memory" ); for( ;;); }

config ASSERT.png

Best regards,
Julián

0 Kudos
Reply
663 Views
ogai
Contributor II
Thanks Julian. It worked!