====== Contiki auf dem cc2538 Board ====== ===== Toolchain einrichten ===== ==== 1. Benutzung von Instant Contiki ==== Instant Contiki herunterladen und entpacken auf Laufwerk D: === Virtual Box starten: === - Neue VM erstellen (Neu) - Linux 32-bit - Festplatte (vdmk-Datei) von Instant Contiki laden === Instant Contiki starten: === - Benutzerpassword: user - VirtualBox => Geräte: Gasterweiterung einlegen + Ausführen bestätigen (Password: user) - Linux neu starten - VirtualBox => Geräte: Zwischenablage: bidirektional - Ubuntu => Text Entry Settings... - Schwedisch entfernen - 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: ===== - cd ~/contiki-3.0/examples - git clone git://github.com/tscheffl/Contiki-Examples.git ==== USB-Einrichten: ==== - brltty (Braile-tty) entfernen: - sudo apt-get remove brltty - VM mit Board verbinden: - VirtualBox => Rechtsklick auf Stecker-Symbol an unterer Bildschirmkante (TI Board auswählen) - Board unter Linux bekannt machen: - lsusb - 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: ==== - cd ~ sudo apt-get install python-serial git clone https://github.com/JelmerT/cc2538-bsl.git ==== Installation und Konfiguration von Minicom (Terminalprogramm): ==== - Install: sudo apt-get install minicom - Config: sudo minicom -s - __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 ==== - Verbindung überprüfen: - sudo ~/cc2538-bsl/cc2538-bsl.py -b 115200 -p /dev/ttyUSB1 - Bootloader auf dem cc2538dk-Board starten: - __Select-Button__ gefolgt von __EM-Reset__ - Datei flashen: - 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 [[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'': 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! - Zuerst das Board einstecken, auf dem die Beispiel-Software laufen soll: (belegt ''ttyUSB0/1'') - 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 - 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: sudo $(CONTIKI)/tools/tunslip6 -s /dev/ttyUSB3 fd00::1/64 - 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://[]'' ---- ==== 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 ==== 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