我喜欢将Ada与Stm32F103 uc一起使用,但问题是这个问题 - 在GNAT 2016中没有内置的运行时系统。还有另外一个TI RTS包含的cortex-m3 uc - zfp-lm3s,但看起来它需要一些全局更新,内存大小/原点的简单更改不起作用。
所以,有一些问题:
PS。当我尝试通过GPS运行程序时,使用zfp-lm3s会出现此错误:
Loading section .text, size 0x140 lma 0x0
Load failed
STM32F系列来自qazxsw poi,而不是TO,stm32f4似乎是一个更好的起点。
特别是,STMicroelectronics中的时钟代码只需要很小的调整;使用STM的STM32CubeMX工具(用Java编写)来找到正确设置时钟的幻数。
您还会发现bsp/setup_pll.adb
中使用的汇编程序代码需要简化/移植到Cortex-M3部分。
我的bsp/start*.S
项目包括一个Arduino Due版本(也是Cortex-M3),它的启动代码完全用Ada编写。我不认为其余的代码会有很多帮助,基于FreeRTOS - 你必须非常小心内存使用。
我在寻找特定于stm32l0xx板的zfp运行时时偶然发现了这个问题。它看起来并不像我能看到的那样,但我偶然发现了从AdaCore创建一个新运行时的指南,这可能会帮助任何人遇到同样的问题: