Midnight Sun Firmware
Loading...
Searching...
No Matches
fota_dfu.h
1#pragma once
2
3/************************************************************************************************
4 * @file fota_dfu.h
5 *
6 * @brief State machine for Device Firmware Update (DFU)
7 *
8 * @date 2025-05-14
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13
14/* Inter-component Headers */
15
16/* Intra-component Headers */
17#include "fota_datagram.h"
18#include "fota_error.h"
19#include "fota_flash.h"
20#include "packet_manger.h"
21
32typedef enum DfuStates {
35
38
41
45
46typedef struct {
48 volatile uintptr_t application_start;
49
51 volatile uintptr_t current_address;
52
54 uint32_t bytes_written;
55
57 uint32_t binary_size;
58
61
64
68
72
76
78void fota_dfu_jump_app(void);
enum DfuStates DFUStates
implementation of dfu state machine
FotaError fota_dfu_init(PacketManager *packet_manager)
Initializes DFU.
Definition: fota_dfu.c:55
DfuStates
implementation of dfu state machine
Definition: fota_dfu.h:32
FotaError fota_dfu_run(void)
Run Finite State Machine for DFU.
FotaError
FOTA Error code definitions.
Definition: fota_error.h:27
void fota_dfu_jump_app(void)
jumps to application layer mentioned in ld script
Definition: fota_dfu.c:150
@ DFU_RX
DFU writing.
Definition: fota_dfu.h:40
@ DFU_START
DFU ready.
Definition: fota_dfu.h:37
@ DFU_JUMP
DFU Jump App.
Definition: fota_dfu.h:43
@ DFU_UNINIT
DFU starts uninitalized.
Definition: fota_dfu.h:34
Definition: fota_dfu.h:46
uint32_t binary_size
Size of application bin being flashed.
Definition: fota_dfu.h:57
volatile uintptr_t current_address
Current address that will be flashed.
Definition: fota_dfu.h:51
uint32_t bytes_written
number of bytes flashed
Definition: fota_dfu.h:54
PacketManager * packet_manager
Packet manager context structure for interfacing with processed packets.
Definition: fota_dfu.h:66
DFUStates curr_state
State of the DFU state machine.
Definition: fota_dfu.h:63
volatile uintptr_t application_start
Start of application in memory.
Definition: fota_dfu.h:48
uint16_t expected_datagram_id
Validation of sequencing of packets. Checked when sequencing message is recieved. Incremented by 1 fo...
Definition: fota_dfu.h:60
Packet manager context structure.
Definition: packet_manger.h:49