Thread per sperimentazione sistema minimo LINUX su Microcontrollore

10 Anni 6 giorni fa #1 da Ultron
Vorrei "evolvermi" e passare da Sistemi Embedded puri (al massimo con sistemi RTOS) ad un sistema minimale che possa far girare un kernel LINUX.

Le mie competenze sono minime, quindi chiedo aiuto a chi ha già operato in questo campo (volate basso).

La richiesta è per un approccio passo-passo per costruire questo sistema.

So che serve un MCU con una gestione protetta della memoria, quindi con MMU, per cui i PIC32 che conosco bene, sono esclusi. Ci vuole quindi un ARM. Di che genere? Che potenza minima per far girare decentemente un Kernel, con richieste minime attraverso una connessione seriale da terminale?

Una volta che ho la MCU un mano (magari con una Board di sviluppo, ma non necessariamente perchè me lo posso fare) qual'è il secondo passo, spiegato ad un nabbo?

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Ultron
  • Senior Member
  • Senior Member
Di più
10 Anni 5 giorni fa #2 da Mauro Laurenti
Ciao Ultron,

personalmente non mi cimenterei nella realizzazione di una scheda personale. Avresti cosi tante variabili in gioco che prima di far accendere un LED passerebbe un anno.
Le problematiche sono troppe, per cui ti consiglio di iniziare con una scheda base da poche decine di euro 20-30, come Raspberry o BeagleBone. Sono praticamente dei mini PC a basso consumo.
Presa esperienza con le schede potrai ricompilare una versione Linux ad hoc ed aggiungere nuovo hardware.

Queste schede "banalizzano" cose che vanno oltre la conoscenza di molte persone che ne fanno uso.

Ti consiglio di prendere anche un libro dedicato alla scheda o cercare qualche buon tutorial che ti guidi passo passo, almeno all'inizio.

Volendo potresti anche prendere un vecchio PC con un 486 o vecchio pentium e considerarlo come sistema embedded. Ci sono tool chain dedicate anche ad architetture 8086 oltre che ARM.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
10 Anni 5 giorni fa #3 da legacy
Oltre al fatto che al pragmatico come minimo un SoC moderno adatto allo scopo e' BGA package, ergo non lo saldi se non con attrezzatura apposita, e anche se lo saldi il PCB e' un pelo complesso al signal integrity visto che la DDR/1/2/3 e' una brutta bestia (morde, morde duro, stacca le teste a morsi, serve un masterista bello scafato e domatore di draghi). Ma a pro po di macchine x86 pronte fuori dalla scatola e sulle quali schiaffare una ubuntu senza tanti fronzoli da customizzare poi a piacere: vendono microATX SBC con su CPU AMD Geode, sono ne + ne - di un PC a bassissimo consumo (ventilazione passiva), sono piccolissime di dimensioni, performano non troppo carriola e non costano nemmeno troppo, p.e. io ne ho trovato una usata per 40 euro comprensiva di 1/4 di Giga di ram e 10Gbyte di disco, anzi, accetta e fa boot pure da CF.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • legacy
  • Junior Member
  • Junior Member
Di più
10 Anni 5 giorni fa - 10 Anni 5 giorni fa #4 da Ultron
Ho già sperimentato poco tempo fa una installazione su Raspberry, ma l'esperienza acquisita, seppur molto istruttiva, è relativa ad una gestione ad alto livello.

Il desiderio di apprendimento riguarda l'installazione dal bootlader all'impianto del kernel, vista come programmatore.

Ho visto questa sera, di sfuggita, un molto interessante sistema, molto ben documentato, che forse parte proprio dal bare metal. Domani dò un'occhiata con più calma.

Quanto al sistema minimale, lavoro nell'ambiente, quindi ho disponibile il Masterista che sistema i draghi (4 layers con fori passanti ciechi tra gli strati interni) sia la pick&place.

Non è necessario per forza un SoC, è sufficiente un TQFP80 o 144 che posso saldare anche a mano, con DDR e EEPROM per Immagine e RAM Disk, esterne.

Vorrei partire con un Cortex-Mx minimale e gestire, LOW-level, un pò di roba tipo SPI, I2C e GPIO.

Il punto è che a breve verro inserito in un Team dove il sistema principe utilizza un ARM ColdFire a 200MHz, con su un kernel Linux che gestisce periferiche a basso livello. Vorrei smanettare un pò su qualcosa di entry-level, in modo da non arrivare completamente a zero.

Mi sono puppato un paio di testi specifici su Linux-Embedded, in lingua inglese, ma con nulla che riguardi un qualche aspetto pratico-sperimentale.

Facciamo finta che ho già in mano la mia board minimale, anche il solo Processore senza alcun hardware di contorno, con relativa piattaforma software (dispongo di uVision KEIL e IAR Workbench, con un carriolo cinese j-link come programmatore). Adesso qual'è lo Step 1?
Ultima Modifica 10 Anni 5 giorni fa da Ultron.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Ultron
  • Senior Member
  • Senior Member
Di più
10 Anni 4 giorni fa #5 da legacy
Quella roba prima che inizi a farla ce ne vuole, prenditi una scheda che abbia gia' quel tipo di "kernel driver" e adattali.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • legacy
  • Junior Member
  • Junior Member
Di più
Moderatori: Mauro LaurentiMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login