The power of TNT is at your disposal

TNT stands for Thumb2 Newlib Toolchain, a GCC/Newlib based toolchain project I started quite a while ago. Trying various other toolchains like CodeSourcery, summon-arm-toolchain and YAGARTO, I realized none of them really seemed to have the smallest ARM Cortex-M microcontrollers in mind; They were wasteful with RAM as well as flash memory. TNT has been optimized for small unhosted (bare-metal) microcontroller targets and thus size optimizations have been the primary goal. Especially the C-library Newlib has been configured for the least possible size which makes using it (e.g. printf()) much more affordable. I have seen size reductions of over 30% compared to other GCC based toolchains when compiling the TNT_Example project.

The following architectures are supported:
armv6s-m (cortex-m0/cortex-m1) armv7-m (cortex-m3) armv7e-m (cortex-m4/cortex-m4f including FPU and DSP instruction support)

The TNT_Example project is targeted at beginners using STM32 microcontrollers, it plays well with TNT and other GCC based toolchains. It has an example on how to implement the Newlib stubs to get syscalls like malloc() and printf() working. For the STM32F4 discovery board you can just compile it and get the lights blinking. For other targets you’ll have to slightly adjust the makefile.

TNT precompiled downloads:
Linux x64
OSX x64


Software licenses:
GCC, GDB, binutils

Leave a Reply

Your email address will not be published.