Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 32

Programmation de µC ARM7 (LPC21XX)



  1. #1
    bathof

    Programmation de µC ARM7 (LPC21XX)


    ------

    Bonjour,

    Ayant marre des µC PIC 8 bits, j’ai décidé de me mettre à quelque chose de plus performent, et j’ai passé sur une nouvelle architecture, les ARM7 :32bits, 72MIPS, 32K de ram, bref tout ce que l’on peut rêver pour des applications embarqué de grande ampleur… Seulement j’ai quelques soucies au niveau de l’environnement de développement [Compilation].

    Ce que je recherche :
    1. Programmer en C++
    2. Utiliser certaines librairie C++ standard [string, memory, ...]
    3. Eviter les makefiles manuel
    4. Débugger le hardware via JTAG

    Ce que j’ai trouvé :
    1. WinARM
    2. Eclipse
    3. GNUARM
    4. Zylin CDT

    J’ai besoin de votre aide pour configurer soit Code::Blocks, soit Eclipse, car pour le moment je nage totalement, même si j’arrive à compiler des sources, C ou C++, je n’arrive toujours pas à éviter les makefiles manuel, et à linker les librairies C/C++ externes. Merci de votre aide.


    -----

  2. Publicité
  3. #2
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)


  4. #3
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Salut,

    Merci pour ta réponse.

    Mais comment puis-je programmer en C++?

    et

    Comment générer un fichier hex avec eclipse, car pour le moment je
    le fait via dos.

    Encore merci.

  5. #4
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Enfait, j'ai réussi a compiler pour un projet C++ (Configuration d'eclipse) ce que je n'arrive pas à faire, c'est linker les librairies, tel que, string ou autre, et comment utiliser l'opérateur new.

  6. #5
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Citation Envoyé par bathof Voir le message
    Salut,

    Merci pour ta réponse.

    Mais comment puis-je programmer en C++?
    Encore merci.
    ???
    GCC supporte le C++.Quelle est la distrib que tu utilises

    Citation Envoyé par bathof Voir le message
    Salut,
    Comment générer un fichier hex avec eclipse, car pour le moment je
    le fait via dos.

    Encore merci.
    GCC génère des .elf ou .bin. qui sont acceptés par OpenOcd (commande flash_image) . Quel est l'intérêt d'utiliser des .hex ??
    Si tu suis la procédure que j'ai décrite, tu auras des .elf . Si tu veux cahnger les formats des exécutables, c'est arm-elf-objcopy

    Les dernières version d'Eclipse génèrent des projets "managed make" qui évitent d'avoir à écrire les makefile. Les scripts linker (*.ld) doivent être spécifiés.

    thierry

    PS:72 Mhz, c'est un cortex M3?, ST ou luminary ?

  7. A voir en vidéo sur Futura
  8. #6
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    1) Pour le C++ j'utilise arm-elf-g++.
    2) L'intêret des fichiers hex est pour mon bootloader, via RS232 ou USB. Pour le moment RS232 grâce au bl interne du LPC21xx.
    3) J'utilise déjà arm-elf-objcopy pour crée mes hex, seulement avec un fichier batch, comment le fait-on directement avec eclipse durant la compilation?
    4) Je ne connais pas les scripts linker, je regarderais ca en détail ce soir, mais je suis prenneur de plus de détails.
    5) Pour le 72Mhz, LPC23XX / LPC24XX de NXP.
    6) Et pour l'opérateur new/delete? grâce aux scripts linker?

    PS : Quelle différence entre arm-elf-gcc et arm-elf-g++?

    Merci.

  9. Publicité
  10. #7
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Bonjour,

    Tu peux automatiser la création d'un hex
    - Par exemple
    Project -> Propriétés -> C/C++build -> settings -> build steps : là, tu peux rajouter une commande "post build steps".

    Une autre manière de faire est un "external tools" qui exécute ton .bat

    Il faut également faire attention de bien indiquer les librairies dans le menu :
    Project -> Propriétés -> C/C++build -> settings -> Tool settings -> Cygwin C linker . et les 'include path" de "directories" de "Cigwin C compiler"

    thierry

  11. #8
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Salut,

    J'ai réussi à automatiser la création du fichier hex.
    Mais je n'ai pas encore réussi à linker des librairies.

    Est-ce correcte d'ajouter dans : "Cygwin C++ linker", "Libraries", "libstdc++.a" ?
    En faisant çela, le compilateur me dit : cannot find -llibstdc++.a.

    lol, j'ai un peu du mal avec eclipse.

  12. #9
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Re,

    Je pense qu'il suffit de mettre stdc++ (pas besoin du lib .a), regarde dans mon pdf ColdFire.
    Il faut aussi mettre le chemin adéquat et les inclure les fichiers d'entête (.h) adéquats.

    thierry

    Ps: tu aurais intérêt à travailler avec une sonde Jtag (un wiggler coute mois de 5 eur) et OpenOcd plutôt qu'un bootloader.
    Ps2: Ne t'en fais pas pour Eclipse, j'ai ramé plusieurs longues semaines...

  13. #10
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Salut,

    J'ai trouvé pourquoi je n'arrivais pas à linker les lib, c'est bien parceque je n'ai pas besoin du lib et du *.a.

    Ouais je vais passer au JTAG, mais je ne l'ai pas encore reçus.
    Le bl me sera alors seulement utile pour les mise à jour du soft, une fois l'application terminé, via Ethernet ou USB par exemple.

    Par contre je n'ai pas encore réussi à utiliser de simple librairie C tel que math, il faut que je trouve toutes les bonnes librairies.

    Quelle est la différence entre gcc et g++?

  14. #11
    Jack

    Re : Programmation de µC ARM7 (LPC21XX)

    gcc permet de développer en C et g++ en C++

    A+

  15. #12
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Salut Jack,

    D'après les noms c'est logique xD, mais pourquoi, si je configure mon compilateur C++ avec gcc, il compile quand meme des programmes C++?

    Fait-il le lien automatiquement avec g++?

  16. Publicité
  17. #13
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    J'ai reçus mon JTAG hier, seulement, pour changer, rien fonctionne xD.

    Bon j'arrive quand même à programmer mon LPC depuis le JTAG, mais le débugger est buggé. J'ai toujours des messages d'erreurs différents. Mais là, il me dit : Error stopping at main. Reason: Target request fails: Parsin Error.

    Nice..., re help.

  18. #14
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Citation Envoyé par bathof Voir le message
    ... mais le débugger est buggé.
    Nice..., re help.
    héhéhéhéhé, celle là je ne l'avais pas encore entendue .... Tu utilises quoi comme debugger hardware et software ?? (Quelle sonde Jtag, OpenOcd ?)
    Le "code parser" (qui provoque le parsing error) est l'analyseur syntaxique ..
    Toujours dans le menu des propriétés ci-dessus, dans l'onglet "binary parsers" sélectionne uniquement " Cygwin PE parser" et "Elf parser" et déselectionne les autres.

    Tu as bien installé Zylin CDT ? Tu suis bien mon pdf ?

    thierry

    PS: oui, ce n'est pas évident...

  19. #15
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Salut, alors voila, j'ai:
    - Une cible Olimex LPC2103.
    - Un JTAG Olimex ARM-USB-TINY.
    - Toutes les versions d'eclipse, enfin, presque lol, j'y pige plus rien à leur truc de version moi. 3.2, 3.3, Europa, Ganymede,

    OpenOCD, ouais j'ai, enfin je crois que c'est ca, re lol. J'ai : openocd-2007re204.

    Zylin CDT c'est installé, mais il marche seulement avec eclipse 3.2, sur les autres il fait des trucs simpa comme par exemple pour Ganymede : Quand je mets débugger il me fait, le tout dans une zolie WndMsgBox :

    'Launching ledblink2 Debug' has encountred a problem. (trops beau)
    Plug-in "com.zylin.embeddedcdt" was unable to instantiate class "com.zylin.embeddedct.launch.n atives.NativeLaunch" (trops trops beau)
    Et si je clique sur details : J’ai un nouveau Cryptogramme :
    Plug-in "com.zylin.embeddedcdt" was unable to instantiate class "com.zylin.embeddedcdt.launch. nativeos.NativeLaunch". org/eclipse/cdt/core/IProjectInfo

    lol, j'ai vue un type dire, éclipse ne plante jamais, ouais, il marche pas, tout court. , lol, dsl je commence à avoir la haine d'eclipse.

    Sinon j'ai désactivé les trucs que tu m'as dits, mais ca ne change rien. A part ça, quand je vais dans le débugger, ma fenêtre "Disassembly" est vide, normal?.

    Petit résumé de la situation : on peut pas faire ça avec Code:.Blocks?

    Sinon, encore merci pour l'intérêt que tu ports à mon problème.

    Moi.

  20. #16
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Re,
    Cette fois, après quelques magouille, j'ai réussi à changer de message d'erreur. Pourquoi, quand je lance le débuggage il me dit :

    Execution is suspended because of error.
    Dans détails : Don't know how to run. Try "help target".

    mdr.

  21. #17
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Bonsoir,

    As-tu bien configuré gdb comme dans mon pdf (pages 20 à 23 ?)

    thierry

  22. #18
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Normalement ouais, j'ai encore regardé. Je vais te détailler ce qui se passe:
    - Je compile le programme.
    - Je sélection "FlashProgrammer", et tout fonctionne impec.
    - Je supprime dans debug la programmation flash.
    - Je sélectionne OpenOCD, et eclipse me dit :
    Info: openocd.c:93 main(): Open On-Chip Debugger (2007-09-05 09:00 CEST)
    Warning: arm7_9_common.c:734 arm7_9_assert_reset(): srst resets test logic, too
    Warning: arm7_9_common.c:933 arm7_9_halt(): target was already halted

    à priori tout ok.

    - Je presse sur le bug. lol. Et eclipse m'affiche dans la console : (gdb).

    - Plus de message d'erreur, mais. Je n'ai rien sous dissasembly, ben att, je vais te donner deux trois printscr. Att, voila, j'en fais un, encore un, un de plus, et le dernier. Voila ils sont attachés.
    Images attachées Images attachées

  23. Publicité
  24. #19
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Salut,

    je vois quelques soucis :
    Ecran n° 1, tu fais le link avec LPC2103_RAM.ld, ce qui veut dire que tu fais un exécutable en ram. Il ne faut donc pas programmer la flash., puisque le programme sera chargé en ram avec la commande "load" de gdb.
    D'autre part, as-tu bien configuré gdb ? (fichier gdbinit_ram) bien présent ??

    Peux tu mettre tes écrans de configuration du debug (pages 22 et 23 ?)

    Encore autre chose, si tu crois que c'est Eclipse, tu peux tout faire en ligne de commande dans une fenêtre dos.

    thierry

  25. #20
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Dans ton dernier écran, qu'est ce que cela fait si tu tapes "load ledblink.elf" (avec le bon chemin) dans la console (gdb) ?

    th

  26. #21
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Ouis pour le LPC2103_RAM, j'avais tester juste avant du débuggage en RAM, pour savoir si c'étais pas un problème à ce niveau, j'avais oublier de changer, merci. Mais que ce soit LPC2103_RAM ou LPC2103_ROM ca change rien.

    Sionon j'ai essayé ca me dit :
    (gdb) C:/ARM/temp/a.elf
    The program is not being run.


    Encore autre chose, si tu crois que c'est Eclipse, tu peux tout faire en ligne de commande dans une fenêtre dos.
    PS : Oui, Oui, c'est sûr c'est Eclipse, sous dos tu dit?
    PS2 : Je sais bien qu'il n'y à pas qu'eclipse dans le coups. lol. d'ailleur je soupsonne les Chipmunks.
    PS3 : Bon aller trêve de plaisanterie.
    PS4 : Je trouve qu'eclipse est un bon outil, tkt, sinon j'essaierais pas durant 1000ans de faire fonctionner mon débugger dessus.

  27. #22
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Citation Envoyé par bathof Voir le message
    Ouis pour le LPC2103_RAM, j'avais tester juste avant du débuggage en RAM, pour savoir si c'étais pas un problème à ce niveau, j'avais oublier de changer, merci. Mais que ce soit LPC2103_RAM ou LPC2103_ROM ca change rien.

    Sionon j'ai essayé ca me dit :
    (gdb) C:/ARM/temp/a.elf
    The program is not being run.

    A si, ram ou rom, ça change Tu ne sauras pas charger en flash ni exécuter un programme linké avec ram et inversément. Les ARM7 sont des CPU "von neuman" contrairement aux pics qui sont des "harvard". Von Neuman veut dire que le programme peut être exécuté depuis la ram.

    pas (gdb) C:/ARM/temp/a.elf mais (gdb) load C:/ARM/temp/a.elf

    C'est gcc et gdb que tu peux parfaitement utiliser sous dos (pas eclipse).
    Il y a des exemples sur www.jelectronique.com

    thierry

  28. #23
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Re,
    Enfait quand je disais que ça changais rien, c'étais pour les erreurs (avec ROM, ou RAM) cela revient au même, désolé pour le manque de précision. Il me dit toujours la même erreur.

  29. #24
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Ha zut j'avais oublier load, là il me dit :

    (gdb) load C:/arm/temp/a.elf
    You can't do that when your target is `exec'

    (J'ai fais des resets, mais ca change rien)

  30. Publicité
  31. #25
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Re,

    J'ai réussi à faire foncionner le debuger, j'arrive donc à debugger.
    Seulement j'ai encore un petit problème. Quand je débug en ROM, si je rajoute plus d'un breakpoint, je reçois un message d'erreur, qui est :

    Execution is suspended because of error.
    Warning:
    Cannot insert breakpoint 7.
    Error accessing memory address 0x2a0: (undocumented errno -1).

    Est-ce normal?

  32. #26
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Bonsoir

    Tu as bien utilisé le bon fichier d'initialisation GDB : gdbint_rom?
    Il y a dans ce fichier une commande sans laquelle impossible de mettre des breakpoints en rom: c'est monitor arm7_9 force_hw_bkpts enable qui force les breakpoints hardware.

    Deuxième raison probable : le nombre de breakpoints (hardware) est limité, je crois que c'est 2 ou 3, et si tu en as déjà un à l'entrée de ton main... Tu as un onglet dans eclipse pour voir les breakpoints (au dessus de dissassembly).

    thierry

  33. #27
    bathof

    Re : Programmation de µC ARM7 (LPC21XX)

    Merci,
    c'est bien parceque les breakpoints en mode hardware sont limité à 2.

  34. #28
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Eh bien, je suis ravi que tout fonctionne.

    Il y a moyen de créer des projets "template", qui évitent de tout reconfigurer à chaque fois : tu vas dans le workspace, et tu copies ou fait un zip de ton projet.

    La prohaine fois que tu voudras créer un nouveau projet, tu feras un "import" -> "Existing project into workspace" .. et tout sera déjà configuré.

    Autre chose, si tu en as l'occasion, tu es invité à compléter le wiki que j'avais fait, ce serait sympa :
    http://wiki.jelectronique.com/projet...eloppement_arm

    thierry

  35. #29
    BastienBastien
    Invité

    Re : Programmation de µC ARM7 (LPC21XX)

    Bonjour,

    Et s'il y avait moyen de pomper le .zip, ce serait génial.

    Merci. +

  36. #30
    invite76a

    Re : Programmation de µC ARM7 (LPC21XX)

    Salut, Bastien

    Il y a le même là (en pdf avec les zip):
    http://forums.futura-sciences.com/thread202261.html

    thierry

Sur le même thème :

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. TS programmation
    Par vigor12 dans le forum Mathématiques du collège et du lycée
    Réponses: 16
    Dernier message: 03/11/2007, 15h30
  2. programmation
    Par CYB dans le forum Électronique
    Réponses: 5
    Dernier message: 06/04/2007, 18h22
  3. programmation
    Par CYB dans le forum Électronique
    Réponses: 13
    Dernier message: 04/04/2007, 19h29
  4. programmation c
    Par simetoile dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 02/10/2006, 17h29
  5. Programmation
    Par brunocooper dans le forum Électronique
    Réponses: 1
    Dernier message: 17/07/2006, 18h12
Découvrez nos comparatifs produits sur l'informatique et les technologies.