Forum Programmation.c Code assembleur incorrect généré à partir du code C (ARM Cortex-m3) ?
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++

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 (…)
Lien GCC fait sauter l'exigence d'attribution du copyright à la FSF
Lien Le comité directeur de GCC retire RMS de ses membres

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

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 (…)
Lien GCC 9.3 est sorti
Sortie de GNU Compiler Collection 9.1
La nouvelle version de la collection de compilateurs GNU est sortie le 3 mai 2019.
Plus qu’à son habitude, elle apporte de très nombreuses améliorations. Une partie d’icelles a été motivée par la récente décision des développeurs de Firefox d’utiliser le compilateur, particulièrement pour les phases d’optimisation à l’édition des liens.
On note également la prise en charge du langage D.
Plus d’informations dans la suite de la dépêche.
Sortie de GCC 8.1
La sortie de la nouvelle version majeure du compilateur GCC du projet GNU a été annoncée le 2 mai 2018. Écrit à l’origine par Richard Stallman, le logiciel GCC (GNU Compiler Collection) est le compilateur de référence du monde du logiciel libre. Il accepte des codes sources écrits en C, C++, Objective-C, Fortran, Go et Ada. De plus, il fonctionne sur une multitude d’architectures.
La suite de la dépêche vous propose une revue de certaines améliorations et nouvelles fonctionnalités de cette nouvelle version.
Lien Red Hat liste et explique les flags GCC qui sont utilisés pour Fedora et RHEL

Nouvelles versions logicielles du projet GNU juin et juillet 2017
Le projet GNU publie tous les mois une liste de versions logicielles publiées. Jetons‐y un coup d’œil pour découvrir de nouveaux logiciels inconnus (de moi), des infâmes bogues disparus ou les promesses de solutions à tous nos besoins : soit des dizaines de nouvelles versions annoncées allant de la corrective mineure à la version attendue depuis des années ; et l’on va donc parler de acct
, auctex
, automake
, binutils
, cgicc
, dr-geo
, freeipmi
, gama
, gcc
, gdb
, glpk
, gnuastro
, gnucash
, gnuhealth
, gnuhealth-control
, gnupg
, gnutls
, grep
, gsl
, guile-cv
, guile-gnome
, libextractor
, libffcall
, libgcrypt
, libidn2
, libmicrohttpd
, libtasn1
, linux-libre
, moe
, motti
, nano
, parallel
, screen
, taler
, texinfo
, tramp
et unifont
.
Sortie de GCC 7.1
La sortie de la nouvelle version majeure du compilateur GCC du projet GNU a été annoncée le 2 mai 2017. Écrit à l’origine par Richard Stallman, le logiciel GCC (GNU Compiler Collection) est le compilateur de référence du monde du logiciel libre. Il accepte des codes sources écrits en C, C++, Objective-C, Fortran, Java, Go et Ada et fonctionne sur une multitude d’architectures.
La suite de la dépêche vous propose une revue de certaines améliorations et nouvelles fonctionnalités de cette nouvelle version.
Nouvelles versions logicielles du projet GNU avril et mai 2017
Le projet GNU publie tous les mois une liste de versions logicielles publiées. Jetons‐y un coup d’œil pour découvrir de nouveaux logiciels inconnus (de moi), des infâmes bogues disparus ou les promesses de solutions à tous nos besoins : soit 33 nouvelles versions annoncées allant de la corrective mineure à la version attendue depuis des années ; et l’on va donc parler de acct
, artanis
, bc
, diffutils
, emacs
, emms
, freedink-data
, gcc
, global
, gnubik
, gnupg
, gnutls
, grub
, guile
, guile-cv
, guile-ncurses
, icecat
, kawa
, less
, libcdio-paranoia
, libidn2
, libmicrohttpd
, linux-libre
, nano
, ocrad
, orgadoc
et parallel
.
Journal Un fonds pour la GNU Toolchain
Le Free Software Foundation accepte maintenant des donations spécifiquement pour la GNU Toolchain : GCC, GDB, la glibc, les Binutils, etc.
Toutes les informations ici.
En tant que programmeur C, j’utilise certains de ces outils tous les jours et, comme je n’achète jamais de programmes, je fais parfois une donation pour les projets qui me tiennent hacker. Mais la plupart des distributions GNU/Linux dépendent fortement de la GNU Toolchain, donc, en tant que simple utilisateur, ça vaut aussi la (…)
Journal LLVM se fait de vieux os ? La recherche pour rester jeune.
Il y a une discussion intéressante sur la liste de développement de LLVM ce mois-ci, partie du constat que les temps de compilation de LLVM augmentent au fil du temps—avec l'évolution du code. En particulier j'ai trouvé ce message de Daniel Berlin très intéressant: il parle du rapport entre les compilateurs industriels et la recherche en compilation, et de l'effet que ça peut avoir sur la maintenabilité du code. Traduction à la rache (le début est la citation d'un autre (…)