aboutsummaryrefslogtreecommitdiffstats
path: root/Bootloaders/DFU
diff options
context:
space:
mode:
Diffstat (limited to 'Bootloaders/DFU')
-rw-r--r--Bootloaders/DFU/BootloaderAPITable.S19
-rw-r--r--Bootloaders/DFU/BootloaderDFU.txt6
2 files changed, 18 insertions, 7 deletions
diff --git a/Bootloaders/DFU/BootloaderAPITable.S b/Bootloaders/DFU/BootloaderAPITable.S
index 7f015f20a..b1d1b0571 100644
--- a/Bootloaders/DFU/BootloaderAPITable.S
+++ b/Bootloaders/DFU/BootloaderAPITable.S
@@ -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
diff --git a/Bootloaders/DFU/BootloaderDFU.txt b/Bootloaders/DFU/BootloaderDFU.txt
index 94657f355..f7f5ee9a8 100644
--- a/Bootloaders/DFU/BootloaderDFU.txt
+++ b/Bootloaders/DFU/BootloaderDFU.txt
@@ -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.