Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Ricerca personalizzata

programmare STM32

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

3
voti

[21] Re: programmare STM32

Messaggioda Foto Utentexyz » 12 feb 2018, 18:39

TardoFreak ha scritto:Comunque grazie, mi cercherò le cose da solo e ... scusate l'ignoranza.

Scusa avevo alcune cose da fare ora ti rispondo.

Compilare sotto Raspberry-PI con la Raspbian (il porting della Debian) è esattamente come programmare con Linux su di un PC fisso. Si usa il compilatore GCC, esistono editor di testo e altri IDE compilati e pronti per la Raspberry-PI.

Il compilatore GCC presente ufficialmente compila per ARM con ABI di LInux, per compilare in C, C++ e assempler per gli ARM Cortex-Mx esiste un apposito GCC che si trova nel pacchetto "gcc-arm-none-eabi" e anche il debug si trova nel pacchetto "gdb-arm-none-eabi" i quali dipendono dal pacchetto "binutils-arm-none-eabi" con il linker e altre utility. Come libreria C/C++ è presente nel pacchetto "libstdc++-arm-none-eabi-newlib".

Per compilare bisogna passare esattamente ABI, architettura, CPU e il tipo di FPU. Ad esempio sotto l'ultima Raspbian:

Codice: Seleziona tutto
$pi> uname -a
Linux pi-box1 4.9.29-v7+ #1000 SMP Sun May 21 20:11:31 BST 2017 armv7l GNU/Linux


versione del compilatore GCC per i microcontrollori ARM:

Codice: Seleziona tutto
$pi> arm-none-eabi-gcc --version
arm-none-eabi-gcc (4.8.4-1+11-1) 4.8.4 20141219 (release)


questi sono le architetture, ABI, CPU e FPU sopportate:

Codice: Seleziona tutto
$pi> arm-none-eabi-gcc --target-help

.....
  Known ARM ABIs (for use with the -mabi= option):
    aapcs aapcs-linux apcs-gnu atpcs iwmmxt

  Known ARM architectures (for use with the -march= option):
    armv2 armv2a armv3 armv3m armv4 armv4t armv5 armv5e armv5t armv5te armv6
    armv6-m armv6j armv6k armv6s-m armv6t2 armv6z armv6zk armv7 armv7-a armv7-m
    armv7-r armv7e-m armv8-a iwmmxt iwmmxt2 native

  Known __fp16 formats (for use with the -mfp16-format= option):
    alternative ieee none

  Known ARM FPUs (for use with the -mfpu= option):
    crypto-neon-fp-armv8 fp-armv8 fpv4-sp-d16 neon neon-fp-armv8 neon-fp16
    neon-vfpv4 vfp vfp3 vfpv3 vfpv3-d16 vfpv3-d16-fp16 vfpv3-fp16 vfpv3xd
    vfpv3xd-fp16 vfpv4 vfpv4-d16

  Valid arguments to -mtp=:
    auto cp15 soft

  Known floating-point ABIs (for use with the -mfloat-abi= option):
    hard soft softfp

  Known ARM CPUs (for use with the -mcpu= and -mtune= options):
    arm1020e arm1020t arm1022e arm1026ej-s arm10e arm10tdmi arm1136j-s
    arm1136jf-s arm1156t2-s arm1156t2f-s arm1176jz-s arm1176jzf-s arm2 arm250
    arm3 arm6 arm60 arm600 arm610 arm620 arm7 arm70 arm700 arm700i arm710
    arm7100 arm710c arm710t arm720 arm720t arm740t arm7500 arm7500fe arm7d
    arm7di arm7dm arm7dmi arm7m arm7tdmi arm7tdmi-s arm8 arm810 arm9 arm920
    arm920t arm922t arm926ej-s arm940t arm946e-s arm966e-s arm968e-s arm9e
    arm9tdmi cortex-a15 cortex-a5 cortex-a7 cortex-a8 cortex-a9 cortex-m0
    cortex-m0plus cortex-m1 cortex-m3 cortex-m4 cortex-r4 cortex-r4f cortex-r5
    cortex-r7 ep9312 fa526 fa606te fa626 fa626te fa726te fmp626 generic-armv7-a
    iwmmxt iwmmxt2 marvell-pj4 mpcore mpcorenovfp native strongarm strongarm110
    strongarm1100 strongarm1110 xscale
...


Ad esempio per gli STM32 che uso queste sono le opzioni per compilare:

Codice: Seleziona tutto
arm-none-eabi-gcc -march=armv7-m -mcpu=cortex-m3 -mthumb -mfix-cortex-m3-ldrd -msoft-float ...


Il compilatore GCC per ARM non ha nessuna limitazione oltre a quelle hardware della Raspberry-PI.

E' possibile compilare per gli Atmel AVR installando il compilatore "gcc-avr" e altri pachetti per gli AVR.

Per i programmatori hardware esistono "openocd" e "avrdude" ad esempio. Se mancano basta prendere la versione per Linux per x86 e compilarli per ARM.
Avatar utente
Foto Utentexyz
4.727 2 4 5
Master EY
Master EY
 
Messaggi: 1217
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[22] Re: programmare STM32

Messaggioda Foto Utenteluxinterior » 12 feb 2018, 19:35

Anche a me intresserebbe sviluppare par ARM sotto Linux. Invidio molto xyz per la possibilità del debug tramite Wifi. A volte devo rinunicare al debug perché non posso stare collegato con il PC vicino alla scheda una soluzione come quella descritta farebbe molto comodo.
Pago annualmente un canone improponibile a IAR per usare il suo compilatore per i Cortex-M Mi trovo molto bene (E ci mancherebbe con quello che costa...) Inutile dire che passerei volentieri all'ambiente linux ma il problema è la documentazione. Non posso passare giornate a fare ricerche su internet per capire cosa scaricare e come configurare le cose. Ammetto di essere pigro e di essermi abituato all'IDE, tornare alla riga di comando sarebbe faticoso.
Se xyz facesse un bel trattatello sul come e sul cosa fare per far partire un ambiente di sviluppo per arm sotto linux avrebbe tutta la mia riconoscenza.
Avatar utente
Foto Utenteluxinterior
1.951 1 4 8
Expert EY
Expert EY
 
Messaggi: 959
Iscritto il: 6 gen 2016, 17:48

2
voti

[23] Re: programmare STM32

Messaggioda Foto Utentexyz » 12 feb 2018, 20:16

luxinterior ha scritto:Se xyz facesse un bel trattatello sul come e sul cosa fare per far partire un ambiente di sviluppo per arm sotto linux avrebbe tutta la mia riconoscenza.

Manca il tempo e poi non aggiungerei nulla di nuovo esistono in rete molte guide già fatte.

Imparare ad usare il GCC per una determinata CPU non cambia molto se si cambia CPU oltre ad impostare alcune opzioni specifiche per compilare con la nuova CPU. Usare il debug GDB per x86 e poi per STM32, ad esempio, non cambiano i comandi sono sempre gli stessi.

Semplici guide per STM32:

https://blog.gypsyengineer.com/en/diy-e ... linux.html
https://hackaventure.blogspot.it/2016/1 ... llers.html
http://sgreg.fi/blog/article/bare-metal ... d-on-linux
https://github.com/rogerclarkmelbourne/ ... from-Linux
Avatar utente
Foto Utentexyz
4.727 2 4 5
Master EY
Master EY
 
Messaggi: 1217
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[24] Re: programmare STM32

Messaggioda Foto Utenteluxinterior » 13 feb 2018, 5:43

Grazie xyz
Avatar utente
Foto Utenteluxinterior
1.951 1 4 8
Expert EY
Expert EY
 
Messaggi: 959
Iscritto il: 6 gen 2016, 17:48

0
voti

[25] Re: programmare STM32

Messaggioda Foto UtenteTardoFreak » 13 feb 2018, 9:25

Grazie
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,3k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15959
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

Precedente

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti