64bit systick

I noticed an option for 64-bit systick in 10.6.1… can this be used on a 32-bit CPU or is it designed only for a 64-bit CPU…


I think 64-bit systick has always been available for 64-bit ports. Which architecture are you using? If you set the TickType_t to a 64-bit type on anything other than a 64-bit architecture you will also need to ensure portTICK_TYPE_IS_ATOMIC is set to 0.

[edited this post as I mistakenly said “set to 1” on first post]

I’m using an ARM M0 CPU…
wanted long tick to support timers out for a week or more

The native size for ARM Cortex M0 is 32 bits. With a 1 ms tick, 32 bits lasts 49.7 days. With a 10 ms tick, 497 days. On Cortex M0, it would be better to make other software adaptations than to use a 64-bit tick type.

Thanks, I’m well aware of the limits of the 32-bit systick, My interest was to understand any issues with using the 64-bit systick on a 32-bit processor.


Looks like the CM0 port does not (yet) support a 64-bit tick count. As of v10.6.0, the only 32-bit port I could find with support for a 64-bit tick count is GCC CM4. Here is the commit, and here is how support looks for a 64-bit tick count on the 32-bit machines.

Thank you @jefftenney!