S32DS - S32K3xx SMP example compilation error

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

S32DS - S32K3xx SMP example compilation error

跳至解决方案
686 次查看
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 项奖励
回复
1 解答
671 次查看
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 项奖励
回复
2 回复数
672 次查看
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 项奖励
回复
664 次查看
ogai
Contributor II
Thanks Julian. It worked!