.NET Micro Framework (part 3)

In questo terzo post ci occupiamo del collegamento della scheda FEZmini e dell’aggiornamento del firmware all’ultima versione disponibile. Per l’installazione del software vedi il post precedente.

La scheda FEZMini, appena arrivata tramite corriere FedEx, è una cosa davvero minuscola, molto più piccola di quanto mi sarei aspettato:

image

La scheda è provvista di una porta USB che viene utilizzata sia per fornire l’alimentazione che per la connessione al PC di sviluppo.

Collegamento della scheda hardware col PC di sviluppo

Per prima cosa installiamo il driver USB:

1. Se non l’abbiamo ancora fatto, scarichiamo l’installer appropriato per il nostro sistema di sviluppo (GHI NETMF USB Drivers 32-Bit Auto Installer oppure GHI NETMF USB Drivers 64-Bit Auto Installer)

2. Scompattiamo il file zip e avviamo l’installer:

image 

Confermiamo tutte le richieste semplicemente cliccando su next, fino al termine dell’installazione.

3. Colleghiamo ora la scheda al PC di sviluppo con il cavo USB. Viene caricato il driver e al termine otteniamo (se abbiamo scelto di vedere il dettaglio dell’installazione) la seguente finestra di dialogo:

image

4. Per verificare il collegamento, utilizziamo il tool MFDeploy (contenuto nell’ SDK .NET Micro Framework della Microsoft):

image

Selezioniamo USB e USBizi_USBizi, poi clicchiamo su “Ping”. Se tutto è ben configurato per ogni click appare “Pinging.. TinyCLR”.

Aggiornamento del firmware

Prima di poter utilizzare la scheda dobbiamo aggiornare il firmware alla versione corrispondente all’SDK installato in Visual Studio, procedendo secondo i seguenti passi:

1. Dal menu “Start | Tutti i programmi | GHI Electronics | GHI NETMF 4.1 | GHI NETMF v4.1 SDK” apriamo le “Release Notes” e verifichiamo la versione del firmware che dobbiamo avere nella scheda:

image

2. Utilizzando MFDeploy (incluso nel .NET Micro Framework SDK fornito dalla Microsoft) verifichiamo la versione presente nella scheda con il menu “Target | Device Capabilities”:

image

Nel mio caso, avendo installato l’SDK della GHI Electronics circa 20 giorni fa ed avendo ricevuto la scheda FEZMini solo ieri, mi trovo nella curiosa situazione di avere un firmware su scheda più recente dell’SDK ! Poiché il firmware deve essere sempre allineato all’SDK e curiosamente non è ancora possibile scaricare il nuovo SDK (21 febbraio 2011) devo installare il firmware V 4.1.3.0 per poter utilizzare la scheda senza problemi. Appena sarà disponibile (gli aggiornamenti dell’SDK hanno una cadenza generalmente mensile) aggiornerò nuovamente l’SDK e il firmware per avere sempre l’ultima versione disponibile.

Vediamo dunque come si esegue il download del firmware:

3. Scaricare il programma di comunicazione TeraTerm (scompattare ed eseguire il setup, scegliendo l’installazione standard in inglese)

4.Avviare Teraterm. Viene mostrata una finesta di dialogo per la configurazione della connessione:

image

5. Prendere nota di tutte le connessioni seriali disponibili. Nel mio caso, non avevdo alcuna porta seriale nel mio laptop, la scelta della seriale è disabilitata.

6. Eseguire il reset della scheda richiedendo l’esecuzione del Boot Loader. Con la scheda FEZMini (che non ha il bottone di reset nella scheda) basta staccare la presa USB e riattaccarla tenendo premuto il pulsante del Boot Loader:

image

7. Tenete le dita incrociate mentre Windows 7 installa il driver della porta seriale (virtuale perché in effetti la connessione è via usb). se tutto va bene appare la seguente schermata:

image

8. Riavviate TeraTerm e scegliete la porta seriale appena creata (nel mio caso è la porta COM 11 come mostrato nella schermata di installazione del driver):

Teraterm2

9. Per verificare che la connessione sia attiva e funzionante, premete la lettera (maiuscola) V per ottenere la versione del Boot Loader (nel mio caso la 1.7):

image

Ok, ora cha la connessione seriale è correttamente settata e funzionante, possiamo finalmente procedere all’upgrade del firmware (nel mio caso è un downgrade alla versione precedente, ma è lo stesso), eseguendo i seguenti passi:

10. Avviare il trasferimento file con la lettera (maiuscola) X. questo avvierà il protocollo XMODEM e vedremo comparire una serie ininterrotta di caratteri C:

image

11. Richiediamo l’invio di un file col comando “File | Transfer | XMODEM | Send…”:

Teraterm XMODEM

12. Selezioniamo il file da trasferire, contenuto nella cartella Firmware (relativa al nostro device) dell’SDK di GHI Electronics, nel mio caso “C:\Program Files (x86)\GHI Electronics\GHI NETMF v4.1 SDK\USBizi\Firmware”, facendo attenzione a selezionare la modalità 1K:

Teraterm XMODEM 1K

13. Confermiamo la scelta e il trasferimento ha inizio. Se tutto è andato a buon fine, vedremo la seguente schermata:

image

Ora, per verificare che effettivamente la versione del firmware è quella desiderata, utilizziamo nuovamente MFDeploy con il menu “Target | Device Capabilities”:

image

e finalmente abbiamo il firmware della nostra scheda FEZMini allineato con la versione dell’SDK che abbiamo installato in Visual Studio.

La procedura è molto più lunga da descrivere che da mettere in pratica. Conviene abituarsi a farla quasi ad “occhi chiusi” perché il rilascio di nuove versioni dell’SDK (e quindi del firmware) è molto frequente (circa ogni 4 settimane!).

Nel prossimo post proveremo a creare una piccola applicazione di prova e a farne il deploy sulla scheda.

.NET Micro Framework (part 2)

In questo secondo post ci occupiamo dell’installazione del software. Per una introduzione al .NET Micro Framework vedi il post precedente.

Installazione del software

Io ho già Visual Studio installato, quindi ho scaricato gli SDK della Microsoft e della GHI Electronics e ho proceduto ad installare entrambi nello stesso ordine (quello della Microsoft dev’essere installato necessariamente prima di quello della GHI).

Alla fine dell’installazione, che si è svolta per entrambi gli SDK senza particolari problemi, riavviando Visual Studio troviamo installati i template aggiuntivi:

image

Proviamo a realizzare la classica applicazione “Hello World” utilizzando l’emulatore.

Dopo aver creato il progetto FEZminiLab.HelloWord nella soluzione FEZminiLab, apriamo il file “program.cs”, sostituendo il contenuto creato dal template con il seguente:

using System;
using Microsoft.SPOT;

namespace FEZMiniLab.HelloWorld
{
    public class Program
    {
        public static void Main()
        {
            Debug.Print("Hello World");
        }
    }
}

Ora impostiamo il deploy, aprendo le proprietà del progetto:

image

A questo punto, però, se non togliamo anche il riferimento alla libreria FEZMini

image

avviando il progetto con F5 riceveremo il seguente errore:

image

in quanto la libreria FEZMini, pur avendo noi richiesto l’uso dell’emulatore, va a verificare l’effettiva presenza della scheda hardware tramite la connessione USB.

Uno dei vantaggi di .NET Micro Framework è quello di poter utilizzare il debugger ed eseguire le istruzioni del nostro programma passo passo. Inseriamo quindi un breakpoint all’inizio del metodo Main ed eseguiamo l’applicazione con F5. Viene avviato l’emulatore e il controllo torna a Visual Studio per l’interruzione dell’esecuozione dovuta al breakpoint. eseguiamo ora uno “step over” con F11. Possiamo notare come nella finesta di Output di Visual Studio è apparso “Hello Word”.

image

Nel prossimo post vedremo come connettere la scheda FEZmini e aggiornare il firmware all’ultima versione disponibile.

.NET Micro Framework (part 1)

Questo è il primo post di una serie che ho intenzione di scrivere sulla mia attuale esperienza con .NET Micro Framework.

Introduzione al .NET Micro Framework

E’ una versione open source del .NET Framework, ridotta e ottimizzata per girare su piccoli microprocessori con poche risorse (256 KBytes per la memoria flash e 64 KBytes per la RAM), con tutti i vantaggi che l’uso tale framework comporta, a partire da l’uso di Visual Studio come ambiente di sviluppo, con tanto di debugger e emulatore virtuale, il linguaggio C#, la disponibilità di un sottoinsieme della Base Class Library (70 classi e 420 metodi), l’uso di un GUI framework basato su WPF (senza XAML), l’indipendenza da uno specifico hardware (a parità di risorse), la possibilità di scrivere device drivers direttamente in C#, per finire con il CLR che offre protezione delle risorse, gestione della memoria, eccezioni in luogo degli errori, ed isolamento del codice in application domain.

Per maggiori informazioni:

L’hardware

Tra i diversi produttori e schede disponibili, ho scelto una piccola scheda entry-level, la FEZmini, commercializzata dalla GHI Electronics:

image

L’ho scelta per la completezza del supporto, la presenza di librerie aggiuntive molto comode (tra le quali la possibilità di usare come memoria aggiuntiva un lettore di schede Micro SD e un driver per database SQLite) e e la disponibilità di ingresso e uscita audio.

Le informazioni che seguono e gli esempi presenti nei prossimi post sono tutti riferiti a questa scheda, ma per quanto detto sono facilmente utilizzabili per altre schede.

Il software

Per iniziare a sviluppare, occore una versione di Visual Studio (si può usare la propria versione o scaricare la Visual C# Express Edition 2010, che è gratuita), alla quale occorre aggiungere:

Inoltre dal sito della GHI Electronics, è necessario scaricare:

L’SDK della GHI Electronics contiene gli assembly delle librerie aggiuntive fornite a supporto delle specifiche funzionalità hardware delle loro schede e la relativa documentazione, il firmware con cui aggiornare la scheda e il programma di installazione che aggiunge a Visual Studio, tra le altre cose, i template per le applicazioni .NET Micro Framework che utilizzano le loro schede.

TeraTerm è un semplice programma di comunicazione capace di gestire il protocollo XModem, necessario per aggiornare il firmware della scheda FEZmini. Il collegamento seriale tra il PC e la scheda è comunque realizzato in emulazione, via porta USB.

L’auto installer è opzionale, ma utile per installare il driver usb adatto in relazione alla scheda hardware dal collegare.

Nel prossimo post ci occuperemo dell’installazione del software.

«marzo»
domlunmarmergiovensab
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789