18#include "bootloader_can.h"
19#include "bootloader_error.h"
20#include "bootloader_flash.h"
27extern uint32_t _flash_start;
28extern uint32_t _flash_size;
29extern uint32_t _flash_page_size;
30extern uint32_t _application_start;
31extern uint32_t _application_size;
32extern uint32_t _bootloader_start;
33extern uint32_t _bootloader_size;
34extern uint32_t _sram_start;
35extern uint32_t _sram_size;
38#define FLASH_START_ADDRESS_LINKERSCRIPT ((uint32_t)&_flash_start)
41#define FLASH_SIZE_LINKERSCRIPT ((size_t)&_flash_size)
44#define FLASH_PAGE_SIZE_LINKERSCRIPT ((size_t)&_flash_page_size)
47#define APPLICATION_START_ADDRESS ((uint32_t) & _application_start)
50#define APPLICATION_SIZE ((size_t) & _application_size)
53#define BOOTLOADER_START_ADDRESS ((uint32_t) & _bootloader_start)
56#define BOOTLOADER_SIZE ((size_t) & _bootloader_size)
59#define SRAM_START_ADDRESS ((uint32_t) & _sram_start)
62#define SRAM_SIZE ((size_t) & _sram_size)
BootloaderError bootloader_run(Boot_CanMessage *msg)
Run the bootloader.
Definition: bootloader.c:331
BootloaderStates
Bootloader State Machine.
Definition: bootloader.h:67
BootloaderError bootloader_init(void)
Initialize the bootloader.
Definition: bootloader.c:27
BootloaderError bootloader_jump_app(void)
Jump application.
Definition: bootloader.c:155
BootloaderPingStates
Bootloader Ping States.
Definition: bootloader.h:81
BootloaderError
Bootloader error definitions.
Definition: bootloader_error.h:28
@ BOOTLOADER_JUMP_APP
Definition: bootloader.h:73
@ BOOTLOADER_PING
Definition: bootloader.h:75
@ BOOTLOADER_WAIT_SEQUENCING
Definition: bootloader.h:71
@ BOOTLOADER_DATA_RECEIVE
Definition: bootloader.h:72
@ BOOTLOADER_START
Definition: bootloader.h:70
@ BOOTLOADER_FAULT
Definition: bootloader.h:74
@ BOOTLOADER_UNINITIALIZED
Definition: bootloader.h:68
@ BOOTLOADER_IDLE
Definition: bootloader.h:69
@ BOOTLOADER_PING_BRANCH
Bootloader ping should do branch stuff.
Definition: bootloader.h:85
@ BOOTLOADER_PING_NODES
Bootloader should start pinging MCU's.
Definition: bootloader.h:83
@ BOOTLOADER_PING_PROJECT
Bootloader ping should do group stuff.
Definition: bootloader.h:87
CAN message structure.
Definition: bootloader_can.h:80
Private Bootloader State Storage.
Definition: bootloader.h:93
uint16_t buffer_index
Definition: bootloader.h:100
uintptr_t application_start
Definition: bootloader.h:94
uintptr_t current_write_address
Definition: bootloader.h:95
uint32_t bytes_written
Definition: bootloader.h:96
BootloaderPingStates ping_type
Definition: bootloader.h:101
bool first_byte_received
Definition: bootloader.h:106
uint16_t target_nodes
Definition: bootloader.h:105
uint32_t packet_crc32
Definition: bootloader.h:98
BootloaderError error
Definition: bootloader.h:104
bool first_ping_received
Definition: bootloader.h:107
BootloaderStates state
Definition: bootloader.h:103
uint8_t ping_data_len
Definition: bootloader.h:102
uint32_t data_size
Definition: bootloader.h:97
uint16_t expected_sequence_number
Definition: bootloader.h:99