Commit 43a33509 authored by Dean Camera's avatar Dean Camera
Browse files

Add API support signature to the CDC and DFU class bootloaders, so that the...

Add API support signature to the CDC and DFU class bootloaders, so that the application can detect the bootloader's API support.
parent 3dacb73a
......@@ -71,4 +71,3 @@ void BootloaderAPI_WriteLock(const uint8_t LockBits)
{
boot_lock_bits_set_safe(LockBits);
}
......@@ -32,12 +32,17 @@
.section .apitable, "ax"
.org 0
; API function jump table
.global BootloaderAPI_JumpTable
BootloaderAPI_JumpTable:
jmp BootloaderAPI_ErasePage
jmp BootloaderAPI_WritePage
jmp BootloaderAPI_FillWord
jmp BootloaderAPI_ReadSignature
jmp BootloaderAPI_ReadFuse
jmp BootloaderAPI_ReadLock
jmp BootloaderAPI_WriteLock
rjmp BootloaderAPI_ErasePage
rjmp BootloaderAPI_WritePage
rjmp BootloaderAPI_FillWord
rjmp BootloaderAPI_ReadSignature
rjmp BootloaderAPI_ReadFuse
rjmp BootloaderAPI_ReadLock
rjmp BootloaderAPI_WriteLock
; Bootloader table signature
.org 30
.word 0xDCFB
......@@ -103,8 +103,15 @@
* uint8_t (*BootloaderAPI_ReadFuse)(uint16_t Address) = BOOTLOADER_API_START(4);
* uint8_t (*BootloaderAPI_ReadLock)(void) = BOOTLOADER_API_START(5);
* void (*BootloaderAPI_WriteLock)(uint8_t LockBits) = BOOTLOADER_API_START(6);
*
* #define BOOTLOADER_SIG_START (FLASHEND - 32)
* #define BOOTLOADER_SIGNATURE 0xDCFB
* \endcode
*
* Bootloaders reporting a device release revision number of 1.00 or greater are bootloader API enabled. From the application
* the API support of the bootloader can be detected by reading the FLASH memory bytes located at address \c BOOTLOADER_SIG_START
* and comparing them to the value \c BOOTLOADER_SIGNATURE.
*
* \section Sec_Options Project Options
*
* The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
......
......@@ -55,7 +55,7 @@ const USB_Descriptor_Device_t DeviceDescriptor =
.VendorID = 0x03EB,
.ProductID = 0x204A,
.ReleaseNumber = VERSION_BCD(00.01),
.ReleaseNumber = VERSION_BCD(01.00),
.ManufacturerStrIndex = NO_DESCRIPTOR,
.ProductStrIndex = 0x01,
......
......@@ -32,12 +32,17 @@
.section .apitable, "ax"
.org 0
; API function jump table
.global BootloaderAPI_JumpTable
BootloaderAPI_JumpTable:
jmp BootloaderAPI_ErasePage
jmp BootloaderAPI_WritePage
jmp BootloaderAPI_FillWord
jmp BootloaderAPI_ReadSignature
jmp BootloaderAPI_ReadFuse
jmp BootloaderAPI_ReadLock
jmp BootloaderAPI_WriteLock
rjmp BootloaderAPI_ErasePage
rjmp BootloaderAPI_WritePage
rjmp BootloaderAPI_FillWord
rjmp BootloaderAPI_ReadSignature
rjmp BootloaderAPI_ReadFuse
rjmp BootloaderAPI_ReadLock
rjmp BootloaderAPI_WriteLock
; Bootloader table signature
.org 30
.word 0xDCFB
......@@ -108,8 +108,14 @@
* uint8_t (*BootloaderAPI_ReadFuse)(uint16_t Address) = BOOTLOADER_API_START(4);
* uint8_t (*BootloaderAPI_ReadLock)(void) = BOOTLOADER_API_START(5);
* void (*BootloaderAPI_WriteLock)(uint8_t LockBits) = BOOTLOADER_API_START(6);
*
* #define BOOTLOADER_SIG_START (FLASHEND - 32)
* #define BOOTLOADER_SIGNATURE 0xDCFB
* \endcode
*
* From the application the API support of the bootloader can be detected by reading the FLASH memory bytes located at address
* \c BOOTLOADER_SIG_START and comparing them to the value \c BOOTLOADER_SIGNATURE.
*
* \section Sec_Options Project Options
*
* The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
......
......@@ -31,6 +31,7 @@
* - Altered the Mass Storage Host class driver so that SCSI data STALLs from the attached device can be recovered from automatically without
* having to reset the Mass Storage interface
* - USB_CONFIG_ATTR_BUSPOWERED constant renamed to USB_CONFIG_ATTR_RESERVED, as this was misnamed (thanks to NXP Semiconductors)
* - Reordered board name definition indexes so that a mispelled BOARD compile option will default to BOARD_USER rather than BOARD_USBKEY
* - Library Applications:
* - Altered the Mass Storage Host LowLevel demo so that SCSI data STALLs from the attached device can be recovered from automatically without
* having to reset the Mass Storage interface
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment