Jamshoot
Jamshoot

Reputation: 33

Runtime system for Stm32F103 Arm, GNAT Ada compiler

Id like to use Ada with Stm32F103 uc, but here is the problem - there is no build-in runtime system within GNAT 2016. There is another cortex-m3 uc by TI RTS included - zfp-lm3s, but seems like it needs some global updates, simple change of memory size/origin doesn't work.

So, there is some questions:

  1. Does some body have RTS for stm32f103?

  2. Is there any good books about low-level staff of cortex-m3 or other arm uc?

PS. Using zfp-lm3s rises this error, when i try to run program via GPS:

Loading section .text, size 0x140 lma 0x0 Load failed

Upvotes: 2

Views: 1037

Answers (2)

Simon Wright
Simon Wright

Reputation: 25501

The STM32F series is from STMicroelectronics, not TI, so the stm32f4 might seem to be a better starting point.

In particular, the clock code in bsp/setup_pll.adb should need only minor tweaking; use STM’s STM32CubeMX tool (written in Java) to find the magic numbers to set up the clock properly.

You will also find that the assembler code used in bsp/start*.S needs simplifying/porting to the Cortex-M3 part.

My Cortex GNAT Run Time Systems project includes an Arduino Due version (also Cortex-M3), which has startup code written entirely in Ada. I don’t suppose the rest of the code would help a lot, being based on FreeRTOS - you’d have to be very very careful about memory usage.

Upvotes: 5

ajxs
ajxs

Reputation: 3638

I stumbled upon this question while looking for a zfp runtime specific to the stm32l0xx boards. It doesn't look like one exists from what I can see, but I did stumble upon this guide to creating a new runtime from AdaCore, which might help anyone stuck with the same issue:

https://blog.adacore.com/porting-the-ada-runtime-to-a-new-arm-board

Upvotes: 0

Related Questions