Application to generate firmware for USB Host Mass Storage Bootloader.
Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
#include <asf.h>
#include <string.h>
#include "conf_usb_host.h"
#include "conf_bootloader.h"
#include "conf_uart_serial.h"
#include "main.h"
Macros | |
#define | APP_HEADER "ATMEL SAM D21 Firmware Generator for USB MSC BOOTLOADER\r\n" |
Console Strings. More... | |
#define | MSC_DELAY_SOF_COUNT 1000 |
#define | TASK_FAILED "FAIL\r\n" |
#define | TASK_PASSED "PASS\r\n" |
Functions | |
static void | console_init (void) |
Initializes the console output. More... | |
static void | firmware_gen_system_init (void) |
Initializes the device for the bootloader. More... | |
static void | generate_crc (void) |
Generate the CRC value for the firmware. More... | |
static bool | generate_firmware (void) |
Function to generate the final firmware. More... | |
int | main (void) |
Main function. More... | |
void | main_usb_connection_event (uhc_device_t *dev, bool b_present) |
Notify that a USB device has been connected or disconnected. More... | |
void | main_usb_sof_event (void) |
Notify that a SOF has been sent (each 1 ms) More... | |
Variables | |
COMPILER_WORD_ALIGNED volatile uint8_t | buffer [FLASH_BUFFER_SIZE] |
static DIR | file_dir |
static FIL | file_object1 |
static FIL | file_object2 |
static uint32_t | firmware_crc = 0 |
static FATFS | fs |
static char | input_file_name [] |
static volatile bool | lun_connected = false |
static char | output_file_name [] |
static TCHAR | root_directory [20] = {'0', ':', 0} |
static volatile uint32_t | sof_count = 0 |
struct usart_module | usart_instance |
#define APP_HEADER "ATMEL SAM D21 Firmware Generator for USB MSC BOOTLOADER\r\n" |
Console Strings.
Referenced by firmware_gen_system_init().
#define MSC_DELAY_SOF_COUNT 1000 |
Referenced by main().
#define TASK_FAILED "FAIL\r\n" |
Referenced by main().
#define TASK_PASSED "PASS\r\n" |
Referenced by main().
|
static |
Initializes the console output.
References usart_config::baudrate, CONF_STDIO_BAUDRATE, CONF_STDIO_MUX_SETTING, CONF_STDIO_PINMUX_PAD0, CONF_STDIO_PINMUX_PAD1, CONF_STDIO_PINMUX_PAD2, CONF_STDIO_PINMUX_PAD3, CONF_STDIO_USART_MODULE, usart_config::mux_setting, usart_config::pinmux_pad0, usart_config::pinmux_pad1, usart_config::pinmux_pad2, usart_config::pinmux_pad3, usart_enable(), and usart_get_config_defaults().
Referenced by firmware_gen_system_init().
|
static |
Initializes the device for the bootloader.
References APP_HEADER, console_init(), cpu_irq_enable, delay_ms, sleepmgr_init(), system_init(), and uhc_start().
Referenced by main().
|
static |
Generate the CRC value for the firmware.
References APP_CRC_POLYNOMIAL_TYPE, buffer, CRC_BEAT_SIZE_WORD, dma_crc_disable(), dma_crc_get_checksum(), dma_crc_get_config_defaults(), dma_crc_io_calculation(), dma_crc_io_enable(), f_close(), f_open(), f_read(), FA_OPEN_EXISTING, FA_READ, firmware_crc, FLASH_BUFFER_SIZE, input_file_name, dma_crc_config::size, and dma_crc_config::type.
Referenced by main().
|
static |
Function to generate the final firmware.
References APP_BINARY_OFFSET, APP_CRC_SIZE, APP_SIGNATURE, APP_SIGNATURE_SIZE, buffer, f_close(), f_lseek(), f_open(), f_read(), f_sync(), f_write(), FA_CREATE_ALWAYS, FA_OPEN_EXISTING, FA_READ, FA_WRITE, firmware_crc, FLASH_BUFFER_SIZE, FR_OK, input_file_name, and output_file_name.
Referenced by main().
int main | ( | void | ) |
Main function.
Execution starts here.
References APP_MAX_SIZE, cpu_irq_disable, f_close(), f_mount(), f_open(), f_opendir(), FA_OPEN_EXISTING, FA_READ, firmware_gen_system_init(), FR_OK, FIL::fsize, generate_crc(), generate_firmware(), input_file_name, lun_connected, MSC_DELAY_SOF_COUNT, output_file_name, root_directory, sof_count, TASK_FAILED, TASK_PASSED, uhc_stop(), and uhi_msc_mem_get_lun().
void main_usb_connection_event | ( | uhc_device_t * | dev, |
bool | b_present | ||
) |
Notify that a USB device has been connected or disconnected.
dev | Pointer on USB device information |
b_present | true, if the device has been connected |
References lun_connected, sof_count, and UNUSED.
void main_usb_sof_event | ( | void | ) |
Notify that a SOF has been sent (each 1 ms)
References sof_count.
COMPILER_WORD_ALIGNED volatile uint8_t buffer[FLASH_BUFFER_SIZE] |
Referenced by dma_crc_io_calculation(), generate_crc(), and generate_firmware().
|
static |
|
static |
|
static |
|
static |
Referenced by generate_crc(), and generate_firmware().
|
static |
Referenced by chk_mounted(), and f_mount().
|
static |
Referenced by generate_crc(), generate_firmware(), and main().
Referenced by main(), and main_usb_connection_event().
|
static |
Referenced by generate_firmware(), and main().
|
static |
Referenced by main(), main_usb_connection_event(), and main_usb_sof_event().
struct usart_module usart_instance |