Home Forum MICROCONTROLLORI Porting di un firmware su Arduino

Questo argomento contiene 10 risposte, ha 4 partecipanti, ed è stato aggiornato da  Luigi Francesco Cerfeda 1 anno, 6 mesi fa.

Stai vedendo 11 articoli - dal 1 a 11 (di 11 totali)
  • Autore
    Articoli
  • #59620

    Salve a tutti, potreste darmi delle indicazioni su come portare un firmware da un micro ATMEGA16 al micro di Arduino Due.

    Credo di aver capito che fare un porting non è affatto una cosa semplice e ogni porting è diverso da un altro, però vi chiedo di darmi delle linee guide generali per avere un’idea più chiara dell’argomento.

    Grazie

    #73279

    Piero Boccadoro
    Partecipante

    Allora, in linea generale se il firmware è già compilato, la cosa non è possibile.
    Se, invece, puoi procurarti il sorgente, oppure lo hai creato tu per cui non hai problemi ad averlo, la cosa che devi verificare è l’accesso ai singoli registri, le varie istruzioni che sono state utilizzate, la configurazione dei pin, l’eventuale compatibilità con i timer e così via dicendo comparando come vengono gestiti nei due microcontrollori gli stessi registri che ci servono.
    In pratica si tratta di studiare massivamente i datasheet dei due microcontrollori e poi di scrivere istruzioni incompatibili con quello nuovo.
    Nel caso in cui siano diversi (e sicuramente lo saranno visto che passi da un AtMega16 ad un SAM3X), devi fare le modifiche che servono…
    Credo potresti avere anche il problema del supporto perché mi sembra di sapere, ma non ne sono affatto sicuro, che l’Atmega16 non sia supportato dalle librerie di Arduino.
    Però non sono sicuro, ripeto.
    Nel caso, anche se avessi il sorgente in C lo dovresti sistemare per renderlo compilare le dalla GUI di Arduino, eventualmente includendo le librerie che servono.

    #73280

    Mi potresti indicare dei riferimenti per capire meglio l’argomento?
    Magari con qualche esempio di porting di firmware semplici semplici.

    In realtà non ho ben chiaro quale sia la “struttura” di un firmware complesso.
    (Nei miei studi ho incontrato esercizi in cui si richiedeva solo di realizzare sottoprogrammi in assembly in una ventina di istruzioni )

    Grazie :)

    #73281

    Piero Boccadoro
    Partecipante

    No guarda, io purtroppo non ho esempi pronti da poterti portare…
    Sul sito di Arduino, però, ci sono un paio di discussioni che potrebbero servirti:

    http://arduino.cc/forum/index.php?topic=152188.0

    http://arduino.cc/forum/index.php?topic=907.0

    #73282

    Piero Boccadoro
    Partecipante

    Forse forse Emanuele potrebbe darti qualche indicazione :)

    #73284

    Emanuele
    Keymaster

    Luigi,
    dovresti fornire qualche indicazione supplementare, come ad esempio in che linguaggio è scritto il firmware e se il codice è ottimizzato con i giusti include. Poi che librerie utilizza e tutte le altre info del caso.

    #73285
    #73297

    divivoma
    Membro

    La prima cosa che mi verrebbe in mente di fare è controllare che tutti i pin utilizzati dalle varie funzioni “primitive” di I/O corrispondano opportunamente..
    Poi ovviamente ci sono tutti gli interrupt e timer che devono essere inizializzati nei giusti registri…quindi bisogna guardare il datasheet di entrambe i micro e controllare che i registri (i vari PORT di solito..ma non solo) abbiano gli stessi indirizzi…
    Ma è davvero un’operazione non di poco conto..
    Solo se hai fatto almeno un pò di pratica nello scrivere firmware partendo dalla semplice scrittura di un protocollo,(per esempio SPI) puoi capire cosa intendo..
    Poi io userei WinMerge per confrontare i vari file sorgenti ;)

    #73298

    Piero Boccadoro
    Partecipante

    Oh Marco :)
    Da quanto tempo.. :)

    #73308

    divivoma
    Membro

    e ciao a tutti!!
    Eh si hai ragione manco da un bel pò…
    Purtroppo (anzi per fortuna direi) sto lavorando molto in questo periodo e attualmente sono anche in procinto di trasferirmi a torino..
    Spero di sistemarmi stabilmente per un bel pò stavolta…
    Ad ogni modo vi seguo e appena posso vi mando qualche bel articolo come ai vecchi tempi..(Oscillandia :) ) !

    #73311

    Fortunatamente il datasheet del SAM3X è lungo SOLO 1467 pagine !!!!
    Porca miseria, la vedo dura !

    A parte questo, potreste indicarmi delle buone risorse riguardanti la scrittura di firmware? Magari libri, handbook, dispense universitarie, non so … magari anche qualcosa di più user friendly ma efficace
    [Ho fatto un po' di giri su EOS ma non ho trovato molto, magari un po' di articoli su questo argomento potrebbero essere utili alla community :) ]

    P.S. Conosco le basi del C++ e un pò di Assembly

    Grazie

Stai vedendo 11 articoli - dal 1 a 11 (di 11 totali)

Devi aver eseguito l’accesso per poter rispondere a questa discussione.