Forum Programmation.c Code assembleur incorrect généré à partir du code C (ARM Cortex-m3) ?

Posté par  . Licence CC By‑SA.
Étiquettes :
1
2
déc.
2021

Hello,

J'ai un problème avec un code assembleur généré par GCC à partir d'un code C.

J'essaie d'écrire un firmware minimal pour un microcontrôleur, le LPC1769.
Il utilise le processeur ARM Cortex-M3. Mon firmware est simple :
* Exécute une fonction nommée "reset()" lors de la réinitialisation du processeur
* Dans cette fonction, je déclare 3 variables locales : 3 pointeurs vers 3
différents registres, initialisés avec leur adresse
* Ensuite, j'écris une valeur dans chaque registre

Le problème:

Le (…)

Journal Recherche de valeur dans un tableau et l'écosystème des compilateurs C++

Posté par  (site web personnel) . Licence CC By‑SA.
73
3
oct.
2021

Bonjour 'nal,

GCC, Clang, MSVC, sont tous des compilateurs très performants, ayant de nombreuses heuristiques pour émettre des instructions terriblement efficaces, à défaut d'être optimales. De même pour ICC, le compilateur d'Intel, réputé pour enterrer tous les autres en termes de performance du code généré. On en parle pas beaucoup mais il est là. (Tiens, d'ailleurs, savais-tu qu'Intel migrait son compilateur vers LLVM ? Le nouveau compilateur se nomme ICX pour le C, et ICPX pour le C++.)

Il (…)

Journal Premiers pas sur l'architecture RISC-V avec la carte HiFive1

Posté par  (site web personnel) . Licence CC By‑SA.
39
3
juin
2020

Une révolution, tout simplement. Depuis que je travaille dans le domaine embarqué, j'ai connu quelques changements intéressants avec notamment l'arrivée de l'architecture Cortex-M, mais là, c'est un cran au-dessus. Une architecture de microcontrôleur Open Source, j'en ai rêvé, maintenant elle existe.

Rappel sur les microcontrôleurs

Petite piqûre de rappel : les microcontrôleurs sont de très petits processeurs équipés de périphériques pour contrôler le monde extérieur au composant : des actionneurs ou des capteurs. De plus, ces composants disposent de leur (…)

Journal Le compilateur GCC passe à Git

Posté par  . Licence CC By‑SA.
Étiquettes :
33
25
jan.
2020

Depuis le 13 janvier, le dépôt du code source de GCC est entièrement passé sur Git. La tâche a été confiée au hacker moustachu Eric S. Raymond avec un délai assez court. Mais ce type est un monstre, il raconte ses trente jours de hack dans un billet impressionnant — des 580 Gio de RAM à sa maladie consécutive. Il y a un autre achèvement : le 13 janvier marque aussi la version 4.0 de Reposurgeon, l’outil d’esr (…)