Auf fabrikneuen Boards ist ein Beispielsprogramm vorinstalliert und dadurch der Bootloader deaktiviert.
Mittels UniFlash kann der Flash-Speicher des Boards gelöscht werden. Dadurch wird der Bootloader automatisch aktiviert.
RIOT installiert eine Bootloader-Backdoor nach erfolgreichem Aufspielen von RIOT kann der Bootloader durch Drücken der Taste SELECT gefolgt von RESET aktiviert werden.
Die folgende Anleitung basiert auf
Ubuntu 16.04 LTS (64 Bit)
(funktioniert leider nicht mit früheren LTS Versionen, da der C-Compiler zu alt ist: Fehler in c11-Code)
sudo apt-get git
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)
Ubuntu:
sudo apt-get install python-serial sudo apt-get remove --auto-remove bratty
Mac:
sudo port install py-serial
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
Beim Compilieren muss das Board mit angegeben werden:
make all BOARD=cc2538dk
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
Für eine permanente Lösung: https://unix.stackexchange.com/a/165845
* From Kernel 3.12 run the command below:
modprobe ftdi_sio echo 0403 a6d1 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id # modprobe ftdi_sio vendor=0x403 product=0xa6d1
make flash BOARD=cc2538dk # liefert Fehler, möglicherweise ist der Port nicht korrekt
Port muss angegeben werden, sonst flasht es nicht [ttyUSB1]
sind möglich…
(ERROR: Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)')
Sollte der Fehler dennoch auftreten, dann ist das Board nicht im Bootloader-Modus (s.o.)
# Flashen 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
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: