[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