Configuring Nuttx for TC234

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User20561
Level 1
Level 1
Hello ,

I am trying to configure and flash nuttx for my microcontroller. I am using a microcontroller of family TC234 with a starter kit. I am not able to find any helping documentation. Please let me know if someone has done this before or have configured and flash similar RTOS in microcontroller TC234. Thanks in advance.
0 Likes
2 Replies
NeMa_4793301
Level 6
Level 6
10 likes received 10 solutions authored 5 solutions authored
According to this page, TriCore is not a supported architecture.
https://nuttx.apache.org/docs/latest/introduction/supported_platforms.html
0 Likes
User20561
Level 1
Level 1
Hi,
I have found another OS that is supported by TiCore
Link:
https://en.wikipedia.org/wiki/FreeRTOS

I downloaded the source file from https://www.freertos.org/a00104.html and and had followed the instructions provided on: https://www.freertos.org/FreeRTOS-for-Infineon-TriCore-TC1782-using-HighTec-GCC.html. After carefully following the instruction I end up with the following error:

Error:
*************************************************************************************************************************************************************************************************************Error******************************************************************************
14:44:14 **** Clean-only build of configuration iROM for project Myproject3 ****
"C:\\HighTec\\toolchains\\tricore\\v4.9.3.0-infineon-1.0\\bin\\make.exe" clean
rm -rf ./FreeRTOS/Source/portable/MemMang/heap_2.o ./FreeRTOS/Source/portable/GCC/TriCore_1782/port.o ./FreeRTOS/Source/portable/GCC/TriCore_1782/porttrap.o ./FreeRTOS/Source/croutine.o ./FreeRTOS/Source/event_groups.o ./FreeRTOS/Source/list.o ./FreeRTOS/Source/queue.o ./FreeRTOS/Source/stream_buffer.o ./FreeRTOS/Source/tasks.o ./FreeRTOS/Source/timers.o ./FreeRTOS/Source/portable/MemMang/heap_2.d ./FreeRTOS/Source/portable/GCC/TriCore_1782/port.d ./FreeRTOS/Source/portable/GCC/TriCore_1782/porttrap.d ./FreeRTOS/Source/croutine.d ./FreeRTOS/Source/event_groups.d ./FreeRTOS/Source/list.d ./FreeRTOS/Source/queue.d ./FreeRTOS/Source/stream_buffer.d ./FreeRTOS/Source/tasks.d ./FreeRTOS/Source/timers.d Myproject3.elf
' '

14:44:14 Build Finished (took 374ms)

14:44:17 **** Incremental Build of configuration iROM for project Myproject3 ****
"C:\\HighTec\\toolchains\\tricore\\v4.9.3.0-infineon-1.0\\bin\\make.exe" all
'Building file: C:/Users/sumit.rauniyar/Desktop/FreeRTOS/FreeRTOS/Source/portable/MemMang/heap_2.c'
'Invoking: TriCore C Compiler'
"C:\HighTec\toolchains\tricore\v4.9.3.0-infineon-1.0/bin/tricore-gcc" -c -I"../h" -I"C:\Users\sumit.rauniyar\Desktop\FreeRTOS\FreeRTOS\Source\portable\GCC\TriCore_1782" -I"C:\Users\sumit.rauniyar\Desktop\FreeRTOS\FreeRTOS\Source\include" -I"C:\Users\sumit.rauniyar\new_workspace\Myproject3\inc" -fno-common -Os -g3 -W -Wall -Wextra -Wdiv-by-zero -Warray-bounds -Wcast-align -Wignored-qualifiers -Wformat -Wformat-security -pipe -DTRIBOARD_TC23XA -fshort-double -mcpu=tc23xx -mversion-info -MMD -MP -MF"FreeRTOS/Source/portable/MemMang/heap_2.d" -MT"FreeRTOS/Source/portable/MemMang/heap_2.o" -o "FreeRTOS/Source/portable/MemMang/heap_2.o" "C:/Users/sumit.rauniyar/Desktop/FreeRTOS/FreeRTOS/Source/portable/MemMang/heap_2.c"
C:/Users/sumit.rauniyar/Desktop/FreeRTOS/FreeRTOS/Source/portable/MemMang/heap_2.c: In function 'pvPortMalloc':
C:/Users/sumit.rauniyar/Desktop/FreeRTOS/FreeRTOS/Source/portable/MemMang/heap_2.c:146:17: error: stray '$' in program
configASSERT( ( xWantedSize & portBYTE_ALIGNMENT_MASK ) == 0 );
^
In file included from C:\Users\sumit.rauniyar\Desktop\FreeRTOS\FreeRTOS\Source\include/portable.h:51:0,
from C:\Users\sumit.rauniyar\Desktop\FreeRTOS\FreeRTOS\Source\include/FreeRTOS.h:63,
from C:/Users/sumit.rauniyar/Desktop/FreeRTOS/FreeRTOS/Source/portable/MemMang/heap_2.c:43:
C:\Users\sumit.rauniyar\Desktop\FreeRTOS\FreeRTOS\Source\portable\GCC\TriCore_1782/portmacro.h:119:11: error: incompatible type for argument 1 of '_mtcr'
_mtcr( $ICR, ulICR ); /* Write back updated ICR. */ \
^
C:\Users\sumit.rauniyar\new_workspace\Myproject3\inc/FreeRTOSConfig.h:105:48: note: in expansion of macro 'portDISABLE_INTERRUPTS'
#define configASSERT( x ) if( ( x ) == 0 ) { portDISABLE_INTERRUPTS(); for( ;; ); }
^
C:/Users/sumit.rauniyar/Desktop/FreeRTOS/FreeRTOS/Source/portable/MemMang/heap_2.c:146:17: note: in expansion of macro 'configASSERT'
configASSERT( ( xWantedSize & portBYTE_ALIGNMENT_MASK ) == 0 );
^
In file included from C:\Users\sumit.rauniyar\Desktop\FreeRTOS\FreeRTOS\Source\portable\GCC\TriCore_1782/portmacro.h:37:0,
from C:\Users\sumit.rauniyar\Desktop\FreeRTOS\FreeRTOS\Source\include/portable.h:51,
from C:\Users\sumit.rauniyar\Desktop\FreeRTOS\FreeRTOS\Source\include/FreeRTOS.h:63,
from C:/Users/sumit.rauniyar/Desktop/FreeRTOS/FreeRTOS/Source/portable/MemMang/heap_2.c:43:
c:\hightec\toolchains\tricore\v4.9.3.0-infineon-1.0\tricore\include\machine\intrinsics.h:135:6: note: expected 'unsigned int' but argument is of type 'ICR_t'
void _mtcr (const unsigned __regaddr, const unsigned __val)
^
FreeRTOS/Source/portable/MemMang/subdir.mk:18: recipe for target 'FreeRTOS/Source/portable/MemMang/heap_2.o' failed
make: *** [FreeRTOS/Source/portable/MemMang/heap_2.o] Error 1

14:44:17 Build Finished (took 523ms)


*******************************************************************Error************************************************

Could you please help me into this.
0 Likes