Система выполнения для Stm32F103 Arm, компилятор GNAT Ada

Я хотел бы использовать Ada с Stm32F103 uc, но вот проблема - в GNAT 2016 нет встроенной системы выполнения. В комплекте есть еще одна uc cortex-m3 от TI RTS - zfp-lm3s, но похоже, что ей нужен какой-то глобальный обновления, простое изменение размера/происхождения памяти не работает.

Итак, есть некоторые вопросы:

  1. Есть ли у какого-нибудь тела RTS для stm32f103?

  2. Есть ли хорошие книги по низкоуровневому штату cortex-m3 или др. арм uc?

PS. При использовании zfp-lm3s возникает эта ошибка, когда я пытаюсь запустить программу через GPS:

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


person Jamshoot    schedule 21.10.2016    source источник
comment
вы пробовали только --RTS=zfp ?   -  person Jean-François Fabre    schedule 21.10.2016
comment
@ Жан-Франсуа Фабр, у меня нет zfp, только zfp-lm3s и немного zfp для cortex-m4. Так что --RTS=zfp не работает.   -  person Jamshoot    schedule 21.10.2016


Ответы (2)


Серия STM32F принадлежит STMicroelectronics, а не TI, поэтому может показаться, что stm32f4 быть лучшей отправной точкой.

В частности, код часов в bsp/setup_pll.adb требует лишь незначительной настройки; используйте инструмент STM32CubeMX от STM (написанный на Java), чтобы найти магические числа для правильной настройки часов.

Вы также обнаружите, что код ассемблера, используемый в bsp/start*.S, нуждается в упрощении/переносе на часть Cortex-M3.

Мой проект Cortex GNAT Run Time Systems включает версию Arduino Due (также Cortex-M3) , код запуска которого полностью написан на Аде. Я не думаю, что остальная часть кода сильно поможет, поскольку она основана на FreeRTOS — вам нужно быть очень осторожным с использованием памяти.

person Simon Wright    schedule 22.10.2016

Я наткнулся на этот вопрос, когда искал среду выполнения zfp, специфичную для плат stm32l0xx. Судя по тому, что я вижу, не похоже, что он существует, но я наткнулся на это руководство по созданию новой среды выполнения из AdaCore, которое может помочь любому, кто столкнулся с той же проблемой:

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

person ajxs    schedule 13.04.2019