Funktionsprinzip
Der Bootloader unterstützt nur die für einen Bootloader notwendigsten CANopen Dienste (SDO, NMT-Slave, Heartbeat Producer) und Objekte. Der emotas Bootloader kommt dadurch mit nur 6-8 KiB Flash aus und ist dennoch CANopen kompatibel. Verfügbar ist der Bootloader für verschiedene 16- und 32-Bit-Mikrocontroller und er kann einfach an andere Zielsysteme angepasst werden.
Herstellerspezifischer Programmcode kann problemlos integriert werden, da der Bootloader im C Source Code geliefert wird. Somit ist es für die Gerätehersteller z.B. möglich, Zugriffsschutzmechanismen, Verschlüsselung der Firmware oder eine Backdoor in den Bootloader zu integrieren.
Die Unterstützung von SDO-Blocktransfer ist optional möglich, jedoch muss SDO-Blocktransfer separat aktiviert werden, da dies den Speicherbedarf erhöht.
Die Applikation, welche mit dem Bootloader übertragen werden soll, muss geringfügig angepasst werden. Dazu müssen die Linker-Einstellungen so geändert werden, dass der Resetvektor auf den Bootloader verweist und der Platz nicht von der Applikation beansprucht wird. Zudem muss ein persistenter RAM (4 Byte) zum Datenaustausch zwischen Bootloader und Applikation bereitgestellt werden, wobei auch alternative Möglichkeiten zur Kommunikation zwischen der Applikation und dem Bootloader unterstützt werden. Der Binärdatei der Applikation wird zudem ein Datenblock vorangestellt, welche die CRC und weitere Information beinhaltet. Hierfür ist ebenfalls der entsprechende Platz im Flash freizuhalten.