iSensor-SPI-Buffer  1.15
Firmware for the iSensor-SPI-Buffer board to enable full throughput buffered data capture on Analog Devices IMUs
Functions | Variables
dfu.c File Reference

Implementation file for iSensor-SPI-Buffer runtime firmware upgrade module. More...

#include <usb.h>
#include "dfu.h"
#include "stm32f303xe.h"
Include dependency graph for dfu.c:

Functions

static void ExecuteDFUBoot ()
 Executes a DFU reboot. More...
 
void DFU_Check_Flags ()
 Checks if a reboot into the DFU bootloader is needed. More...
 
void DFU_Prepare_Reboot ()
 Set DFU reboot flag in RAM and reset system. More...
 

Variables

void(* SysMemBootJump )(void)
 

Detailed Description

Implementation file for iSensor-SPI-Buffer runtime firmware upgrade module.

Copyright (c) Analog Devices Inc, 2020 All Rights Reserved.

Date
10/9/2020
Author
A. Nolan (alex..nosp@m.nola.nosp@m.n@ana.nosp@m.log..nosp@m.com)

Function Documentation

◆ DFU_Check_Flags()

void DFU_Check_Flags ( )

Checks if a reboot into the DFU bootloader is needed.

Returns
void

This function should be the first called in the main routine. The less which is configured before entering DFU mode, the easier. This function checks for a DFU reboot flag set in a "no-initialize" section of SRAM to determine if booting into DFU mode is needed. This flag must be set by the application code on the prior run, when a bootloader reboot command is received.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DFU_Prepare_Reboot()

void DFU_Prepare_Reboot ( )

Set DFU reboot flag in RAM and reset system.

Returns
void

Resetting the system ensures the processor core is in a good state to load the bootloader on the next initialization. To run the bootloader, it is important that no interrupts are enabled, stack is cleared, processor is running from internal clock, and no hardware peripherals are active.

Here is the call graph for this function:

◆ ExecuteDFUBoot()

static void ExecuteDFUBoot ( )
static

Executes a DFU reboot.

Returns
void
Here is the caller graph for this function: