[EFS] blue pill, C, et compilation de libopencm3 avec erreurs sur des notations de fréquences au format 'scientifique'
Rancune
rancune at rancune.org
Dim 10 Juil 12:38:10 CEST 2022
Hello,
C'est assez curieux ... "Illegal Instruction", c'est vraiment une erreur
du compilateur lui-même.
La compréhension d'un literal est purement du ressort du compilateur
donc ça ne peut pas être un problème de librairie ou autre.
Je viens de tester rapidement : sur gcc 10.3.0, pour x86_64, pas de
souci. Ca passe pour un int ou un double sans même un warning.
Cependant, je sais que les anciennes versions du C ne supportaient pas
ce type de notation : Je pencherais donc pour la version du C utilisée
par ton compilo.
( est-ce que cela a été introduit dans une version de C tardive ? C11 ? )
Tu peux nous faire un petit gcc -v et nous donner aussi la ligne de
compilation que tu utilises ?
Si tu compiles avec une option du style -std=c11, ca ameliore les choses ?
Autre possibilité : la chaine de compilation a un souci. Tu peux
installer gcc-arm par le système d'installation de ta distribution : il
est en général packagé dans toutes les distros. La toute dernière
version n'est absolument pas nécessaire :)
Rancune
Le 10/07/2022 à 11:53, mac_call a écrit :
> Hello les maîtres du C et du stm32.
>
>
> Ayant reçus quelques blue pills, j'ai commencé à regarder "Beginning
> STM32: Developing with FreeRTOS, libopencm3 and GCC"
> (
> http://bookszlibb74ugqojhzhg2a63w5i2atv5bqarulgczawnbmsb6s6qead.onion/book/3705292/5504c6
> par TOR pour le pdf sur z-lib, il est pas accessible sur le site
> "normal"
>
> Ça demande de compiler libopencm3 avec un cross-compilateur arm (tout
> est bien expliqué) mais j'ai eu des erreurs :
>
> rcc.c:86:17: internal compiler error: Illegal instruction
>
>
> 86 | .ahb_frequency = 72e6,
>
> sur des définitions de fréquences...
>
> J'ai remplacé la valeur un peu au pif par 72000000 au lieu de 72e6 et
> hop, c'est passé...
>
>
> La compréhension de e6 comme 10⁶ c'est le compilateur qui sait faire
> ça ? De quoi ça peut dépendre ?
>
> j'ai récupéré la dernière version de gcc-arm sur
> https://developer.arm.com comme indiqué par le bouquin...
>
>
> Alors j'ai l'impression d'être un gros hackerZ pour avoir corrigé un
> truc sans rien comprendre, mais je suis un peu perplexe sur cette
> notation scientique qui devrait être comprise mais qui ne l'ai pas
> chez moi :)
>
> Si vous avez des infos la dessus ça m'intéresse !
>
>
> Mac
>
>
> _______________________________________________
> EFS mailing list
> EFS at ramix.org
> http://listes.lautre.net/cgi-bin/mailman/listinfo/efs
Plus d'informations sur la liste de diffusion EFS