S32DS - S32K3xx SMP example compilation error

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

S32DS - S32K3xx SMP example compilation error

ソリューションへジャンプ
965件の閲覧回数
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 解決策
950件の閲覧回数
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 返答(返信)
951件の閲覧回数
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 件の賞賛
返信
943件の閲覧回数
ogai
Contributor II
Thanks Julian. It worked!
%3CLINGO-SUB%20id%3D%22lingo-sub-2058773%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32DS%20-%20S32K3xx%20SMP%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%20%E3%82%A8%E3%83%A9%E3%83%BC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2058773%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%99%E3%82%8B%E3%81%A8FreeRTOS_Toggle_Led_Example_S32K358_SMP%E6%AC%A1%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3EC%3A%2F%20NXP%20%2F%20workspaceS32DS.3.6.0%20%2F%20FreeRTOS_Toggle_Led_Example_S32K358_SMP%20%2F%20generate%20%2F%20include%20%2F%20FreeRTOSConfig.h%3A64%3A66%3A%E3%82%A8%E3%83%A9%E3%83%BC%3A%E9%96%A2%E6%95%B0%20'taskDISABLE_INTERRUPTS'%E3%81%AE%E6%9A%97%E9%BB%99%E5%AE%A3%E8%A8%80%5B-Werror%20%3D%E6%9A%97%E9%BB%99%E3%81%AE%E6%A9%9F%E8%83%BD%E5%AE%A3%E8%A8%80%5D%3CBR%20%2F%3Earm-none-eabi-gcc%20%22%40RTD%2Fsrc%2FClock_Ip.args%22%20-MMD%20-MP%20-MF%20%22RTD%2Fsrc%2FClock_Ip_Monitor.d%22-MT%E3%80%8CRTD%2Fsrc%2FClock_Ip_Monitor.o%E3%80%8D-o%20%22RTD%2Fsrc%2FClock_Ip_Monitor.o%22%22..%2FRTD%2Fsrc%2FClock_Ip_Monitor.c%22%3CBR%20%2F%3E64%20%7C%23define%20configASSERT(x)%20if((x)%3D%3D0)%20%7B%20taskDISABLE_INTERRUPTS()%3B%20for(%20%3B%3B%20)%3B%20%7D%3CBR%20%2F%3E%7C%5E~~~~~~~~~~~~~~~~~~~~~%3CBR%20%2F%3E..%2FFreeRTOS%2FSource%2Fportable%2FGCC%2FARM_CM7%2Fr0p1%2Fportmacro.h%3A184%3A17%3A%20%E3%83%8E%E3%83%BC%E3%83%88%3A%20%E3%83%9E%E3%82%AF%E3%83%AD%20'configASSERT'%20%E3%81%AE%E6%8B%A1%E5%BC%B5%E4%B8%AD%3CBR%20%2F%3E184%20%7CconfigASSERT(%20Get_64(%26amp%3BucRecursionCountByLock%5BulLockNum%5D)%20!%3D%20255u)%3B%3CBR%20%2F%3E%7C%5E~~~~~~~~~~~%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%23include%20%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E3%81%93%E3%82%8C%E3%82%92%E4%BF%AE%E6%AD%A3%E3%81%99%E3%82%8B%E7%B0%A1%E5%8D%98%E3%81%AA%E6%96%B9%E6%B3%95%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3EDS%203.6.0%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8A%E3%82%88%E3%81%B3%E3%80%8CFreeRTOS%20for%20S32K3XX%20%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%205.0.0%E3%80%8D%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%80%82%E3%80%8CSW32K3%20FreeRTOS%2011.1.0%E3%80%8D%E3%81%8B%E3%82%89%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E4%BE%8B5.0.0%E4%B8%8A%E8%A8%98%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AECD1%20D2409%20Example%20Projects%E3%80%8D%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%80%82%3C%2FP%3E%3CP%3E%E6%84%9F%E8%AC%9D%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2058916%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20S32DS%20-%20S32K3xx%20SMP%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%82%A8%E3%83%A9%E3%83%BC%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2058916%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%82%B8%E3%83%A5%E3%83%AA%E3%82%A2%E3%83%B3%E3%80%82%E3%81%86%E3%81%BE%E3%81%8F%E8%A1%8C%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%3C%2FLINGO-BODY%3E