From 2304a730508331b3d71c5c37602201b5b065b4a4 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 12 Oct 2014 16:58:42 +1100 Subject: Improve bootloader documentation. --- Bootloaders/MassStorage/BootloaderAPI.h | 24 +++++++++++++++++++++++ Bootloaders/MassStorage/BootloaderAPITable.S | 4 ++-- Bootloaders/MassStorage/BootloaderMassStorage.txt | 23 +--------------------- Bootloaders/MassStorage/doxyfile | 2 +- 4 files changed, 28 insertions(+), 25 deletions(-) (limited to 'Bootloaders/MassStorage') diff --git a/Bootloaders/MassStorage/BootloaderAPI.h b/Bootloaders/MassStorage/BootloaderAPI.h index 0f0cd7040..56748b723 100644 --- a/Bootloaders/MassStorage/BootloaderAPI.h +++ b/Bootloaders/MassStorage/BootloaderAPI.h @@ -50,6 +50,30 @@ #define AUX_BOOT_SECTION #endif + /* User Application API: */ + /** [User Application API] */ + #define BOOTLOADER_API_TABLE_SIZE 32 + #define BOOTLOADER_API_TABLE_START ((FLASHEND + 1UL) - BOOTLOADER_API_TABLE_SIZE) + #define BOOTLOADER_API_CALL(Index) (void*)((BOOTLOADER_API_TABLE_START + (Index * 2)) / 2) + + void (*BootAPI_ErasePage)(uint32_t Address) = BOOTLOADER_API_CALL(0); + void (*BootAPI_WritePage)(uint32_t Address) = BOOTLOADER_API_CALL(1); + void (*BootAPI_FillWord)(uint32_t Address, uint16_t Word) = BOOTLOADER_API_CALL(2); + uint8_t (*BootAPI_ReadSignature)(uint16_t Address) = BOOTLOADER_API_CALL(3); + uint8_t (*BootAPI_ReadFuse)(uint16_t Address) = BOOTLOADER_API_CALL(4); + uint8_t (*BootAPI_ReadLock)(void) = BOOTLOADER_API_CALL(5); + void (*BootAPI_WriteLock)(uint8_t LockBits) = BOOTLOADER_API_CALL(6); + + #define BOOTLOADER_MAGIC_SIGNATURE_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 2)) + #define BOOTLOADER_MAGIC_SIGNATURE 0xDCFB + + #define BOOTLOADER_CLASS_SIGNATURE_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 4)) + #define BOOTLOADER_CDC_SIGNATURE 0xDF30 + + #define BOOTLOADER_ADDRESS_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 8)) + #define BOOTLOADER_ADDRESS_LENGTH 4 + /** [User Application API] */ + /* Function Prototypes: */ void BootloaderAPI_ErasePage(const uint32_t Address); void BootloaderAPI_WritePage(const uint32_t Address); diff --git a/Bootloaders/MassStorage/BootloaderAPITable.S b/Bootloaders/MassStorage/BootloaderAPITable.S index 6844d4b01..02a30479e 100644 --- a/Bootloaders/MassStorage/BootloaderAPITable.S +++ b/Bootloaders/MassStorage/BootloaderAPITable.S @@ -98,5 +98,5 @@ BootloaderAPI_JumpTable: BootloaderAPI_Signatures: .long BOOT_START_ADDR ; Start address of the bootloader - .word 0xDF30 ; Signature for the MS class bootloader, V1 - .word 0xDCFB ; Signature for a LUFA class bootloader + .word 0xDF30 ; Signature for the MS class bootloader, V1 + .word 0xDCFB ; Signature for a LUFA class bootloader diff --git a/Bootloaders/MassStorage/BootloaderMassStorage.txt b/Bootloaders/MassStorage/BootloaderMassStorage.txt index 190ff4a3e..ab77c5d7d 100644 --- a/Bootloaders/MassStorage/BootloaderMassStorage.txt +++ b/Bootloaders/MassStorage/BootloaderMassStorage.txt @@ -111,28 +111,7 @@ * By default, the bootloader API jump table is located 32 bytes from the end of the device's FLASH memory, and follows the * following layout: * - * \code - * #define BOOTLOADER_API_TABLE_SIZE 32 - * #define BOOTLOADER_API_TABLE_START ((FLASHEND + 1UL) - BOOTLOADER_API_TABLE_SIZE) - * #define BOOTLOADER_API_CALL(Index) (void*)((BOOTLOADER_API_TABLE_START + (Index * 2)) / 2) - * - * void (*BootloaderAPI_ErasePage)(uint32_t Address) = BOOTLOADER_API_CALL(0); - * void (*BootloaderAPI_WritePage)(uint32_t Address) = BOOTLOADER_API_CALL(1); - * void (*BootloaderAPI_FillWord)(uint32_t Address, uint16_t Word) = BOOTLOADER_API_CALL(2); - * uint8_t (*BootloaderAPI_ReadSignature)(uint16_t Address) = BOOTLOADER_API_CALL(3); - * uint8_t (*BootloaderAPI_ReadFuse)(uint16_t Address) = BOOTLOADER_API_CALL(4); - * uint8_t (*BootloaderAPI_ReadLock)(void) = BOOTLOADER_API_CALL(5); - * void (*BootloaderAPI_WriteLock)(uint8_t LockBits) = BOOTLOADER_API_CALL(6); - * - * #define BOOTLOADER_MAGIC_SIGNATURE_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 2)) - * #define BOOTLOADER_MAGIC_SIGNATURE 0xDCFB - * - * #define BOOTLOADER_CLASS_SIGNATURE_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 4)) - * #define BOOTLOADER_MASS_STORAGE_SIGNATURE 0xDF30 - * - * #define BOOTLOADER_ADDRESS_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 8)) - * #define BOOTLOADER_ADDRESS_LENGTH 4 - * \endcode + * \snippet BootloaderAPI.h User Application API * * From the application the API support of the bootloader can be detected by reading the FLASH memory bytes located at address * \c BOOTLOADER_MAGIC_SIGNATURE_START and comparing them to the value \c BOOTLOADER_MAGIC_SIGNATURE. The class of bootloader diff --git a/Bootloaders/MassStorage/doxyfile b/Bootloaders/MassStorage/doxyfile index 9e816908e..6f8bf9e30 100644 --- a/Bootloaders/MassStorage/doxyfile +++ b/Bootloaders/MassStorage/doxyfile @@ -834,7 +834,7 @@ EXCLUDE_SYMBOLS = __* \ # that contain example code fragments that are included (see the \include # command). -EXAMPLE_PATH = +EXAMPLE_PATH = . # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -- cgit v1.2.3