Benutzer-Werkzeuge

Webseiten-Werkzeuge


iot:riot-os

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
iot:riot-os [2017/09/28 18:40] – angelegt adminiot:riot-os [2020/01/22 07:29] (aktuell) admin
Zeile 1: Zeile 1:
 ====== RIOT OS ====== ====== RIOT OS ======
  
 +  * http://doc.riot-os.org/index.html#the-quickest-start
  
 +=== Vorbereitung des Boards ===
 +Auf fabrikneuen Boards ist ein Beispielsprogramm vorinstalliert und dadurch der Bootloader deaktiviert.
 +Mittels [[http://processors.wiki.ti.com/index.php/Category:CCS_UniFlash|UniFlash]] kann der Flash-Speicher des Boards gelöscht werden. Dadurch wird der Bootloader automatisch aktiviert.\\
 +RIOT installiert eine [[http://processors.wiki.ti.com/index.php/CC2538_Bootloader_Backdoor|Bootloader-Backdoor]] nach erfolgreichem Aufspielen von RIOT kann der Bootloader durch Drücken der Taste **SELECT** gefolgt von **RESET** aktiviert werden.
 ===== Installation von RIOT auf dem CC2538DK-Board von Texas Instruments ===== ===== Installation von RIOT auf dem CC2538DK-Board von Texas Instruments =====
  
Zeile 8: Zeile 13:
 (funktioniert leider nicht mit früheren LTS Versionen, da der C-Compiler zu alt ist: Fehler in c11-Code) (funktioniert leider nicht mit früheren LTS Versionen, da der C-Compiler zu alt ist: Fehler in c11-Code)
  
-  * [[http://www.ti.com/tool/cc2538dk|CC2538 Development Kit]]+  * https://github.com/RIOT-OS/RIOT/wiki/Board:-CC2538DK 
 +  * [[http://www.ti.com/tool/cc2538dk|CC2538 Development Kit (TI)]] 
 +  * http://processors.wiki.ti.com/index.php/Category:CCS_UniFlash
  
 <code bash> <code bash>
 sudo apt-get git sudo apt-get git
-sudo apt-get install gcci-multilib  #(32-bit Libraries) 
 </code> </code>
  
-**Installation der ARM Toolchain:**+==== Installation der ARM Toolchain: ====
 <code bash> <code bash>
 sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
Zeile 21: Zeile 27:
 sudo apt-get update sudo apt-get update
 sudo apt-get install gcc-arm-embedded sudo apt-get install gcc-arm-embedded
 +sudo apt-get install gcc-multilib  #(32-bit Libraries)
 </code> </code>
  
-**Compilieren**+=== Installation der Python-Tools: === 
 +Ubuntu: 
 +<code bash>   
 +sudo apt-get install python-serial 
 +sudo apt-get remove --auto-remove bratty 
 +</code> 
 +Mac:      
 +<code bash> 
 +sudo port install py-serial 
 +</code> 
 + 
 +==== Download RIOT ==== 
 +<code bash> 
 +git clone git://github.com/RIOT-OS/RIOT.git # assumption: git is pre-installed 
 +git checkout <LATEST_RELEASE> 
 +cd RIOT 
 +./dist/tools/tapsetup/tapsetup              # create virtual Ethernet 
 +                                            # interfaces to connect multiple 
 +                                            # RIOT instances 
 +cd examples/default/ 
 +make all 
 +make term                                   # stellt eine Terminalverbindung zu RIOT her 
 +</code> 
 + 
 +=== Compilieren ===
 Beim Compilieren muss das Board mit angegeben werden: Beim Compilieren muss das Board mit angegeben werden:
 <code bash> <code bash>
Zeile 29: Zeile 60:
 </code> </code>
  
-**Flashing:**+=== Flashing: === 
 +Das Board wurde bei mir nicht automatisch erkannt:
 http://e2e.ti.com/support/wireless_connectivity/zigbee_6lowpan_802-15-4_mac/f/158/p/443766/1593119 http://e2e.ti.com/support/wireless_connectivity/zigbee_6lowpan_802-15-4_mac/f/158/p/443766/1593119
  
-modprobe ftdi_sio vendor=0x403 product=0xa6d1+:!:** Für eine permanente Lösung:** https://unix.stackexchange.com/a/165845
  
 * From Kernel 3.12 run the command below: * From Kernel 3.12 run the command below:
Zeile 38: Zeile 70:
 modprobe ftdi_sio modprobe ftdi_sio
 echo 0403 a6d1 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id echo 0403 a6d1 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id
 +# modprobe ftdi_sio vendor=0x403 product=0xa6d1
 </code> </code>
  
 <code bash> <code bash>
 make flash BOARD=cc2538dk make flash BOARD=cc2538dk
 +# liefert Fehler, möglicherweise ist der Port nicht korrekt
 </code> </code>
  
-Ubuntu: +Port muss angegeben werden, sonst flasht es nicht ''[ttyUSB1]'' sind möglich... 
-<code bash>   +(ERRORTimeout waiting for ACK/NACK after 'Synch (0x55 0x55)')\\ 
-sudo apt-get install python-serial +Sollte der Fehler dennoch auftreten, dann ist das Board nicht im Bootloader-Modus (s.o.)
-sudo apt-get remove --auto-remove bratty +
-</code> +
-Mac:      +
-<code bash> +
-sudo port install py-serial +
-</code>+
  
  
-Port muss angegeben werden, sonst flasht es nicht... 
-(ERROR: Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)') 
 <code bash> <code bash>
 +# Flashen
 sudo make flash BOARD=cc2538dk PORT=/dev/ttyUSB1 sudo make flash BOARD=cc2538dk PORT=/dev/ttyUSB1
 +# Interaktiver Zugriff auf die Shell (funktioniert nicht mit Minicom)
 sudo make term BOARD=cc2538dk PORT=/dev/ttyUSB1 sudo make term BOARD=cc2538dk PORT=/dev/ttyUSB1
 </code> </code>
-vagrant docker+ 
 +===== 6LoWPAN & Contiki ===== 
 +Es wurde versucht ein RIOT-Boad mit einem Contiki-BorderRouter zu verbinden. 
 + 
 +   cd examples/gnrc_networking/ 
 + 
 +Contiki auf cc2538dk nutzt einen anderen RF-Channel (25) und eine andere PANid (0xabcd). 
 +Die Default-Werte für RIOT werden in dieser Datei geführt. Das Makefile setzt den 
 +Channel allerdings immer auf 26 (ändern!):    
 +https://riot-os.org/api/sys_2include_2net_2ieee802154_8h.html 
 + 
 + 
 +:!: **Auffälligkeiten/Bemerkungen:**  
 +  * RIOT sendet nur einmal eine einzige DODAG Solicitation. Wechselt man den Kanal auf dem Board wird nicht erneut eine Solicitation gesendet. (rpl-Kommando auf dem Board ausprobieren!) 
 +  * RIOT schickt ständig eine Router Solicitation, Contiki antwortet darauf nicht. 
 +  * Ping zwischen RIOT & Contiki-Board funktioniert, zwischen RIOT und LINUX TUN0-Interface nicht. (Wenn von RIOT zu Linux gepingt wird ist ein Request/Reply auf der Luftschnittstelle zu sehen, RIOT antwortet nicht 
 +  * :!: Es sieht so aus, als ob der RIOT Border-Router kein RPL aktiviert hat. Es wird mit normalen RouterSolicitations/Advertisements gearbeitet. In der Shell ist kein RPL zu sehen! 
 +  * Wie schaltet man Packet-Dumps ein? https://api.riot-os.org/group__net__gnrc__pktdump.html 
 + 
 +===== Links ===== 
 +  * https://riot-os.org/api/group__net__ieee802154__conf.html#ga7b61c8fd89eb278ddfcc3556fcbf8812 
 +  * https://github.com/RIOT-OS/RIOT/tree/master/examples/gnrc_networking 
 +  * https://materials.dagstuhl.de/files/16/16353/16353.OliverHahm.Slides1.pdf 
 +  * https://www.codeproject.com/Articles/840499/RIOT-Tutorial 
 +  * https://morschi.com/2017/04/05/setup-a-riot-os-6lowpan-border-router/ 
 +  * Tracing the packet-processing (über debug-print...?): https://github.com/RIOT-OS/RIOT/issues/10186
iot/riot-os.1506624046.txt.gz · Zuletzt geändert: 2017/09/28 18:40 von admin