Ho appena finito di leggere molto velocemente tutto il datasheet (circa mezzora a velocità supersonica grazie al fatto che il mio inglese è migliorato).
Non ricordavo molto di questo microcontroller e devo dire che linux ci sta stretto, ma un RTOS credo sia quasi un obbligo, principalmente perchè per fare andare veloce il micro c'è il modo altrimenti si rischia di non sfruttarlo per niente.
Vi assicuro che è molto comlesso gestirlo al meglio, siamo almeno 4/5 la complessita di un ATmega.
C'è la possibilità come dice astro di extendere la RAM fino a 16Mb x 4 e fare operazioni di trasferimento tramite DMA (direct memory access) impegnando al minimo la cpu.
Ogni device integrato ha un suo udi (unique device identifier) da 128 bit.
C'è un timer di sistema, un RTT (real-time timer) con possibilità di registrare l'allarme, un RTC.
C'è qualcosa di simile a protect mode di i386, con 4 livelli, thread mode, handler mode, non privileggiato, privileggiato.
Il kernel ad esempio gira in handler mode e l'applicazione in thread mode.
Due stacks, uno per thread mode e uno per handler mode.
C'è la gestione di eccezioni via hardware.
Gli interrupt con 16 livelli di priorità
Vedi pag 340 per arbitration matrix bus (è nato per un RTOS)
e un mare di altre cose che neanche io sono riuscito a capire come gestire, anche, se non principalmente per questo io userei un RTOS, per evitare di dovere impazzire con il basso livello, lasciando al kernel il compito di fare la gestione sicura del micro.
Poi ci sarebbe da vedere cosa offre la toolchain, se c'è il modulo di libreria thread, e se le eccezioni C++ sono supportate.
Da profano sono dell'idea di lesto... Se devo prendere un processore veloce solo per appesantirlo con un kernel allora continuo ad usare gli atmega... =)
Dico parlo da profano perché per mettere un kernel su un micro non saprei da che parte iniziare... smiley-mr-green
Io penso che devi avere un motivo valido per fare a meno di un RTOS il quale ti offre risposte real-time che sono sufficienti nella quasi totalità dei casi e solo nel caso sporadico in cui la tua applicazione è time critical sempre e continuamente allora devi evitare l'uso di un RTOS e fare tutto a manina sperando che basti.
(discussione interessante)
Ciao.