ARM 64-bit port?

johnwilkes wrote on Wednesday, January 16, 2013:

Has FreeRTOS been ported to ARMv8 (64-bit) architecture? Is anyone working on this?

If not, are there any 64-bit ports (MIPS64, PPC64, amd64/x86-64) that would provide hints or be a good starting point?


rtel wrote on Wednesday, January 16, 2013:

I would suggest starting by running the Win32 simulator code on a 64 bit PC.  There was a reason why it didn’t work, but I can’t remember what it was right now.

A bit of history:
Originally FreeRTOS used type conventions that I have always used whereby data types were not typedef’ed but instead #defined to avoid using standard data types.  Therefore an char was no int8_t, but portCHAR.  That allows unsigned char to be “unsigned portCHAR” rather than its own #define.  portCHAR, portSHORT and portLONG were defined for each port.

People used to complain about this, but it was not easy to replace the #define definitions with typedef’s because of the number of different compilers that have to be tested with, so the #defines were removed (in fact they still exist for backward compatibility, they are just not used) and replaced with standard C data type.  This didn’t matter because on all 33 supported architectures char was 8 bits, long was 32 bits and short was 16 bits.  When you move to a 64 bit architecture this is no longer the case as long will be 64 bits - I’m not sure if that matters or not, but suspect it was the problem with running the Win32 code on a 64 bit PC.

All the new FreeRTOS products, UDP, CLI, IO use stdint typedefs.  Ideally FreeRTOS would too, but it will cause major problems switching because it will break backward compatibility with peoples existing applications, and cause compiler warnings where libraries are used, and not be easy to get running with all 33 compilers.

Let me know how you get on.


rbhavans wrote on Monday, January 13, 2014:

This thread is almost a year old now. Any updates on a ARMv8 port with 64 bit support?

edwards3 wrote on Monday, January 13, 2014:

Have you tried FreeRTOS version 8? Version 8 defines the widths of all types so it might just work.

stephenwwu wrote on Friday, May 02, 2014:

Any update on the FreeRTOS version porting to an ARMv8 CPU?

rtel wrote on Saturday, May 03, 2014:

There is something in the pipeline, but there is so much in the pipeline I would not like to hazard a guess as to when it will be released.


stephenwwu wrote on Tuesday, May 06, 2014:

Is There any contributed project that support ARMv8 CPU?