Kernel Atmega328

Salve, ho completato la tesi,
ossia un Kernel molto semplice, direi didattico, per Arduino Uno.

Qui il link,del codice e documentazione:

complimenti, quando mi riprendo da ieri sera ci dò un'occhiata

complimenti, quando mi riprendo da ieri sera ci dò un'occhiata

mmmm.... riprendo?

Da cosa?

ciao.

Dalla sbornia di ieri sera

evidente, credo che la sbornia gli stia durando da una settimana, visto che ultimamente lesto dà "letteralmente" i numeri, hic! :grin:

evidentemente da venerdì sono in vacanza e bisogna festeggiare a ritmi forzati, hic XD

Fermi fermi.... cos'è 'sta cosa?
Un SO? Come, edge: posti 2 righe sputate per annunciare un miniSO? Non va bene! :stuck_out_tongue:
Dettagli, per favore! Che fa questo SO? :smiley:

Ciao Leo, grazie dell'interessamento.
Mah, guarda il progetto è molto semplice.
E' possibile :

  • Creare Processi
  • terminare processi
  • Creare Semafori e dunque usarli
  • Rilasciare i semafori
  • AutoRichiesta sospensione processi con my_delay
  • Scheduling processi con politica preemption a + alta priorità
  • Utilizzare parte dei PIN in mutua esclusione

Lo considero molto didattico,adatto a coloro che vogliono studiare
il multitasking in ambienti "estremi" ,inteso come ambineti a poca memoria!

Ciao

Una domanda.
Ma la questione della frammentazione della memoria, come la risolvi (premetto che non ho ancora avuto il tempo di leggere il tuo PDF)?
Ti faccio un esempio:

  • il processo P1 crea una variabile temporanea di tipo byte alla posizione 1
  • il processo P2 che segue ha bisogno di creare una variabile di tipo int, quindi 2 byte, alla posizione 2
  • prima dell'esecuzione del processo P3, P1 distrugge la variabile e libera quindi il byte in posizione 1.
  • il processo P3 deve ora creare una variabile int: la crea in posizione 4, giustamente.

Ma resta il buco in posizione 1.

Bellobello ora gli do un occhio anche io :slight_smile:

Ogni processo ha uno stack da 256 byte contigui.
Lo stack viene inizializzato al momento della creazione del processo.
La memoria dinamica non l'ho gestita,per mancanza di tempo.
Per una tesi triennale non vale la pena ammazzarsi tanto, per quello che ho potuto vedere.