GNAT support for ARM bare metal development boards

Viewed 318

As a hobby project, I'd like to learn development on "bare metal" with Ada. It seems GNAT compiler has support for various development boards and provides a few different runtimes - zfp, ravenscar-sfp, ravenscar-full.

I'm not quite sure which MCU has better support and nicer to work with. I've been looking at:

TI "TMS570LC43x Hercules Development Kit". This has Cortex-R5F CPU, which looks quite interesting for learning hardware features required for hard real-time applications. But the board is somewhat expensive and there aren't any tutorials on how to use GNAT with this board.

ST "STM32F7 discovery kit". This has Cortex-M7 CPU. The board is much cheaper and there are quite a few tutorials that use STM32F boards with GNAT.

Both of these boards seem to be supported by GNAT bb-runtimes. Has anyone worked with either of them and could provide recommendations? How well do they work with GNAT runtimes and which one has better debug support or development features?

3 Answers

Based on the comments to my question, it seems that MCUs from STMicroelectronics would be easier to work with and have better support from GNAT Ada compiler. Most of their MCUs are based on ARM Cortex-M cores, which are more common than Cortex-R cores. There are also more resources (books, tutorials) on how to work with Cortex-M cores. MCUs bases on Cortex-R cores are probably more suited to people working with safety-critical systems.

I also just started to do bare metal programming with Ada. My board will probably be the STM32F4 discovery, which are much cheeper than the F7 boards I have seen. Second reason is, that for the F3 Dicovery board there is very good tutorial for bare metal programming with Rust on the Rust homepage which I tried with my F3 board. For Ada, I have only checked the tool chain from AdaCore for that board so far, cross compilation seems to work very well. Unfortunately, the Ada Drivers Library doesn"t support the F3...

I have been using GNAT Ada on ST ARM boards for the last 6 years and use it on about 40 different boards. They have excellent support for the boards they directly support and I have added many others over the years to my collection. I would say go with the 429, 469 or 769 discovery board. I prefer the small footprint (sfp) versions and have fun. I just finished doing some casino games that run on the 429 Discovery board. I mostly use the 2017 version of GNAT ARM because that was their last year of support for win32 which I needed for other things but their new Aug 2020 free download has very nice support for many boards in addition to the ST boards.

Related