Conseil pour avoir mon application dans la NAND

27 views
Skip to first unread message

Antonio LUNA-ARRIAGA

unread,
Aug 27, 2012, 5:10:05 PM8/27/12
to concours-li...@googlegroups.com

Bonjour,

Je voudrais savoir quelle est la manière la plus simple pour avoir mon application d’oscilloscope dans la NAND. (compte tenu que je dois apprendre a faire la manip)

 

a) Ajouter comme paquet dans buildroot et recompiler le filesystem.

b) Prendre le rootfs.tar de base, rajouter mes binaires et puis générer le rootfs.jffs2 avec mkfs.jffs2

c) L’astuce u-boot –sd fat:<file>

d) autre?

 

J’ai développé sous QT, j’ai libconfig.a comme librairie et les plugins compilés pour ARM.

Pour l’instant tout marche bien en NFS, mais je ne sais pas comment produire la version pour soumission au jury.

Pour générer la NAND j’ai déjà validé l’outil flashimag de Yargil.

Merci, 


--
Antonio LUNA-ARRIAGA

XIE Enming

unread,
Aug 27, 2012, 5:50:20 PM8/27/12
to concours-li...@googlegroups.com
Bonjour
           J‘utilise aussi Qt (4.8.2).  :=)  Vous avez tous fini ? Est-ce que vous pouvez répondre mon topid : le sum de deux siganux ? Merci.
           Tout d'abord, vous utilise BuildRoot (avec l'activation de Qt) pour créer les trois fichiers : u-boot.bin, uImage et rootfs.jffs2. Je pense que vous avez déjà fini cette étape, oui?
           Après juste compiler votre application par le Qt Creator avec le toolchain pour arm-mini2440 (Tools -> Options, ajouter buildroot-2012.05/output/host/usr/bin/qmake comme Qt Versions et buildroot-2012.05/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc comme Tool Chains), copier le binaire généré dans buildroot-2012.05/output/target/bin et refait la command make dans le répertoire buildroot-2012.05. Buildroot est assez intelligent de seulement regénérer le rootfs.jffs2. Après ça, vous copiez les trois fichiers dans le répertoire de flashimg (outil très utile de Yargil), et exécutez:

./flashimg -s 64M -t nand -f nand.bin -p uboot.part -w boot,u-boot.bin -w kernel,uImage -w root,rootfs.jffs2 -z 512

et puis:

qemu-system-arm -M mini2440 -serial stdio -mtdblock nand.bin -usbdevice mouse
(vous avez déjà la command qemu-system-arm dans votre $PATH )

#mini2440:  nboot kernel
#mini2440:  setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 mini2440=3tb
#mini2440:  saveenv
#mini2440:  bootm

le mot de passe de Buildroot est   :   root

maitenant vous êtes prêt à exécuter votre binaire :

nom_de_binaire -qws

XIE Enming

unread,
Aug 27, 2012, 6:10:01 PM8/27/12
to concours-li...@googlegroups.com
Vous devez configurer le Buildroot dans le rubrique : Filesystem images -> Flash Type (NAND flash with 512B Page and 16 kB erasesize).
Le version de Linux, j'utilise le 3.3.7, il y a déjà le code:
/* mini2440 + 3.5" TFT (LCD-W35i, LQ035Q1DG06 type) + touchscreen*/
    [3] = {
        _LCD_DECLARE(
            /* clock */
            7,
            /* xres, margin_right, margin_left, hsync */
            320, 68, 66, 4,
            /* yres, margin_top, margin_bottom, vsync */
            240, 4, 4, 9,
            /* refresh rate */
            60),
        .lcdcon5    = (S3C2410_LCDCON5_FRM565 |
                   S3C2410_LCDCON5_INVVDEN |
                   S3C2410_LCDCON5_INVVFRAME |
                   S3C2410_LCDCON5_INVVLINE |
                   S3C2410_LCDCON5_INVVCLK |
                   S3C2410_LCDCON5_HWSWP),
    },

dans le fichier buildroot-2012.05/output/build/linux-3.3.7/arch/arm/mach-s3c2440/mach-mini2440.c
Sinon, il faut patch le patch joint pour avoir l'option mini2440=3tb      (pour 320*240)


Le lundi 27 août 2012 23:10:06 UTC+2, antoineluna a écrit :
support_W35i_Qemu.patch

Antonio LUNA-ARRIAGA

unread,
Aug 27, 2012, 7:08:57 PM8/27/12
to concours-li...@googlegroups.com
Le 27 août 2012 23:50, XIE Enming <enm...@gmail.com> a écrit :
Bonjour
           J‘utilise aussi Qt (4.8.2).  :=)  Vous avez tous fini ?
En fait je suis loin d'etre fini avec les plugin, mais je fais un pre-release car j'ai plain de trucs a finir a l'ecole aussi.  
Est-ce que vous pouvez répondre mon topid : le sum de deux siganux ?
C'est fait, je n'avais pas eu le temps de voir le code. 
Merci.
           Tout d'abord, vous utilise BuildRoot (avec l'activation de Qt) pour créer les trois fichiers : u-boot.bin, uImage et rootfs.jffs2. Je pense que vous avez déjà fini cette étape, oui?
Oui, ca se passe bien, merci 
           Après juste compiler votre application par le Qt Creator avec le toolchain pour arm-mini2440 (Tools -> Options, ajouter buildroot-2012.05/output/host/usr/bin/qmake comme Qt Versions et buildroot-2012.05/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc comme Tool Chains), copier le binaire généré dans buildroot-2012.05/output/target/bin et refait la command make dans le répertoire buildroot-2012.05. Buildroot est assez intelligent de seulement regénérer le rootfs.jffs2. Après ça, vous copiez les trois fichiers dans le répertoire de flashimg (outil très utile de Yargil), et exécutez:

Merci, c'est ca que je voulais faire a la main... et en plus avec l'outil de Yargil c'est vrai que l'ecriture de la NAND se passe aussi plus agreable.

./flashimg -s 64M -t nand -f nand.bin -p uboot.part -w boot,u-boot.bin -w kernel,uImage -w root,rootfs.jffs2 -z 512

et puis:

qemu-system-arm -M mini2440 -serial stdio -mtdblock nand.bin -usbdevice mouse
(vous avez déjà la command qemu-system-arm dans votre $PATH )

#mini2440:  nboot kernel
#mini2440:  setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 mini2440=3tb
#mini2440:  saveenv
#mini2440:  bootm

le mot de passe de Buildroot est   :   root

maitenant vous êtes prêt à exécuter votre binaire :

nom_de_binaire -qws


Merci pour le détails, cordialement.
-Antonio 


Le lundi 27 août 2012 23:10:06 UTC+2, antoineluna a écrit :

Bonjour,

Je voudrais savoir quelle est la manière la plus simple pour avoir mon application d’oscilloscope dans la NAND. (compte tenu que je dois apprendre a faire la manip)

 

a) Ajouter comme paquet dans buildroot et recompiler le filesystem.

b) Prendre le rootfs.tar de base, rajouter mes binaires et puis générer le rootfs.jffs2 avec mkfs.jffs2

c) L’astuce u-boot –sd fat:<file>

d) autre?

 

J’ai développé sous QT, j’ai libconfig.a comme librairie et les plugins compilés pour ARM.

Pour l’instant tout marche bien en NFS, mais je ne sais pas comment produire la version pour soumission au jury.

Pour générer la NAND j’ai déjà validé l’outil flashimag de Yargil.

Merci, 


--
Antonio LUNA-ARRIAGA



--
Antonio LUNA-ARRIAGA

Yargil

unread,
Aug 28, 2012, 5:04:52 AM8/28/12
to concours-li...@googlegroups.com
Salut,

 Buildroot permet de modifier la target de plusieurs façons. Voir : http://buildroot.org/downloads/buildroot.html#custom_targetfs
Le plus adapté et le plus simple je pense pour compiler et installer l'application est d'utiliser le script de post-build (3eme point dans le lien). Pour cela il suffit juste d'indiquer le chemin d'un script lors du make menuconfig de buildroot. Ce choix est disponible dans le menu "Systeme configuration". Dans le fichier .config de buildroot c'est la variable BR2_ROOTFS_POST_BUILD_SCRIPT qui doit être renseignée.
Le script est exécuté après la compilation de tous les logiciels et avant la création du filesystem de la target. Il reçoit comme argument le chemin de la target.



Le lundi 27 août 2012 23:10:06 UTC+2, antoineluna a écrit :

Antonio LUNA-ARRIAGA

unread,
Aug 28, 2012, 5:33:15 AM8/28/12
to concours-li...@googlegroups.com
Salut,
Merci pour vos conseils, j'avoue que j'avais parti chercher un peut partout sauf dans la doc de buildroot.
Cordialement,
-Antonio
--
Antonio LUNA-ARRIAGA
Reply all
Reply to author
Forward
0 new messages