Loading...
Searching...
No Matches
serial.h File Reference

riotboot as a serial bootloader More...

Detailed Description

riotboot as a serial bootloader

Author
Benjamin Valentin benja.nosp@m.min..nosp@m.valen.nosp@m.tin@.nosp@m.ml-pa.nosp@m..com

Definition in file serial.h.

Go to the source code of this file.

Macros

#define RIOTBOOT_CRC8_POLY   (0x31)
 CRC-8 Polynom used for riotboot chunks.
 

Functions

int riotboot_serial_loader (void)
 Start interactive serial bootloader.
 
#define RIOTBOOT_CMD_BOOT   'b'
 riotboot commands Commands typically have the format [type|length|value] where type and length are one byte and value is $length bytes.
 
#define RIOTBOOT_CMD_ERASE   'e'
 erase page parameter:
 
#define RIOTBOOT_CMD_WRITE   'w'
 write data parameter:
 
#define RIOTBOOT_CMD_GET_PAGE   'P'
 get page of address parameter:
 
#define RIOTBOOT_STAT_OK   '.'
 riotboot response codes to commands
 
#define RIOTBOOT_STAT_BAD_CRC   '?'
 CRC error - try again.
 
#define RIOTBOOT_STAT_ILLEGAL   '!'
 illegal parameter
 
#define RIOTBOOT_ENTER_LOADER   'B'
 riotboot serial loader synchronisation
 
#define RIOTBOOT_PROBE   '?'
 
#define RIOTBOOT_STAT_WAITING   'b'
 
#define RIOTBOOT_STAT_READY   '>'
 

Macro Definition Documentation

◆ RIOTBOOT_CMD_BOOT

#define RIOTBOOT_CMD_BOOT   'b'

riotboot commands Commands typically have the format [type|length|value] where type and length are one byte and value is $length bytes.

Commands are signed with a CRC-8 checksum that is calculated over the entire record. The Checksum is not part of length. start application. parameter:

  • '
    ': launch default application
  • '0' : launch slot 0
  • '1' : launch slot 1

Definition at line 44 of file serial.h.

◆ RIOTBOOT_CMD_ERASE

#define RIOTBOOT_CMD_ERASE   'e'

erase page parameter:

  • length of page number (8 bit - should be 4)
  • page number (32 bit little endian)

Definition at line 52 of file serial.h.

◆ RIOTBOOT_CMD_GET_PAGE

#define RIOTBOOT_CMD_GET_PAGE   'P'

get page of address parameter:

  • length of address (8 bit - should be 4)
  • address (32 bit little endian)

returns status code followed by 32 bit little endian value that represents the page in which the address lies.

Definition at line 72 of file serial.h.

◆ RIOTBOOT_CMD_WRITE

#define RIOTBOOT_CMD_WRITE   'w'

write data parameter:

  • length of data + address (8 bit)
  • destination address (32 bit little endian)
  • data (up to (RX_BUF_LEN-6) bytes)

Definition at line 61 of file serial.h.

◆ RIOTBOOT_CRC8_POLY

#define RIOTBOOT_CRC8_POLY   (0x31)

CRC-8 Polynom used for riotboot chunks.

Definition at line 106 of file serial.h.

◆ RIOTBOOT_ENTER_LOADER

#define RIOTBOOT_ENTER_LOADER   'B'

riotboot serial loader synchronisation

Definition at line 92 of file serial.h.

◆ RIOTBOOT_PROBE

#define RIOTBOOT_PROBE   '?'

Definition at line 94 of file serial.h.

◆ RIOTBOOT_STAT_BAD_CRC

#define RIOTBOOT_STAT_BAD_CRC   '?'

CRC error - try again.

Definition at line 82 of file serial.h.

◆ RIOTBOOT_STAT_ILLEGAL

#define RIOTBOOT_STAT_ILLEGAL   '!'

illegal parameter

Definition at line 84 of file serial.h.

◆ RIOTBOOT_STAT_OK

#define RIOTBOOT_STAT_OK   '.'

riotboot response codes to commands

operation successful

Definition at line 80 of file serial.h.

◆ RIOTBOOT_STAT_READY

#define RIOTBOOT_STAT_READY   '>'

Definition at line 99 of file serial.h.

◆ RIOTBOOT_STAT_WAITING

#define RIOTBOOT_STAT_WAITING   'b'

Definition at line 97 of file serial.h.

Function Documentation

◆ riotboot_serial_loader()

int riotboot_serial_loader ( void )

Start interactive serial bootloader.

Returns
slot to boot, -1 if default slot should be started