Difference between revisions of "Stellaris Luminary Lm3s6965"

From air
Jump to navigation Jump to search
Line 14: Line 14:
   
   
==Ressources==
+
=Ressources=
 
* Site officiel du [http://www.luminarymicro.com/products/lm3s6965_ethernet_evaluation_kit.html kit Stellaris Luminary Lm3s6965]
 
* Site officiel du [http://www.luminarymicro.com/products/lm3s6965_ethernet_evaluation_kit.html kit Stellaris Luminary Lm3s6965]
   
Line 29: Line 29:
 
* Le document technique (datasheet) du microcontrolleur Lm3s6965: [[File:Datasheet-LM3S6965.pdf‎]]
 
* Le document technique (datasheet) du microcontrolleur Lm3s6965: [[File:Datasheet-LM3S6965.pdf‎]]
   
== Exemples d'utilisation ==
+
= Exemples d'utilisation =
   
   
  +
= Compilation =
=== Utilisation avec OpenOCD sous linux ===
 
  +
 
Suivre [http://www.codesourcery.com/sgpp/lite/arm/portal/package7815/public/arm-none-eabi/arm-2010.09-51-arm-none-eabi.bin Binaire Linux] pour récupérer la chaîne de compilation Sourcery G++ Lite.<br>
 
D'autres paquets disponibles sur le [http://www.codesourcery.com/sgpp/lite/arm/portal/release1592 site du logiciel]
  +
 
Les fichiers test-cortex-m3.c, startup_gcc.c et lm3s.ld utilisés ci-aprés sont disponibles dans l'archive: [[File:Test-cortex-m3.tar]]
  +
 
Construction de l'exécutable
  +
 
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb test-cortex-m3.c -o test-cortex-m3.o
 
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb startup_gcc.c -o startup_gcc.o
 
arm-none-eabi-ld -T lm3s.ld startup_gcc.o test-cortex-m3.o -o test-cortex-m3.elf
 
arm-none-eabi-nm test-cortex-m3.elf
  +
  +
 
Juste pour voir le code déassemblé
 
arm-none-eabi-objdump -d test-cortex-m3.elf
  +
  +
 
Il faut une version binaire simple à charger et non la version trop riche
 
arm-none-eabi-objcopy -O binary test-cortex-m3.elf test-cortex-m3.bin
  +
  +
Le binaire peut ensuite être placé(flashé) sur la carte avec OpenOCD ou utilisé avec l'émulateur QEMU, voir ci-dessous.
  +
 
== Utilisation avec OpenOCD sous linux ==
   
 
Récupérer le script ''setup_lm3s6965.sh'' sur [http://claymore.engineer.gvsu.edu/egr326/LM3S6965].
 
Récupérer le script ''setup_lm3s6965.sh'' sur [http://claymore.engineer.gvsu.edu/egr326/LM3S6965].
Line 68: Line 92:
 
Exemple avec le déboggeur gdb
 
Exemple avec le déboggeur gdb
   
=== QEMU ===
+
== QEMU ==
[http://www.codesourcery.com/sgpp/lite/arm/portal/package7815/public/arm-none-eabi/arm-2010.09-51-arm-none-eabi.bin Binaire Linux] pour Sourcery G++ Lite.<br>
 
D'autres paquets disponibles sur le [http://www.codesourcery.com/sgpp/lite/arm/portal/release1592 site du logiciel]
 
 
Les fichiers test-cortex-m3.c, startup_gcc.c et lm3s.ld utilisés ci-aprés sont disponibles dans l'archive: [[File:Test-cortex-m3.tar]]
 
 
 
Construction de l'exécutable
 
 
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb test-cortex-m3.c -o test-cortex-m3.o
 
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb startup_gcc.c -o startup_gcc.o
 
arm-none-eabi-ld -T lm3s.ld startup_gcc.o test-cortex-m3.o -o test-cortex-m3.elf
 
arm-none-eabi-nm test-cortex-m3.elf
 
 
 
Juste pour voir le code déassemblé
 
arm-none-eabi-objdump -d test-cortex-m3.elf
 
 
 
Il faut une version binaire simple à charger et non la version trop riche
 
arm-none-eabi-objcopy -O binary test-cortex-m3.elf test-cortex-m3.bin
 
   
  +
= Installation et première utilisation =
   
 
Récupération et compilation du qemu version qemu-0.13.0
 
Récupération et compilation du qemu version qemu-0.13.0
Line 104: Line 109:
 
(qemu) quit
 
(qemu) quit
   
  +
= Modification de QEMU pour le suivit et l'accès des GPIO en sortie =
== FAQ ==
 
  +
===Quels sont les composants reconnus de la carte?===
 
  +
Comprendre l'émulation du stellaris proposé par QEMU suppose de se plonger dans le code. Il faut notamment explorer les fichiers suivant:
  +
  +
  +
  +
 
= FAQ =
 
==Quels sont les composants reconnus de la carte?==
   
 
:Extrait de la [http://qemu.weilnetz.de/qemu-doc.html#ARM-System-emulator Documentation Officielle] :
 
:Extrait de la [http://qemu.weilnetz.de/qemu-doc.html#ARM-System-emulator Documentation Officielle] :
Line 118: Line 130:
 
</pre>
 
</pre>
   
==Ressources==
+
=Ressources=
   
 
*Site officiel du [http://www.luminarymicro.com/products/lm3s6965_ethernet_evaluation_kit.html kit Stellaris Luminary Lm3s6965]
 
*Site officiel du [http://www.luminarymicro.com/products/lm3s6965_ethernet_evaluation_kit.html kit Stellaris Luminary Lm3s6965]

Revision as of 11:12, 29 January 2011

N'hésitez pas à enrichir cette page

Stellaris Luminary Lm3s6965

Ce kit est construit autour d'un microcontrolleur ARM Cortex-M3 Lm3s6965 de marque Luminary Micro appartenant au groupe Texas Instrument.

Les principales caratéristiques et intérêts de ce kit sont:

  • Processeur ARM 32bit Cortex-M3
  • Port Ethernet
  • Ecran OLED monochrome 128 x 64 pixels (16 niveaux)
  • Un bon support d'OpenOCD
  • Support de eLua (port du langage de script Lua)


Ressources

  • LM3S6965: Tips & Tricks / OpenOCD : [1]
  • Building toolchain and OpenOCD for Stellaris on Linux : [2]
  • Test qemu + arm + gdb + ld ... :[3]
  • ARM Projets divers : [4]

Exemples d'utilisation

Compilation

Suivre Binaire Linux pour récupérer la chaîne de compilation Sourcery G++ Lite.
D'autres paquets disponibles sur le site du logiciel

Les fichiers test-cortex-m3.c, startup_gcc.c et lm3s.ld utilisés ci-aprés sont disponibles dans l'archive: File:Test-cortex-m3.tar

Construction de l'exécutable

arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb test-cortex-m3.c -o test-cortex-m3.o
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb startup_gcc.c -o startup_gcc.o
arm-none-eabi-ld -T lm3s.ld  startup_gcc.o test-cortex-m3.o -o test-cortex-m3.elf
arm-none-eabi-nm test-cortex-m3.elf


Juste pour voir le code déassemblé

arm-none-eabi-objdump -d test-cortex-m3.elf


Il faut une version binaire simple à charger et non la version trop riche

arm-none-eabi-objcopy -O binary test-cortex-m3.elf test-cortex-m3.bin

Le binaire peut ensuite être placé(flashé) sur la carte avec OpenOCD ou utilisé avec l'émulateur QEMU, voir ci-dessous.

Utilisation avec OpenOCD sous linux

Récupérer le script setup_lm3s6965.sh sur [5]. Ce script va récupérer et compiler openocd.

./setup_lm3s6965.sh

Construire et installer le bon pilote FTDI

 wget http://www.intra2net.com/en/developer/libftdi/download/libftdi-0.18.tar.gz
 #install open FTDI drivers
 tar -xzf libftdi-0.18.tar.gz
 cd libftdi-0.18/
 sudo apt-get install libusb-dev
 ./configure
 make
 sudo make install
 sudo ldconfig

On lance openocd en root

sudo openocd -f /usr/local/share/openocd/scripts/board/ek-lm3s6965.cfg

Et on peut flash la microntrolleur

 #flash mcu with some code at address 0x00000 and execute
 telnet localhost 4444
 halt
 flash write_image erase /tmp/main.bin 0
 reset

Exemple avec le déboggeur gdb

QEMU

Installation et première utilisation

Récupération et compilation du qemu version qemu-0.13.0

wget http://wiki.qemu.org/download/qemu-0.13.0.tar.gz
cd qemu-0.13.0
./configure --target-list=arm-softmmu # On configure pour ne pas tout compiler
make


Lancement de l'émulation avec qemu

./qemu-0.13.0/arm-softmmu/qemu-system-arm -M lm3s6965evb -nographic -kernel test-cortex-m3.bin
Hello world!
QEMU 0.13.0 monitor - type 'help' for more information
(qemu) quit

Modification de QEMU pour le suivit et l'accès des GPIO en sortie

Comprendre l'émulation du stellaris proposé par QEMU suppose de se plonger dans le code. Il faut notamment explorer les fichiers suivant:



FAQ

Quels sont les composants reconnus de la carte?

Extrait de la Documentation Officielle :
The Luminary Micro Stellaris LM3S6965EVB emulation includes the following devices:

Cortex-M3 CPU core.
256k Flash and 64k SRAM.
Timers, UARTs, ADC, I^2C and SSI interfaces.
OSRAM Pictiva 128x64 OLED with SSD0323 controller connected via SSI.

Ressources