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.
72
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.
Étiquettes :
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 (…)

Sortie de GNU Compiler Collection 9.1

Posté par  . Édité par Davy Defaud, Benoît Sibaud, Florent Zara, claudex, Julien Jorge et ZeroHeure. Modéré par Julien Jorge. Licence CC By‑SA.
53
7
mai
2019
GNU

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

Posté par  (site web personnel) . Édité par ZeroHeure, Davy Defaud, gusterhack, RyDroid, palm123, jcr83, _seb_ et Bruno Michel. Modéré par bubar🦥. Licence CC By‑SA.
68
18
mai
2018
GNU

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.

Nouvelles versions logicielles du projet GNU juin et juillet 2017

Posté par  (site web personnel) . Édité par Davy Defaud, Anonyme et palm123. Modéré par ZeroHeure. Licence CC By‑SA.
53
22
août
2017
GNU

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

67
24
juin
2017
GNU

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.

GCC

Nouvelles versions logicielles du projet GNU avril et mai 2017

Posté par  (site web personnel) . Édité par Davy Defaud, ZeroHeure et Nils Ratusznik. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
66
5
juin
2017
GNU

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

Posté par  . Licence CC By‑SA.
Étiquettes :
37
28
mar.
2017

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.

Posté par  . Licence CC By‑SA.
Étiquettes :
51
20
déc.
2016

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 (…)

Sortie de GCC 6

Posté par  . Édité par bubar🦥, Davy Defaud, M5oul, patrick_g, palm123, ZeroHeure et Benoît Sibaud. Modéré par bubar🦥. Licence CC By‑SA.
91
23
avr.
2016
GNU

La sortie de la nouvelle version majeure du compilateur GCC du projet GNU va être annoncée. É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 en avance de phase une revue de certaines parties des améliorations et nouvelles fonctionnalités. Alors que GCC devenait un peu plus lent à chaque publication d’une nouvelle version, cette mouture marque un tournant en étant plus rapide que les deux versions précédentes, et plus rapide que d’autres compilateurs dans la plupart des situations, tout en générant souvent des binaires plus petits.

logo GCC