Présentation Carte TQ6410 (compatible FriendlyARM Mini 6410)

J’ai récemment fait l’acquisition d’une carte TQ6410 (SoC Samsung s3c6410 ARM11, Flash NOR: 1Mo, Flash NAND: 256Mo, RAM: 128Mo) avec un écran tactile de 7 pouces dans le but de développer une application industrielle avec des élèves de seconde année BTS IRIS. Cette carte ressemble à une autre carte bien connu : la FriendlyARM 6410. Cette carte provient d’un vendeur sur e-bay (esky-sh) au prix de 175 € (frais de port compris, frais de douanes en sus). Dans l’article qui suit je détaille la prise en main de cette carte : déballage, quelques tests mais surtout l’installation d’une emDebian pour faciliter la gestion des paquets et en faire une base générique de développement. Le but final est d’implanter une application fonctionnant avec le kit graphique Qt de Nokia

Déballage

En déballant le paquet de la TQ6410 vous trouvez:

  • La carte électronique TQ6410
  • Un écran LCD TFT de 7 pouces de marque Innolux AT070TN92 avec dalle tactile résistive et cadre de fixation
  • un câble série droit équipé avec des connecteurs DB9
  • un câble ethernet droit
  • un câble USB
  • un DVD-R gravé avec les ressources logiciels (cross-compilateur, source du noyau linux, « rootfs » linux, android,WinCE, exemples de codes,etc…)
  • une alimentation à découpage 12V-1A (livrée avec une fiche américaine !). Cette alimentation est insuffisante pour assurer un fonctionnement correct de la carte et de l’écran 7 pouces. Il faudra donc faire l’acquisition d’un autre bloc d’alimentation.

Si vous voulez des « visuels » de cette carte, faites une recherche avec un moteur de recherche !

Découverte de la carte

Pour faire quelques tests sur la carte, je câble l’ensemble:

  • Connexion de l’écran sur la carte (attention les connecteurs sont TRÈS fragiles)
  • Connexion de l’alimentation après changement de la fiche d’origine pour une fiche française
  • Connexion du câble série sur la carte et sur un PC fonctionnant sous GNU/Linux
  • Connexion du câble USB sur la carte en vu d’une connexion ultérieure sur un PC fonctionnant sous Microsoft Windows7

Avant d’alimenter le tout en basculant l’interrupteur M/A sur le coté de la carte, je lis quelques documentations du DVD. Vous y apprendrez que :

  • le chargeur de démarrage est U-Boot aussi bien dans la FLASH NAND que NOR (normalement il est donc impossible de bloquer la carte en écrasant le chargeur de démarrage : on démarre toujours depuis la NAND, si problème on démarre depuis la NOR et on réinstalle U-Boot sur la NAND).
  • le noyau linux est un 2.6.28 patché pour supporter le S3C6410 de Samsung
  • le système pré-installé dans la NAND est un GNU/Linux avec un environnement QTExtended (Qtopia)

Pour avoir quelques informations supplémentaires, nous allons observer la voie série. L’environnement de développement sera une machine sous GNU/Linux Debian 6 (Squeeze). Pour interagir avec la voie série, nous allons utiliser Minicom. Il faut donc l’installer :

puis le configurer :

La rubrique qui nous intéresse est « Configuration du port série ». Dans cette rubrique il faut régler le port série sur « /dev/ttyS0 » si vous utilisez le premier port série (COM1: sous Microsoft Windows) (remarque: si vous utilisez un adaptateur USB-Série son nom sera vraisemblablement ttyUSB0), le « Débit/Parité/Bits » sur 115200 8N1, le « Contrôle de flux matériel et logiciel » sur « Non ». Sauvegardez vos réglages en revenant au menu principal et en choisissant l’option « Enregistrer config. sous dfl ». Sortez de minicom puis relancez-le en ignorant l’initialisation du modem avec:

Minicom attend alors du trafic sur la voie série…

Amorçage par défaut : Noyau Linux et environnement QTopia

Allumez alors la carte, vous devriez voir des messages du chargeur U-Boot. Appuyez sur la touche ‘entrée’ pour interrompre le chargement ! Vous devriez avoir les messages suivants:

La carte dispose donc de U-Boot en version 1.1.6. On retrouve bien les quantités de mémoire prévues (pas de NOR car on démarre pour l’instant depuis la NAND). On arrête le chargement et on se retrouve avec le menu de U-Boot préparé par le revendeur esky-sh. Nous utiliserons centaines de ces options pour changer le noyau à charger ou encore le système de fichier racine. Pour continuer le chargement, appuyez sur la lettre ‘b’. Le noyau linux préparé par FriendlyARM démarre puis le système de fichier racine est chargé…On peut alors tester l’environnement QTopia préparé par FriendlyARM après avoir calibré l’écran tactile…Je ne détaille pas plus pour l’instant, ci-dessous deux photographies de l’écran sous QTopia :

accueil-qtopia onglet-friendlyarml-qtopia

Remarque: si l’interface est en chinois, il faut aller sur le deuxième onglet et cliquez sur le drapeau pour passer la langue en anglais (voir la capture d’écran de droite ci-dessus).

Amorçage sur un système Android

La carte est vendu comme étant compatible avec un système Android 2.1. Il faut donc charger le noyau et le « rootfs » android précompilé fourni sur le DVD. Il faut démarrer sur la NAND flash, interrompre U-Boot puis dans le menu proposé, choisir l’option « Download Linux/Android kernel » (lettre ‘k’) pour le noyau ou « Download root yaffs2 image » (lettre ‘y’) pour le système de fichier racine. U-Boot attend alors la connexion du cable USB. Le transfert du noyau ou du système de fichier racine s’effectue avec l’utilitaire DNW.exe disponible dans le répertoire ‘Tools’ du DVD. Ce logiciel fonctionne sous Windows et nécessite l’installation d’un pilote lors de la première insertion du câble (disponible lui aussi sur le DVD dans ‘Tools’). Si la carte est reconnu par le logiciel DNW, vous verrez dans la barre de titre [USB:OK]. Vous pouvez alors transférer votre noyau ou votre système de fichiers racine avec le menu ‘USB Port’ puis ‘Transmit/Restore’. Sous Linux, il existe un logiciel du nom de USBPUSH qui a les mêmes fonctionnalités mais je ne l’ai pas utilisé.

Dans notre cas le noyau Linux s’appelle zImage_a70_New et le système de fichier racine rootfs_android.img. La trace de ces opérations est présenté ci-dessous :

Remarques:

  • On voit que le chargement des noyaux ou des images ‘rootfs’ ce fait en mémoire vive à l’adresse 0xC0000000 donc la taille du noyau ou du rootfs ne pourra excéder 128Mo même si l’on dispose de plus en mémoire NAND. Il faudra donc passer par une étape intermédiaire pour flasher un rootfs plus gros que 128Mo dans la NAND (indice: passer par une mémoire SD).
  • On note aussi l’adresse dans la NAND à laquelle est stocké le noyau: adresse de début: 0x80000 et adresse de fin:0xA0000 soit un espace de XX octets. Pour le rootfs on a: adresse de début: 0x580000 et adresse de fin: 0xFFE0000 soit un espace de XX octets.
  • On retrouvera ces valeurs lors du boot du noyau linux lors de la découverte des « partitions » de la NAND

On lance alors le système avec l’option « Boot linux » (lettre ‘b’). Si ça ne démarre pas, fixez les paramètres à passer au noyau avec « Set the boot parameter of Linux » (lettre ‘s’) comme suit:

On obtient les messages suivants:

Remarques:

  • Le noyau utilisé ici est un 2.6.28 compilé pour un SoC SMDK6410
  • L’écran tactile n’étant pas calibré vous passez par cette étape (lignes Top Left, Top Right, etc…)
  • La mémoire vive utilisé avant lancement de l’interface graphique d’android est de 38Mo, lorsque l’environnement est complètement chargé on est à 104Mo sur 106Mo utilisé ! D’où trés certainement les problèmes de lenteur…

Après 1 minute vous avez l’écran d’accueil d’Android puis on vérifie la version du noyau :

accueil-android android-version

Android fonctionne donc sur cette plateforme cependant la dalle tactile n’est pas très réactive et globalement le fonctionnement est très lent. Selon moi, il n’est donc pas utilisable dans l’état, le peu de mémoire vive est très certainement la cause de cette lenteur (voir remarques ci-dessus). Cela peut donc servir ponctuellement de plateforme de développement android mais sans plus. Cependant un accès shell ‘root’ est disponible par le biais de la voie série.

Les tests préliminaires s’arrêtent ici…Je ne teste pas Windows CE sur cette plateforme car nous n’avons pas de projet dans l’immédiat avec celui-ci. Je passe donc maintenant à la partie la plus intéressante pour nous : la personnalisation de cette plateforme pour nos besoins spécifiques.

2 réflexions au sujet de « Présentation Carte TQ6410 (compatible FriendlyARM Mini 6410) »

  1. ahamedBacar

    Salut
    T’as déjà réalisé des projets avec cette carte ? Je n’arrive pas à faire marcher ma carte mini 2440

  2. Olivier Auteur de l’article

    Bonjour,

    Le mieux est d’acheter le numéro 1 de OpenSilicium, il y a un grand article sur la mise en fonction d’une carte Mini2440 ! Sinon sur le web, il y a pas mal de ressources.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *