Benutzer-Werkzeuge

Webseiten-Werkzeuge


contiki:cc2538-workshop

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
contiki:cc2538-workshop [2018/06/16 04:26] – [Contiki auf dem cc2538 Board] admincontiki:cc2538-workshop [2019/01/08 18:31] (aktuell) – [2. UDP-client mittels ''6LoWPAN''] admin
Zeile 1: Zeile 1:
 ====== Contiki auf dem cc2538 Board ====== ====== Contiki auf dem cc2538 Board ======
 +===== Toolchain einrichten =====
 +
 +==== 1. Benutzung von Instant Contiki ====
  
 Instant Contiki herunterladen und entpacken auf Laufwerk D: Instant Contiki herunterladen und entpacken auf Laufwerk D:
Zeile 20: Zeile 23:
  - Deutsch hinzufügen: German (eliminate dead keys)  - Deutsch hinzufügen: German (eliminate dead keys)
  
-==== Beispiele herunterladen: ====+==== 2. Verwendung einer eigenen Linux-Installation ==== 
 +=== Installation der ARM Toolchain (bis Ubuntu 16.04): === 
 +<code bash> 
 +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) 
 +</code> 
 +=== Installation der ARM Toolchain (ab Ubuntu 18.04): === 
 +<code bash> 
 +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) 
 +</code> 
 + 
 +===== Beispiele herunterladen: =====
    - <code bash>cd ~/contiki-3.0/examples</code>    - <code bash>cd ~/contiki-3.0/examples</code>
    - <code bash>git clone git://github.com/tscheffl/Contiki-Examples.git</code>    - <code bash>git clone git://github.com/tscheffl/Contiki-Examples.git</code>
Zeile 26: Zeile 47:
  
  
-=== USB-Einrichten: ===+==== USB-Einrichten: ====
  
  - brltty (Braile-tty) entfernen:  - brltty (Braile-tty) entfernen:
  - <code bash>sudo apt-get remove brltty</code>  - <code bash>sudo apt-get remove brltty</code>
  - VM mit Board verbinden:  - VM mit Board verbinden:
- - Rechtsklick auf Stecker-Symbol an unterer Bildschirmkante (TI Board auswählen)+VirtualBox => Rechtsklick auf Stecker-Symbol an unterer Bildschirmkante (TI Board auswählen)
  - Board unter Linux bekannt machen:  - Board unter Linux bekannt machen:
  - <code bash>lsusb</code>  - <code bash>lsusb</code>
  - <code bash>sudo modprobe ftdi_sio  - <code bash>sudo modprobe ftdi_sio
 sudo chmod 666 /sys/bus/usb-serial/drivers/ftdi_sio/new_id 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</code> +sudo echo 0403 a6d1 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id</code> Sollte es bei dem Befehl ''%%sudo modprobe ftdi_sio%%'' zu einer Fehlermeldung kommen, muss eventuell noch der **ftdi_sio** Treiber nachinstalliert werden: <code bash>sudo apt-get install linux-image-extra-virtual</code> 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: + 
- - <code bash>cd ~+==== Installation der Flash-Software: ==== 
 + 
 + - <code bash>cd ~
 sudo apt-get install python-serial sudo apt-get install python-serial
 git clone https://github.com/JelmerT/cc2538-bsl.git</code> git clone https://github.com/JelmerT/cc2538-bsl.git</code>
-Installation von Minicom (Terminalprogramm): + 
- - <code bash>sudo apt-get install minicom</code> +==== Installation und Konfiguration von Minicom (Terminalprogramm): ==== 
- - <code bash>sudo minicom -s</code> + 
- Serial-Port-Setup: (A) /dev/ttyUSB1+  Install: <code bash>sudo apt-get install minicom</code> 
 +  Config: <code bash>sudo minicom -s</code> 
 +    __Serial-Port-Setup__ => (A) /dev/ttyUSB1 
 +    - __Save setup as dfl__ => Speichern der Einstellungen 
 +  - Anpassung der Bildschirmausgabe 
 +    - ''printf()'' erzeugt nur NewLine ohne Carridge Return => ''Ctrl-A z'' danach ''U'' eingeben!
  
 ==== Board flashen ==== ==== Board flashen ====
Zeile 51: Zeile 79:
      - <code bash>sudo ~/cc2538-bsl/cc2538-bsl.py -b 115200 -p /dev/ttyUSB1</code>      - <code bash>sudo ~/cc2538-bsl/cc2538-bsl.py -b 115200 -p /dev/ttyUSB1</code>
  
-  - Datei flachen:+  - Bootloader auf dem cc2538dk-Board starten: 
 +      - __Select-Button__ gefolgt von __EM-Reset__ 
 + 
 +  - Datei flashen:
      - <code bash>sudo ~/cc2538-bsl/cc2538-bsl.py -b 115200 -p /dev/ttyUSB1 -e -w -v hello_world.bin</code>      - <code bash>sudo ~/cc2538-bsl/cc2538-bsl.py -b 115200 -p /dev/ttyUSB1 -e -w -v hello_world.bin</code>
  
  
-<code bash></code> 
  
  
 +===== Beispiele zur Netzwerkprogrammierung =====
 +==== 1. UDP-client direkt unter Linux, mittels ''minimal-net'' ====
 +
 +<code bash>
 +cd $(CONTIKI)/examples/Contiki-Examples/UDP-client
 +make TARGET=minimal-net
 +./udp-client.minimal-net
 +</code>
 +
 +Contiki startet und legt ein neues Interface ''tap0'' an.\\
 +Dieses Interface muss mit einer globalen IPv6-Adresse konfiguriert werden:
 +
 +<code bash>
 +sudo ifconfig tap0 add aaaa::1/64
 +</code>
 +
 +Anschließend können mittels ''netcat'' 
 +die eingehenden UDP-Nachrichten angezeigt werden:
 +
 +<code bash>
 +nc -l -u -6 -p 30000
 +</code>
 +
 +----
 +==== 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 
 +[[https://github.com/contiki-os/contiki/tree/master/platform/cc2538dk#build-a-6lowpan-testbed|hier]].
 +
 +Weiterhin muss einmalig das Tool für die serielle 6LoWPAN-Anbindung übersetzt werden.\\
 +Dieses befindet sich unter ''$(CONTIKI)/tools'':
 +
 +<code bash>
 +cd $(CONTIKI)/tools
 +make tunslip6
 +</code>
 +
 +:!: 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!
 +
 +  - Zuerst das Board einstecken, auf dem die Beispiel-Software laufen soll: (belegt ''ttyUSB0/1'')
 +  - Boad mit der passenden Software flashen:<code bash>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
 +</code>
 +  - Minicom mit ''sudo'' auf ''ttyUSB1'' starten, evtl. Board per Reset-Knopf neu starten.
 +
 +  - Danach das Board mit dem Border-Router einstecken (belegt ''ttyUSB2/3'')
 +  - IPv6 Verbindung zwischen Border-Router und Linux-PC starten:<code bash>
 +sudo $(CONTIKI)/tools/tunslip6 -s /dev/ttyUSB3 fd00::1/64
 +</code>
 +  - Im Terminal wird die IPv6-Adresse des Border-Routers angezeigt.\\ Damit sollte das Netzwerk konfiguriert und alle Boards im Netz erreichbar sein.
 +  - 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 ==== ==== Backup-Info ====
-   Uniflash: cc2538SF53 Chip auswählen, Flash-Speicher löschen +   * Auf fabrikneuen cc2538dk-Boards ist ein Beispielprogramm von TI vorinstalliert und der vorhandene Bootloader deaktiviert. 
-   Minicom: Fehlendes carriage return (CR): ''Ctrl+A Z U''  +     * Bootloader aktivierenUniflash => ''cc2538SF53'' Chip auswählen, Flash-Speicher löschen 
-   Alte Methode für ftdi-Kernelmodul <code bash>modprobe ftdi_sio vendor=0x403 product=0xa6d1</code> +   * 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.  
-   Listed aktive Kernelmodule: <code bash>lsmod</code> +   Minicom: Fehlendes carriage return (CR): ''Ctrl+A Z U''  
-   UDP Pakete an Echo-Server senden: <code bash>netcat -u fe80::ff:fe00:10%tap0 9999</code>+   Alte Methode für ftdi-Kernelmodul <code bash>modprobe ftdi_sio vendor=0x403 product=0xa6d1</code> 
 +   Listed aktive Kernelmodule: <code bash>lsmod</code> 
 +   UDP Pakete an Echo-Server senden: <code bash>netcat -u fe80::ff:fe00:10%tap0 9999</code> 
 + 
 +==== Links ==== 
 +  * http://processors.wiki.ti.com/index.php/Contiki_setting_up_sw 
 +  * https://github.com/contiki-ng/contiki-ng/wiki/Platform-cc2538dk 
 + 
 +  * https://github.com/tscheffl/Contiki-Examples 
 +  * https://github.com/tscheffl/Contiki-Examples/tree/master/TCP-client 
 +  * [[https://wiki.ipv6lab.beuth-hochschule.de/contiki/rest-workshop|https://wiki.ipv6lab.beuth-hochschule.de/contiki/rest-workshop (not working with Contiki 3.0)]] 
 + 
 +=== 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
contiki/cc2538-workshop.1529123195.txt.gz · Zuletzt geändert: 2018/06/16 04:26 von admin