summaryrefslogtreecommitdiffstats
path: root/lib/lufa/LUFA/Build/DMBS/DMBS/HID_EEPROM_Loader/HID_EEPROM_Loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lufa/LUFA/Build/DMBS/DMBS/HID_EEPROM_Loader/HID_EEPROM_Loader.c')
-rw-r--r--lib/lufa/LUFA/Build/DMBS/DMBS/HID_EEPROM_Loader/HID_EEPROM_Loader.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/lufa/LUFA/Build/DMBS/DMBS/HID_EEPROM_Loader/HID_EEPROM_Loader.c b/lib/lufa/LUFA/Build/DMBS/DMBS/HID_EEPROM_Loader/HID_EEPROM_Loader.c
new file mode 100644
index 000000000..35ea2d79b
--- /dev/null
+++ b/lib/lufa/LUFA/Build/DMBS/DMBS/HID_EEPROM_Loader/HID_EEPROM_Loader.c
@@ -0,0 +1,39 @@
+/*
+ DMBS Build System
+ Released into the public domain.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.fourwalledcubicle.com
+ */
+
+/** \file
+ *
+ * Special application to extract an EEPROM image stored in FLASH memory, and
+ * copy it to the device EEPROM. This application is designed to be used with
+ * the HID build system module of DMBS to program the EEPROM of a target device
+ * that uses the HID bootloader protocol, which does not have native EEPROM
+ * programming support.
+ */
+
+#include <avr/io.h>
+#include <avr/eeprom.h>
+#include <avr/pgmspace.h>
+
+/* References to the binary EEPROM data linked in the AVR's FLASH memory space */
+extern const char _binary_InputEEData_bin_start[];
+extern const char _binary_InputEEData_bin_end[];
+extern const char _binary_InputEEData_bin_size[];
+
+/* Friendly names for the embedded binary data stored in FLASH memory space */
+#define InputEEData _binary_InputEEData_bin_start
+#define InputEEData_size ((int)_binary_InputEEData_bin_size)
+
+int main(void)
+{
+ /* Copy out the embedded EEPROM data from FLASH to EEPROM memory space */
+ for (uint16_t i = 0; i < InputEEData_size; i++)
+ eeprom_update_byte((uint8_t*)i, pgm_read_byte(&InputEEData[i]));
+
+ /* Infinite loop once complete */
+ for (;;);
+}