2016-10-21 3 views
1

Id aiment utiliser Ada avec Stm32F103 uc, mais voici le problème - il n'y a pas de système d'exécution intégré dans GNAT 2016. Il y a un autre uc de cortex-m3 par TI RTS inclus - zfp-lm3s, mais il semble qu'il a besoin de quelques mises à jour globales, simple changement de la taille de la mémoire/origine ne fonctionne pas.Système d'exécution pour le bras Stm32F103, compilateur GNAT Ada

Donc, il y a quelques questions:

  1. Est-ce que certains corps ont RTS pour stm32f103?

  2. Existe-t-il de bons livres sur le personnel à faible niveau de cortex-m3 ou autre bras uc?

PS. L'utilisation PDZ-LM3S augmente cette erreur, lorsque je tente d'exécuter le programme via GPS:

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

+0

avez-vous essayé avec juste '--RTS = zfp'? –

+0

@ Jean-François Fabre, je n'ai pas de zfp, seulement zfp-lm3s, et un peu de zfp pour cortex-m4. Donc '--RTS = zfp' ne fonctionne pas. – Jamshoot

Répondre

4

La série STM32F est de STMicroelectronics, non TI, de sorte que le STM32F4 peut sembler être un meilleur point de départ.

En particulier, le code d'horloge au bsp/setup_pll.adb ne devrait nécessiter que des ajustements mineurs; Utilisez l'outil STM32CubeMX de STM (écrit en Java) pour trouver les nombres magiques permettant de configurer correctement l'horloge.

Vous trouverez également que le code assembleur utilisé dans bsp/start*.S doit être simplifié/porté sur la pièce Cortex-M3.

Mon projet Cortex GNAT Run Time Systems inclut une version Arduino Due (également Cortex-M3), dont le code de démarrage est entièrement écrit en Ada. Je ne pense pas que le reste du code aiderait beaucoup, étant basé sur FreeRTOS - vous devriez faire très très attention à l'utilisation de la mémoire.