Emulatore Windows CE 5.0: Deploy & Debug
Ebbene si, alla fine chi la dura la vince... :-)
Dopo VS 2003, chissà per quale motivo, l'emulatore di Windows CE non è più disponibile come ambiente di emulazione di Visual Studio. Di conseguenze per sviluppare su Windows CE era necessario disporre di un dispositivo fisico collegato con il pc. Non sempre si ha la possibilità di aver un dispositivo collegato e, soprattutto per le persone come me sempre in movimento tra un cliente e l'altro, a volte e impossibile. Così, mosso da esigenza diciamo "logistica", ho iniziato a fare alcune prove. Il punto di arrivo delle mie prove è la possibilità di "riottenere" un ambiente di emulazione Windows CE in cui posso fare il deploy e soprattutto andare in debug. L'altra strada, oltre a quella esposta, e di aver installato Microsoft Platform Builder, avere i file BSP del device o utilizzare i seguenti file BSP (non supportati da Microsoft) e con questi creare una SDK per l'ambiente di emulazione di VS 2005/2008. Penso che la soluzione che di seguito espongo sia la più "lite".
Come prima cosa ho installato l'emulatore Windows CE 5.0 e poi mi sono letto ovviamente la documentazione. Nel file di help dell'emulatore vi è una pagina che descrive in modo esauriente le varie opzioni disponibili nella command line di esecuzione dello stesso. Se si legge "attentamente" la documentazione si scopre che vi è la possibilità di emulare una scheda di rete all'interno dell'emulatore, in dettaglio:
/ethernet <mode>
Specifies the level of networking support in the Emulator.
Specify one of the following values:
- none
The Emulator does not support networking.
- shared
Outgoing NAT is enabled. The Emulator supports outgoing network connections only. Over an Ethernet connection, the Emulator cannot receive information that it did not request. In this mode, servers such as the FTP server and the Web server (HTTPD) do not work correctly. There may also be problems with connecting over a virtual private network (VPN) or connecting with Point-to-Point Tunneling Protocol (PPTP).
- virtualswitch
The Emulator uses the first Ethernet adapter that it finds on the development workstation. The Emulator supports incoming network connections.
- <MAC address of Ethernet adapter>
The Emulator uses the Ethernet adapter on the development workstation that has the specified MAC address. Specify the MAC address in XXXXXXXXXXXX format or in XX-XX-XX-XX-XX-XX format.
Come si evince dalla documentazione sopra riportata, specificando il mac-address della scheda di rete del pc, l'emulatore stesso è in grado di utilizzarla. Il gioco è fatto!!! In altre parole utilizzando una riga di comando del tipo:
"C:\Programmi\Windows CE 5.0 Emulator\Emulator_500.exe" /CEImage Nk.cem /Video 640x480x16 /Ethernet 00-0E-35-E5-FF-21 /sharedfolder C:\Shared\DeviceEmulator
si attiva un emulatore 640x480 16 colori che utilizza la scheda con il mac-address specificato e si imposta uno share folder che verrà visto come una "Storage Card". Ho utilizzato il mac-address come opzione avento più schede di rete installate sul pc su cui lavoro. Ricordo, per chi lavora spesso come me con il portatile in giro per l'italia, l'esistenza del componente Microsoft Loopback che permette di avere una rete "finta" con un IP valido, comoda nelle situazioni in cui non si ha una connessione "fisica" di rete.
Ho lanciato quindi l'emulatore, ho definito un IP fisico nella scheda di rete dell'emulatore (192.168.0.50), ho aperto una shell dos e ho provato a fare un ping verso tale indirizzo, ping riuscito :-)
Ovviamente IP specificato è un indirizzo valido nella range dell'indirizzo della scheda di rete di cui si è specificato il mac-address nella riga di comando.
Ho quindi copiato i componenti per il debug remoto nel foder specificato come shared area nella riga di comando. Tali componenti sono disponibili nel percorso C:\Programmi\File comuni\Microsoft Shared\CoreCon\1.0\Target\wce400\x86
Dopo la copia sono ritornato nell'emulatore e ho copiato i files nel folder \Windows dell'emulatore. Una volta copiato i files ho eseguito il programma \Windows\CMAccept.exe . Ho eseguito VS 2005 e/o 2008, sono andato in Tools/Options/Device Tools/Devices ho selezionato Windows CE in Show Device for platform, selezionato Windows CE Device come Devices e ho premuto il pulsante Save as... e ho specificato il nome Windows CE Device Emulator.
Confermando il nome specificato sono ritornato alla dialog precedente e quindi ho premuto il tasto Properties... A questo punto compare la dialog delle proprietà del device selezionato, in Transport selezionare TCP Connected Transport e poi ho premuto il pulsante Configure... compare la dialog delle proprietà TCP/IP del trasporto, selezionare il radio button Use specific IP address e specificare l'indirizzo assegnato alla scheda dell'emulatore (192.168.0.50).
Ho confermato l'indirizzo e ho chiuso tutte le dialog delle options precedentemente aperte. Ho attivato la toolbar Devices e ho attivato la procedura di Connect to device
Dalla dialog ho selezionato il dispositivo Windows CE Device Emulator precedentemente creato
Poi ho premuto il pulsante Connect ed il gioco è fatto !!!

Ho quandi creato un'applicazione di prova, ho specificato Windows CE Device Emulator come Target Device e sono riuscito ad eseguire il deploy e il debug della stessa. :-))
Per abilitare Attach to process sull'emulatore appena configurato si può fare riferimento ad un mio precedente articolo
Buon debug a tutti :-))
Technorati Tag:
Sviluppo,
Tips
indietro