Corso .NET Micro Framework – Scarica gratis!



Se è vero che tutti conoscono Microsoft per la produzione di sistemi operativi, software e ambienti di sviluppo per i Personal Computer, è altrettanto vero che pochi sanno che la casa di Redmond ormai da qualche anno propone una piattaforma di sviluppo di applicazioni per dispositivi embedded, che si configura come la “sorella minore” del Microsoft .NET Framework. Con questo Corso vogliamo introdurre l’uso di questa piattaforma, denominata .NET Micro Framework perché nasce per offrire le stesse qualità di .NET Framework al settore dei microcontrollori.

In cosa consiste il .NET Micro FrameworkIl Micro Framework è un’infrastruttura per microcontrollori a 32 bit i cui vantaggi principali  consistono nel fornire una ricca API indipendente dall’hardware, un’efficiente controllo sulle periferiche del microcontrollore, una runtime che gestisce aspetti che vanno dal bootstrap al debug del firmware, un ricco ambiente di sviluppo quale Visual Studio, il supporto all’emulazione del dispositivo oltre, naturalmente, a innumerevoli altri vantaggi intrinseci del Framework .NET, indipendentemente dal fatto che si parli della versione “Micro” (per  icrocontrollori), della versione “Compact” (per palmari e telefoni, ma utilizzato anche sulla XBOX) o della versione “maggiore” del framework, destinata allo sviluppo di software per Personal Computer.

Rilasciato nella sua prima versione nel 2002, il Framework .NET rappresenta l’interpretazione di Microsoft della tendenza –già consolidatasi negli anni precedenti con Java alla “virtualizzazione” del microprocessore. L’obiettivo principale del progetto è infatti costituito dalla realizzazione di una “virtual machine” (così chiamata nel gergo Java) denominata “CLR” (Common Language Runtime), in grado di compilare o interpretare (a seconda delle implementazioni) codice scritto in un linguaggio indipendente dall’hardware, denominato IL (Intermediate Language), traducendolo “just-in-time” in istruzioni native per lo specifico microprocessore su cui si sta eseguendo l’applicazione. I vantaggi della virtualizzazione sono numerosi ed evidenti, primi tra tutti quelli dell’indipendenza dall’hardware e della maggior possibilità di controllo su quanto viene eseguito, a fronte di un calo delle prestazioni assolutamente trascurabile.

A tale proposito, sono invece numerosi i casi in cui è stato dimostrato che un’applicazione destinata ad essere eseguita dalla CLR (ossia “managed”, come viene comunemente definita) può addirittura presentare performance superiori alla controparte “nativa”, in quanto la possibilità da parte della runtime di ottimizzare l’esecuzione per lo specifico hardware su cui si sta eseguendo l’applicazione (tenendo conto ad esempio della versione del sistema operativo, del numero di core o processori e della RAM effettivamente a disposizione) permette di aumentare le prestazioni più di quanto esse non calino per gestire la compilazione “just-in-time” da parte dell’infrastruttura.

Nel mondo dei microcontrollori, in cui le architetture dominanti sono ben più numerose di quelle presenti nel mondo del Personal Computer (in cui sostanzialmente troviamo x86, x64 e Itanium) i vantaggi derivanti dall’adozione di un framework basato su una runtime che virtualizzi l’hardware sono ancora più evidenti. Grazie al .NET Micro Framework, possiamo infatti realizzare applicazioni che possono essere eseguite indistintamente su processori Atmel, NXP, Freescale, Analog Devices, ecc.
Scarica il file .ZIP con il Corso e tutti gli allegati.

7 pensieri riguardo “Corso .NET Micro Framework – Scarica gratis!

  • 13/05/2011 in 10:08
    Permalink

    Buon giorno. Ottimo corso.
    Avrei un commento circa la filosofia Microframework. Il limite che vedo in questa tecnologia è il fatto che si ha poco controllo sull’hardware: mentre con il firmware posso conttrollare direttamente la macchina, qui devo aspettare che qualche terza parte (es: Device Solution, SecretLabs per netduino, GHI) preparino “l’interfaccia” verso l’hardware che parli con il CLR.
    Che ne pensate?

    Risposta
  • 13/05/2011 in 11:00
    Permalink

    comincerò a leggerlo ed a provarlo; poi vi invierò il mio commento
    cordiali saluti
    alessandro79

    Risposta
  • 13/05/2011 in 14:04
    Permalink

    RGB:Ovviamente ogni “astrazione”, come la virtualizzazione dell’hardware del .NET MF, porta con se’ vantaggi (produttività, indipendenza dall’hardware specifico, modularità, flessibilità, estendibilità, ecc.) e svantaggi (perdita di performance o controllo).

    Come sempre, è il contesto a decretare se questa piattaforma è adatta o meno ad essere impiegata in un determinato progetto.

    Ciò detto, il .NET MF è a nostro avviso la piattaforma più versatile, ossia adattabile al maggior numero di casi reali.

    Inoltre, il .NET MF dà di fatto accesso anche a tutte le interfacce di basso livello del microcontrollore (GPIO, SPI, i2C, parallela, UART, CAN, Ethernet, ecc.).

    Risposta
  • 13/05/2011 in 15:42
    Permalink

    Grazie Lorenzo. E’ Sulla parte di interfaccia a basso livello che ho trovato il freno più grande: parlo da firmwarista abituato a lavorare a basso livello pur conoscendo il C# e la piattaforma .NET piuttosto bene. Sicuramente si è legati molto a coloro che espandono lo SPOT aggiungendo o estendendo le classi per la gestione I2C piuttosto che GPIO etc.
    Faccio un esempio pratico. Usando Netduino ho visto una gestione buona della RS232 (con due semplici istruzioni di alto livello faccio tutto ciò che mi serve), mentre la gestione I2C manca totalmente (almeno fino a poco tempo fa non era gestita da Secret Labs). Tentare di integrare istruzioni C++ o C usando l’interop diventa proibitivo…
    L’ARM deve eseguire il CLR che a sua volta fa girare la mia applicazione: ho visto una perdita di temporizzazioni per esempio alzando e abbassando più volte il livello elettrico di un singolo IO tramite la classe GPIO…
    Sicuramente la piattaforma promette molto bene soprattutto per la velocità di implementazione di funzioni complesse (come una gestione display)e su questo non ci sono dubbi.
    L’ideale per noi hardwaristi sarebbe avere la possibilità di poter avere più controllo sui registri delle periferiche a bordo del micro, ma ovviamente non si può avere tutto: o si lavora a basso livello con uno sviluppo con i suoi tempi o si lavora ad alto livello fidandosi di chi ha gettato il ponte con l’hardware

    Risposta
  • 13/05/2011 in 15:47
    Permalink

    “Grazie al .NET Micro Framework, possiamo infatti realizzare applicazioni che possono essere eseguite indistintamente su processori Atmel, NXP, Freescale, Analog Devices, ecc.”

    E’ proprio così? Non mi pare visto che ogni terza parte fornisce le proprie DLL da aggiungere alla soluzione…

    Risposta
  • 13/05/2011 in 15:50
    Permalink

    Concordo con te al 100%, nel senso che la piattaforma dà sicuramente il meglio di sè con applicazioni in cui la parte di gestione del display o del networking siano preponderanti rispetto alla gestione di segnali con timing critico o più in generale quando si tende ad avere bisogno di un sistema real-time.

    Aggiungo solo che in questo momento, in termini di affidabilità e features del porting, la piattaforma Netduino non è assolutamente in grado di competere con i prodotti (non open, del resto) della GHI (basati su chipset USBizi, EMX e ChipworkX), che danno una reale misura di quello che .NET MF può effettivamente esprimere.

    Risposta
  • 13/05/2011 in 15:52
    Permalink

    Diciamo che le applicazioni sono portabili in tutto ciò che non riguarda accesso nativo (interop, rlp, ecc.), mappatura dei pin e driver specifici (che non sfruttano cioè le astrazioni previste dal porting ma vanno direttamente sul microcontrollore).

    Risposta

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ricevi un avviso se ci sono nuovi commenti. Oppure iscriviti senza commentare.