La liaison série COM1 ne fonctionne pas dans le BSP Windows CE 6.0 de la mini6410, c’est écrit dans la documentation en chinois.
J’avoue ne pas avoir trop cherché pourquoi, j’imagine que le port en question est utilisé en debug par le noyau quelque part dans le BSP.
Un moyen pour contourner ce problème est d’échanger le port série physique du processeur alloué au port logique COM1. Tout se passe dans la base de registre (fichier \WINCE600\PLATFORM\SMDK6410\FILES\platform.reg), il suffit de remplacer :
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial0]
"DeviceArrayIndex"=dword :0
"Index"=dword :1
"Port"="COM1 :"
par :
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial0]
"DeviceArrayIndex"=dword :1
"Index"=dword :2
"Port"="COM2 :"
et
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial1]
"DeviceArrayIndex"=dword :1
"Index"=dword :2
"Port"="COM2 :"
par :
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial1]
"DeviceArrayIndex"=dword :0
"Index"=dword :1
"Port"="COM1 :"
Après recompilation du noyau, il est possible d’accéder au port série en question via le nom "COM2 :". Exemple en C++ :
CreateFile(TEXT("COM2 :"), GENERIC_READ | GENERIC_WRITE, 0 , NULL, OPEN_EXISTING, 0, NULL) ;
Attention, le câble série à utiliser est un câble croisé et non un câble droit comme sur la mini2440. Un bon moyen pour vérifier que le câble est correct est de s’assurer de la bonne réception des informations envoyées sur la liaison série lors du démarrage de la carte avec une SD Card contenant le bootloader Superboot (voir article suivant).