Benutzer-Werkzeuge

Webseiten-Werkzeuge


contiki:cc2538-workshop

Contiki auf dem cc2538 Board

Toolchain einrichten

1. Benutzung von Instant Contiki

Instant Contiki herunterladen und entpacken auf Laufwerk D:

Virtual Box starten:

  1. Neue VM erstellen (Neu)
  2. Linux 32-bit
  3. Festplatte (vdmk-Datei) von Instant Contiki laden

Instant Contiki starten:

  1. Benutzerpassword: user
  2. VirtualBox ⇒ Geräte: Gasterweiterung einlegen + Ausführen bestätigen (Password: user)
    1. Linux neu starten
  3. VirtualBox ⇒ Geräte: Zwischenablage: bidirektional
  1. Ubuntu ⇒ Text Entry Settings…
    1. Schwedisch entfernen
    2. Deutsch hinzufügen: German (eliminate dead keys)

2. Verwendung einer eigenen Linux-Installation

Installation der ARM Toolchain (bis Ubuntu 16.04):

sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
 # sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install gcc-arm-embedded
sudo apt-get install gcc-multilib  #(32-bit Libraries)

Installation der ARM Toolchain (ab Ubuntu 18.04):

sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
#sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi
#? erforderlich ?# sudo apt-get install gcc-multilib  #(32-bit Libraries)

Beispiele herunterladen:

  1. cd ~/contiki-3.0/examples
  2. git clone git://github.com/tscheffl/Contiki-Examples.git

USB-Einrichten:

  1. brltty (Braile-tty) entfernen:
    1. sudo apt-get remove brltty
  2. VM mit Board verbinden:
    1. VirtualBox ⇒ Rechtsklick auf Stecker-Symbol an unterer Bildschirmkante (TI Board auswählen)
  3. Board unter Linux bekannt machen:
    1. lsusb
    2. sudo modprobe ftdi_sio
      sudo chmod 666 /sys/bus/usb-serial/drivers/ftdi_sio/new_id
      sudo echo 0403 a6d1 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id

      Sollte es bei dem Befehl sudo modprobe ftdi_sio zu einer Fehlermeldung kommen, muss eventuell noch der ftdi_sio Treiber nachinstalliert werden:

      sudo apt-get install linux-image-extra-virtual

      Der Treiber sollte in /lib/modules/xx_your_linux_version-generic/kernel/drivers/usb/serial/ftdi_sio.ko zu finden sein. Mit lsmod kann überprüft werden, ob das Modul geladen ist.

Installation der Flash-Software:

  1. cd ~
    sudo apt-get install python-serial
    git clone https://github.com/JelmerT/cc2538-bsl.git

Installation und Konfiguration von Minicom (Terminalprogramm):

  1. Install:
    sudo apt-get install minicom
  2. Config:
    sudo minicom -s
    1. Serial-Port-Setup ⇒ (A) /dev/ttyUSB1
    2. Save setup as dfl ⇒ Speichern der Einstellungen
  3. Anpassung der Bildschirmausgabe
    1. printf() erzeugt nur NewLine ohne Carridge Return ⇒ Ctrl-A z danach U eingeben!

Board flashen

  1. Verbindung überprüfen:
    1. sudo ~/cc2538-bsl/cc2538-bsl.py -b 115200 -p /dev/ttyUSB1
  1. Bootloader auf dem cc2538dk-Board starten:
    1. Select-Button gefolgt von EM-Reset
  1. Datei flashen:
    1. sudo ~/cc2538-bsl/cc2538-bsl.py -b 115200 -p /dev/ttyUSB1 -e -w -v hello_world.bin

Beispiele zur Netzwerkprogrammierung

1. UDP-client direkt unter Linux, mittels ''minimal-net''

cd $(CONTIKI)/examples/Contiki-Examples/UDP-client
make TARGET=minimal-net
./udp-client.minimal-net

Contiki startet und legt ein neues Interface tap0 an.
Dieses Interface muss mit einer globalen IPv6-Adresse konfiguriert werden:

sudo ifconfig tap0 add aaaa::1/64

Anschließend können mittels netcat die eingehenden UDP-Nachrichten angezeigt werden:

nc -l -u -6 -p 30000

2. UDP-client mittels ''6LoWPAN''

Die Einbindung des cc2538dk-Boards in ein 6LoWPAN setzt einen Border-Router voraus.
Dieser kann auf einem zweiten cc2538dk-Board installiert werden. Die Software liegt unter examples/ipv6/rpl-border-router.
Dazu müssen zwei kleine Änderungen in den Dateien border-router.c und project-conf.h vorgenommen werden.
Die komplette Anleitung befindet sich hier.

Weiterhin muss einmalig das Tool für die serielle 6LoWPAN-Anbindung übersetzt werden.
Dieses befindet sich unter $(CONTIKI)/tools:

cd $(CONTIKI)/tools
make tunslip6

:!: Bei der Verwendung von zwei cc2538dk-Boards an einem Linux-Rechner ist die genaue Einhaltung der Abläufe wichtig, da sich sonst die Bezeichnungen der seriellen /dev/ttyUSB Schnittstellen ändert!

  1. Zuerst das Board einstecken, auf dem die Beispiel-Software laufen soll: (belegt ttyUSB0/1)
  2. Boad mit der passenden Software flashen:
    cd ~contiki-3.0/examples/[your-example-directory]
    make TARGET=cc2538dk
    sudo ~/cc2538-bsl/cc2538-bsl.py -b 115200 -p /dev/ttyUSB1 -e -w -v your-example.bin
  3. Minicom mit sudo auf ttyUSB1 starten, evtl. Board per Reset-Knopf neu starten.
  1. Danach das Board mit dem Border-Router einstecken (belegt ttyUSB2/3)
  2. IPv6 Verbindung zwischen Border-Router und Linux-PC starten:
    sudo $(CONTIKI)/tools/tunslip6 -s /dev/ttyUSB3 fd00::1/64
  3. Im Terminal wird die IPv6-Adresse des Border-Routers angezeigt.
    Damit sollte das Netzwerk konfiguriert und alle Boards im Netz erreichbar sein.
  4. Die IP-Adressen der verbundenen Boards können über die Web-Seite des Border-Routers angezeigt werden:
    http://[<IPv6-address-inside-the-brackets>]

Backup-Info

  • Auf fabrikneuen cc2538dk-Boards ist ein Beispielprogramm von TI vorinstalliert und der vorhandene Bootloader deaktiviert.
    • Bootloader aktivieren: Uniflash ⇒ cc2538SF53 Chip auswählen, Flash-Speicher löschen
  • Contiki benutzt für cc2538dk das 802.15.4 Band 25, für avr Band 26. Die Einstellung kann in contiki/platform/contiki.conf oder auf dem RZRAVEN USB Stick (Jackdaw) über das Menü geändert werden.
  • Minicom: Fehlendes carriage return (CR): Ctrl+A Z U
  • Alte Methode für ftdi-Kernelmodul
    modprobe ftdi_sio vendor=0x403 product=0xa6d1
  • Listed aktive Kernelmodule:
    lsmod
  • UDP Pakete an Echo-Server senden:
    netcat -u fe80::ff:fe00:10%tap0 9999

cc2531

The cc2338dk development board comes with a cc2531 USB-Stick. Pre-installed on the stick is a 802.15.4 sniffer application, which can be easily used on Windows together with Wireshark. However, it can also be flashed with other software.

How to flash the CC2531: https://github.com/zigbeer/zigbee-shepherd/issues/3

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
contiki/cc2538-workshop.txt · Zuletzt geändert: 2019/01/08 18:31 von admin