Bonjour à tous,
Je m'intéresse depuis un moment à la programmation sur arm cortex. Pour ce faire j'utilise un stm32f103, un st-link v2 comme debugger et embitz comme ide avec les outils gcc. C'est un environnent nouveau pour moi, jusque là j'utilisais Mplab sans chercher bien loin...
J'aimerais déplacer la stack en début de ram de manière à déclencher une exception hard fault en cas d'overflow.
La solution que j'ai trouvée en recherchant sur le net est de placer la section .stack avant la section .data et .bss.
En regardant les delimiteurs d'adresses de début et de fin de ces section, elles sont bien placée comme je le voudrais, le remplissage de la stack se fait bien en début de ram, mais pour une raison que j'ignore, l'adresse de variables placées dans la fonction main se retrouvent quand même en début de ram, dans la section à priori allouée à la stack. Ce n'est pas le cas des variables globales. En regardant dans le fichier .map, je retrouve facilement les variables globales, mais pas de traces des variables locales au main.
J'avoue avoir bien de la difficulté à comprendre tout le contenu du fichier linker.ld. Aussi si l'un de vous à déjà creusé là dedans et qu'il a des conseils ou à rencontré des tutoriels s'y référant, je suis preneur...
-----