diff --git a/Fred_bootloader/Fred_bootloader.atsuo b/Fred_bootloader/Fred_bootloader.atsuo index 39cc6c1d7df5106435dba4a53aea01817e58cbe8..f1338bb3e33f7d314fea66243f8bcdd6a1e1252a 100644 Binary files a/Fred_bootloader/Fred_bootloader.atsuo and b/Fred_bootloader/Fred_bootloader.atsuo differ diff --git a/Fred_bootloader/Fred_bootloader.cproj b/Fred_bootloader/Fred_bootloader.cproj index 464b4b72721955c98e08aa0de167a7cb436f6f16..fb8f8758afe47910dbccb82b9033e391d4f51db8 100644 --- a/Fred_bootloader/Fred_bootloader.cproj +++ b/Fred_bootloader/Fred_bootloader.cproj @@ -28,83 +28,83 @@ <eraseonlaunchrule>0</eraseonlaunchrule> <AsfFrameworkConfig> <framework-data> - <options> - <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" /> - <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" /> - <option id="common.services.ioport" value="Add" config="" content-id="Atmel.ASF" /> - <option id="common.services.basic.serial" value="Add" config="" content-id="Atmel.ASF" /> - <option id="common.utils.interrupt" value="Add" config="" content-id="Atmel.ASF" /> - <option id="xmega.drivers.nvm" value="Add" config="" content-id="Atmel.ASF" /> - <option id="xmega.drivers.tc" value="Add" config="" content-id="Atmel.ASF" /> - <option id="xmega.drivers.usart" value="Add" config="" content-id="Atmel.ASF" /> - <option id="xmega.drivers.wdt" value="Add" config="" content-id="Atmel.ASF" /> - <option id="xmega.drivers.pmic" value="Add" config="" content-id="Atmel.ASF" /> - </options> - <configurations /> - <files> - <file path="src/main.c" framework="" version="" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" /> - <file path="src/config/conf_board.h" framework="" version="" source="common/applications/user_application/user_board/config/conf_board.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/boards/board.h" framework="" version="" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/boards/user_board/init.c" framework="" version="" source="common/boards/user_board/init.c" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/boards/user_board/user_board.h" framework="" version="" source="common/boards/user_board/user_board.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/utils/interrupt.h" framework="" version="" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/utils/interrupt/interrupt_avr8.h" framework="" version="" source="common/utils/interrupt/interrupt_avr8.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/utils/make/Makefile.avr.in" framework="" version="" source="common/utils/make/Makefile.avr.in" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/utils/parts.h" framework="" version="" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/utils/assembler.h" framework="" version="" source="xmega/utils/assembler.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/utils/assembler/gas.h" framework="" version="" source="xmega/utils/assembler/gas.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/utils/bit_handling/clz_ctz.h" framework="" version="" source="xmega/utils/bit_handling/clz_ctz.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/utils/compiler.h" framework="" version="" source="xmega/utils/compiler.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/utils/preprocessor/mrepeat.h" framework="" version="" source="xmega/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/utils/preprocessor/preprocessor.h" framework="" version="" source="xmega/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/utils/preprocessor/stringz.h" framework="" version="" source="xmega/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/utils/preprocessor/tpaste.h" framework="" version="" source="xmega/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/utils/progmem.h" framework="" version="" source="xmega/utils/progmem.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/utils/status_codes.h" framework="" version="" source="xmega/utils/status_codes.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/cpu/ccp.s" framework="" version="3.19.0" source="xmega\drivers\cpu\ccp.s" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/cpu/xmega_reset_cause.h" framework="" version="3.19.0" source="xmega\drivers\cpu\xmega_reset_cause.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/cpu/ccp.h" framework="" version="3.19.0" source="xmega\drivers\cpu\ccp.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/nvm/nvm.c" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm.c" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/nvm/nvm_asm.s" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm_asm.s" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/nvm/nvm.h" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/pmic/pmic.h" framework="" version="3.19.0" source="xmega\drivers\pmic\pmic.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/wdt/wdt.c" framework="" version="3.19.0" source="xmega\drivers\wdt\wdt.c" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/wdt/wdt.h" framework="" version="3.19.0" source="xmega\drivers\wdt\wdt.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/clock/xmega/sysclk.c" framework="" version="3.19.0" source="common\services\clock\xmega\sysclk.c" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/clock/pll.h" framework="" version="3.19.0" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/clock/genclk.h" framework="" version="3.19.0" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/clock/osc.h" framework="" version="3.19.0" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/clock/xmega/pll.h" framework="" version="3.19.0" source="common\services\clock\xmega\pll.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/clock/xmega/sysclk.h" framework="" version="3.19.0" source="common\services\clock\xmega\sysclk.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/clock/xmega/osc.h" framework="" version="3.19.0" source="common\services\clock\xmega\osc.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/clock/sysclk.h" framework="" version="3.19.0" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/Config/conf_clock.h" framework="" version="3.19.0" source="common\services\clock\xmega\module_config_usb\conf_clock.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/ioport/xmega/ioport_compat.c" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport_compat.c" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/ioport/xmega/ioport_compat.h" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport_compat.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/ioport/xmega/ioport.h" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/ioport/ioport.h" framework="" version="3.19.0" source="common\services\ioport\ioport.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/serial/usart_serial.c" framework="" version="3.19.0" source="common\services\serial\usart_serial.c" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/serial/xmega_usart/usart_serial.h" framework="" version="3.19.0" source="common\services\serial\xmega_usart\usart_serial.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/serial/serial.h" framework="" version="3.19.0" source="common\services\serial\serial.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/Config/conf_usart_serial.h" framework="" version="3.19.0" source="common\services\serial\xmega_usart\module_config\conf_usart_serial.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/usart/usart.c" framework="" version="3.19.0" source="xmega\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/usart/usart.h" framework="" version="3.19.0" source="xmega\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/sleep/sleep.h" framework="" version="3.19.0" source="xmega\drivers\sleep\sleep.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/tc/tc.c" framework="" version="3.19.0" source="xmega\drivers\tc\tc.c" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/xmega/drivers/tc/tc.h" framework="" version="3.19.0" source="xmega\drivers\tc\tc.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/sleepmgr/xmega/sleepmgr.c" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\sleepmgr.c" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/sleepmgr/sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\sleepmgr.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/ASF/common/services/sleepmgr/xmega/sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\sleepmgr.h" changed="False" content-id="Atmel.ASF" /> - <file path="src/Config/conf_sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\module_config\conf_sleepmgr.h" changed="False" content-id="Atmel.ASF" /> - </files> - <documentation help="http://asf.atmel.com/docs/3.19.0/common.applications.user_application.user_board.xmegaau/html/index.html" /> - <offline-documentation help="" /> - <dependencies> - <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.6.0" /> - </dependencies> - <project id="common.applications.user_application.user_board.xmegaau" value="Add" config="" content-id="Atmel.ASF" /> - <board id="board.user_board.xmegaau" value="Add" config="" content-id="Atmel.ASF" /> -</framework-data> + <options> + <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" /> + <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" /> + <option id="common.services.ioport" value="Add" config="" content-id="Atmel.ASF" /> + <option id="common.services.basic.serial" value="Add" config="" content-id="Atmel.ASF" /> + <option id="common.utils.interrupt" value="Add" config="" content-id="Atmel.ASF" /> + <option id="xmega.drivers.nvm" value="Add" config="" content-id="Atmel.ASF" /> + <option id="xmega.drivers.tc" value="Add" config="" content-id="Atmel.ASF" /> + <option id="xmega.drivers.usart" value="Add" config="" content-id="Atmel.ASF" /> + <option id="xmega.drivers.wdt" value="Add" config="" content-id="Atmel.ASF" /> + <option id="xmega.drivers.pmic" value="Add" config="" content-id="Atmel.ASF" /> + </options> + <configurations /> + <files> + <file path="src/main.c" framework="" version="" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" /> + <file path="src/config/conf_board.h" framework="" version="" source="common/applications/user_application/user_board/config/conf_board.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/boards/board.h" framework="" version="" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/boards/user_board/init.c" framework="" version="" source="common/boards/user_board/init.c" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/boards/user_board/user_board.h" framework="" version="" source="common/boards/user_board/user_board.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/utils/interrupt.h" framework="" version="" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/utils/interrupt/interrupt_avr8.h" framework="" version="" source="common/utils/interrupt/interrupt_avr8.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/utils/make/Makefile.avr.in" framework="" version="" source="common/utils/make/Makefile.avr.in" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/utils/parts.h" framework="" version="" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/utils/assembler.h" framework="" version="" source="xmega/utils/assembler.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/utils/assembler/gas.h" framework="" version="" source="xmega/utils/assembler/gas.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/utils/bit_handling/clz_ctz.h" framework="" version="" source="xmega/utils/bit_handling/clz_ctz.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/utils/compiler.h" framework="" version="" source="xmega/utils/compiler.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/utils/preprocessor/mrepeat.h" framework="" version="" source="xmega/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/utils/preprocessor/preprocessor.h" framework="" version="" source="xmega/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/utils/preprocessor/stringz.h" framework="" version="" source="xmega/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/utils/preprocessor/tpaste.h" framework="" version="" source="xmega/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/utils/progmem.h" framework="" version="" source="xmega/utils/progmem.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/utils/status_codes.h" framework="" version="" source="xmega/utils/status_codes.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/cpu/ccp.s" framework="" version="3.19.0" source="xmega\drivers\cpu\ccp.s" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/cpu/xmega_reset_cause.h" framework="" version="3.19.0" source="xmega\drivers\cpu\xmega_reset_cause.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/cpu/ccp.h" framework="" version="3.19.0" source="xmega\drivers\cpu\ccp.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/nvm/nvm.c" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm.c" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/nvm/nvm_asm.s" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm_asm.s" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/nvm/nvm.h" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/pmic/pmic.h" framework="" version="3.19.0" source="xmega\drivers\pmic\pmic.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/wdt/wdt.c" framework="" version="3.19.0" source="xmega\drivers\wdt\wdt.c" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/wdt/wdt.h" framework="" version="3.19.0" source="xmega\drivers\wdt\wdt.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/clock/xmega/sysclk.c" framework="" version="3.19.0" source="common\services\clock\xmega\sysclk.c" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/clock/pll.h" framework="" version="3.19.0" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/clock/genclk.h" framework="" version="3.19.0" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/clock/osc.h" framework="" version="3.19.0" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/clock/xmega/pll.h" framework="" version="3.19.0" source="common\services\clock\xmega\pll.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/clock/xmega/sysclk.h" framework="" version="3.19.0" source="common\services\clock\xmega\sysclk.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/clock/xmega/osc.h" framework="" version="3.19.0" source="common\services\clock\xmega\osc.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/clock/sysclk.h" framework="" version="3.19.0" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/Config/conf_clock.h" framework="" version="3.19.0" source="common\services\clock\xmega\module_config_usb\conf_clock.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/ioport/xmega/ioport_compat.c" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport_compat.c" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/ioport/xmega/ioport_compat.h" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport_compat.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/ioport/xmega/ioport.h" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/ioport/ioport.h" framework="" version="3.19.0" source="common\services\ioport\ioport.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/serial/usart_serial.c" framework="" version="3.19.0" source="common\services\serial\usart_serial.c" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/serial/xmega_usart/usart_serial.h" framework="" version="3.19.0" source="common\services\serial\xmega_usart\usart_serial.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/serial/serial.h" framework="" version="3.19.0" source="common\services\serial\serial.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/Config/conf_usart_serial.h" framework="" version="3.19.0" source="common\services\serial\xmega_usart\module_config\conf_usart_serial.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/usart/usart.c" framework="" version="3.19.0" source="xmega\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/usart/usart.h" framework="" version="3.19.0" source="xmega\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/sleep/sleep.h" framework="" version="3.19.0" source="xmega\drivers\sleep\sleep.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/tc/tc.c" framework="" version="3.19.0" source="xmega\drivers\tc\tc.c" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/xmega/drivers/tc/tc.h" framework="" version="3.19.0" source="xmega\drivers\tc\tc.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/sleepmgr/xmega/sleepmgr.c" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\sleepmgr.c" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/sleepmgr/sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\sleepmgr.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/ASF/common/services/sleepmgr/xmega/sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\sleepmgr.h" changed="False" content-id="Atmel.ASF" /> + <file path="src/Config/conf_sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\module_config\conf_sleepmgr.h" changed="False" content-id="Atmel.ASF" /> + </files> + <documentation help="http://asf.atmel.com/docs/3.19.0/common.applications.user_application.user_board.xmegaau/html/index.html" /> + <offline-documentation help="" /> + <dependencies> + <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.6.0" /> + </dependencies> + <project id="common.applications.user_application.user_board.xmegaau" value="Add" config="" content-id="Atmel.ASF" /> + <board id="board.user_board.xmegaau" value="Add" config="" content-id="Atmel.ASF" /> + </framework-data> </AsfFrameworkConfig> <avrtool>com.atmel.avrdbg.tool.atmelice</avrtool> <com_atmel_avrdbg_tool_jtagice3plus> @@ -210,6 +210,8 @@ </avrgcc.assembler.general.IncludePaths> </AvrGcc> </ToolchainSettings> + <PreBuildEvent>call "$(MSBuildProjectDirectory)\..\..\..\Automation\SubWCRev.exe" "$(MSBuildProjectDirectory)\src" "$(MSBuildProjectDirectory)\..\..\..\Automation\version.h.in" "$(MSBuildProjectDirectory)\src\version.h" +</PreBuildEvent> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> <ToolchainSettings> @@ -290,6 +292,10 @@ <avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel> </AvrGcc> </ToolchainSettings> + <PreBuildEvent>call "$(MSBuildProjectDirectory)\..\..\..\Automation\SubWCRev.exe" "$(MSBuildProjectDirectory)\src" "$(MSBuildProjectDirectory)\..\..\..\Automation\version.h.in" "$(MSBuildProjectDirectory)\src\version.h" +</PreBuildEvent> + <PostBuildEvent> + </PostBuildEvent> </PropertyGroup> <ItemGroup> <Folder Include="src\" /> diff --git a/Fred_bootloader/Release/Fred_bootloader.hex b/Fred_bootloader/Release/Fred_bootloader.hex new file mode 100644 index 0000000000000000000000000000000000000000..a4f876db64d12bc6fc2c2727a3857e29bb18715f --- /dev/null +++ b/Fred_bootloader/Release/Fred_bootloader.hex @@ -0,0 +1,537 @@ +:020000022000DC +:10000000FDC000001CC100001AC1000018C10000A2 +:1000100016C1000014C1000012C1000010C1000090 +:100020000EC100000CC100000AC1000008C10000A0 +:1000300006C1000004C1000033C200005EC200001F +:1000400089C20000B4C20000DFC200000AC3000081 +:1000500035C3000060C300008BC30000B6C30000BE +:10006000EEC00000ECC00000EAC00000E8C00000E4 +:10007000E6C00000E4C00000E2C00000E0C00000F4 +:10008000DEC00000DCC00000DAC00000D8C0000004 +:10009000D6C00000D4C00000D2C00000D0C0000014 +:1000A000CEC00000CCC00000CAC00000C8C0000024 +:1000B000C6C00000C4C00000C2C0000075C500007A +:1000C000A0C50000CBC50000F6C5000021C6000099 +:1000D0004CC6000077C60000A2C60000CDC60000D6 +:1000E000F8C60000ACC00000AAC00000A8C0000014 +:1000F000A6C00000A4C00000A2C00000A0C0000074 +:100100009EC000009CC000009AC0000098C0000083 +:1001100096C0000094C0000092C0000090C0000093 +:100120008EC000008CC000008AC0000088C00000A3 +:1001300086C0000077C30000A2C30000CDC300004A +:10014000F8C3000023C400004EC4000079C40000BE +:10015000A4C40000CFC40000FAC4000070C00000B6 +:100160006EC000006CC000006AC0000068C00000E3 +:1001700066C0000064C0000062C0000060C00000F3 +:100180005EC000005CC000005AC0000058C0000003 +:1001900056C0000054C0000052C0000050C0000013 +:1001A0004EC000004CC000004AC0000048C0000023 +:1001B000BDC60000E8C6000013C700003EC700002F +:1001C00069C7000094C700003AC0000038C00000B2 +:1001D00036C0000034C0000032C0000030C0000053 +:1001E0002EC000002CC000002AC0000028C0000063 +:1001F00026C0000024C0000022C0000011241FBE41 +:10020000CFEFCDBFDFE3DEBF01E00CBF10E2A0E027 +:10021000B0E2EAECF0E202E00BBF02C007900D9200 +:10022000A837B107D9F722E2A8E7B0E201C01D92D2 +:10023000AE3CB207E1F70F94F10C0D944110E0CE03 +:1002400082E391E0909307062FEF33EF41E02150D6 +:1002500030404040E1F700C00000815099F7089518 +:10026000E0EAF0E082818F7B98ED94BF82831CBE30 +:10027000E0E0F0E01994909179209827909379200C +:10028000089565E58FE390E00F94780F2FEF87EEE8 +:1002900093E0215080409040E1F700C000000895B5 +:1002A0008FE390E00F94680F91E0853509F490E0BA +:1002B000892F089580EA9BE00F94FA0991E020913C +:1002C0007920821390E0892F089564E48FE390E011 +:1002D0000D94780FF12C10E080917B228130E9F0B1 +:1002E00038F0823009F43BC08330C1F7B9DFF4CF76 +:1002F000D7DF81110EC087E090E20F94800B8FE36F +:1003000090E00F94680F682F80EA9BE00F94F20949 +:10031000A7DF81E080937B22DFCF81E290E20F9420 +:10032000800B80EA9BE00F94FA09C82F8230C9F74E +:1003300080EA9BE00F94FA098093782061E080EADC +:100340009BE00F94F2096091782080EA9BE00F9483 +:10035000F2090F94340BB9DFC0937B22BDCF10920A +:10036000792080EA9BE00F94FA0990917820891314 +:10037000F8CF80EA9BE00F94FA09C82F7CDFC330E6 +:1003800009F051C080EA9BE00F94FA0980937A2229 +:1003900072DFC0E0D0E0E12C80EA9BE00F94FA0924 +:1003A000082F69DFF11012C0013021F42197FF24DA +:1003B000F39413C08EEF800F843040F465E580EA3B +:1003C0009BE00F94F2091F5FEE24E394FE01E658D0 +:1003D000FF4D00830F94340BF12C2196C11582E060 +:1003E000D807D4F267DF8823A1F060917A2270E009 +:1003F000762F6627770F882777FD8095982F01E065 +:1004000020E032E04AE750E20F94E80BEE2009F1D9 +:1004100027C066E680EA9BE0E5D76091792080EA14 +:100420009BE0E0D714C0C43039F444DF882379F06E +:1004300083E080937B220DC0C53049F43BDF8823E5 +:1004400031F061E089E790E00F948D0C02C01F5FEE +:1004500007C061E080EA9BE0C5D70F94340B3CCF26 +:10046000143128F462E080EA9BE0BCD735CF63E02A +:1004700080EA9BE0B7D782E490E20F94800B61E0C2 +:1004800089E790E00F948D0C27CF8FE390E00F94D5 +:10049000680F9BEA980F81E0923008F480E008959D +:1004A0001F920F920FB60F9211240BB60F922F933B +:1004B0003F934F935F936F937F938F939F93AF93EC +:1004C000BF93EF93FF93E091C222F091C322309744 +:1004D00009F01995FF91EF91BF91AF919F918F9185 +:1004E0007F916F915F914F913F912F910F900BBE34 +:1004F0000F900FBE0F901F9018951F920F920FB67E +:100500000F9211240BB60F922F933F934F935F934B +:100510006F937F938F939F93AF93BF93EF93FF93CB +:10052000E091C022F091C122309709F01995FF9116 +:10053000EF91BF91AF919F918F917F916F915F915B +:100540004F913F912F910F900BBE0F900FBE0F90C8 +:100550001F9018951F920F920FB60F9211240BB691 +:100560000F922F933F934F935F936F937F938F934C +:100570009F93AF93BF93EF93FF93E091BE22F091CF +:10058000BF22309709F01995FF91EF91BF91AF917C +:100590009F918F917F916F915F914F913F912F919B +:1005A0000F900BBE0F900FBE0F901F9018951F92CB +:1005B0000F920FB60F9211240BB60F922F933F9309 +:1005C0004F935F936F937F938F939F93AF93BF935B +:1005D000EF93FF93E091BC22F091BD22309709F098 +:1005E0001995FF91EF91BF91AF919F918F917F915D +:1005F0006F915F914F913F912F910F900BBE0F9094 +:100600000FBE0F901F9018951F920F920FB60F926A +:1006100011240BB60F922F933F934F935F936F93D9 +:100620007F938F939F93AF93BF93EF93FF93E0914B +:10063000BA22F091BB22309709F01995FF91EF9102 +:10064000BF91AF919F918F917F916F915F914F91EA +:100650003F912F910F900BBE0F900FBE0F901F90E8 +:1006600018951F920F920FB60F9211240BB60F928E +:100670002F933F934F935F936F937F938F939F93AA +:10068000AF93BF93EF93FF93E091B822F091B9221B +:10069000309709F01995FF91EF91BF91AF919F911C +:1006A0008F917F916F915F914F913F912F910F901B +:1006B0000BBE0F900FBE0F901F9018951F920F92B8 +:1006C0000FB60F9211240BB60F922F933F934F93B7 +:1006D0005F936F937F938F939F93AF93BF93EF93AA +:1006E000FF93E091B622F091B722309709F0199567 +:1006F000FF91EF91BF91AF919F918F917F916F91FA +:100700005F914F913F912F910F900BBE0F900FBEB5 +:100710000F901F9018951F920F920FB60F921124F1 +:100720000BB60F922F933F934F935F936F937F93EB +:100730008F939F93AF93BF93EF93FF93E091B42276 +:10074000F091B522309709F01995FF91EF91BF9183 +:10075000AF919F918F917F916F915F914F913F9159 +:100760002F910F900BBE0F900FBE0F901F901895FA +:100770001F920F920FB60F9211240BB60F922F9368 +:100780003F934F935F936F937F938F939F93AF9319 +:10079000BF93EF93FF93E091B222F091B322309791 +:1007A00009F01995FF91EF91BF91AF919F918F91B2 +:1007B0007F916F915F914F913F912F910F900BBE61 +:1007C0000F900FBE0F901F9018951F920F920FB6AB +:1007D0000F9211240BB60F922F933F934F935F9379 +:1007E0006F937F938F939F93AF93BF93EF93FF93F9 +:1007F000E091B022F091B122309709F01995FF9164 +:10080000EF91BF91AF919F918F917F916F915F9188 +:100810004F913F912F910F900BBE0F900FBE0F90F5 +:100820001F9018951F920F920FB60F9211240BB6BE +:100830000F922F933F934F935F936F937F938F9379 +:100840009F93AF93BF93EF93FF93E091AE22F0910C +:10085000AF22309709F01995FF91EF91BF91AF91B9 +:100860009F918F917F916F915F914F913F912F91C8 +:100870000F900BBE0F900FBE0F901F9018951F92F8 +:100880000F920FB60F9211240BB60F922F933F9336 +:100890004F935F936F937F938F939F93AF93BF9388 +:1008A000EF93FF93E091AC22F091AD22309709F0E5 +:1008B0001995FF91EF91BF91AF919F918F917F918A +:1008C0006F915F914F913F912F910F900BBE0F90C1 +:1008D0000FBE0F901F9018951F920F920FB60F9298 +:1008E00011240BB60F922F933F934F935F936F9307 +:1008F0007F938F939F93AF93BF93EF93FF93E09179 +:10090000AA22F091AB22309709F01995FF91EF914F +:10091000BF91AF919F918F917F916F915F914F9117 +:100920003F912F910F900BBE0F900FBE0F901F9015 +:1009300018951F920F920FB60F9211240BB60F92BB +:100940002F933F934F935F936F937F938F939F93D7 +:10095000AF93BF93EF93FF93E091A822F091A92268 +:10096000309709F01995FF91EF91BF91AF919F9149 +:100970008F917F916F915F914F913F912F910F9048 +:100980000BBE0F900FBE0F901F9018951F920F92E5 +:100990000FB60F9211240BB60F922F933F934F93E4 +:1009A0005F936F937F938F939F93AF93BF93EF93D7 +:1009B000FF93E091A622F091A722309709F01995B4 +:1009C000FF91EF91BF91AF919F918F917F916F9127 +:1009D0005F914F913F912F910F900BBE0F900FBEE3 +:1009E0000F901F9018951F920F920FB60F9211241F +:1009F0000BB60F922F933F934F935F936F937F9319 +:100A00008F939F93AF93BF93EF93FF93E091A422B3 +:100A1000F091A522309709F01995FF91EF91BF91C0 +:100A2000AF919F918F917F916F915F914F913F9186 +:100A30002F910F900BBE0F900FBE0F901F90189527 +:100A40001F920F920FB60F9211240BB60F922F9395 +:100A50003F934F935F936F937F938F939F93AF9346 +:100A6000BF93EF93FF93E091A222F091A3223097DE +:100A700009F01995FF91EF91BF91AF919F918F91DF +:100A80007F916F915F914F913F912F910F900BBE8E +:100A90000F900FBE0F901F9018951F920F920FB6D8 +:100AA0000F9211240BB60F922F933F934F935F93A6 +:100AB0006F937F938F939F93AF93BF93EF93FF9326 +:100AC000E091A022F091A122309709F01995FF91B1 +:100AD000EF91BF91AF919F918F917F916F915F91B6 +:100AE0004F913F912F910F900BBE0F900FBE0F9023 +:100AF0001F9018951F920F920FB60F9211240BB6EC +:100B00000F922F933F934F935F936F937F938F93A6 +:100B10009F93AF93BF93EF93FF93E0919E22F09149 +:100B20009F22309709F01995FF91EF91BF91AF91F6 +:100B30009F918F917F916F915F914F913F912F91F5 +:100B40000F900BBE0F900FBE0F901F9018951F9225 +:100B50000F920FB60F9211240BB60F922F933F9363 +:100B60004F935F936F937F938F939F93AF93BF93B5 +:100B7000EF93FF93E0919C22F0919D22309709F032 +:100B80001995FF91EF91BF91AF919F918F917F91B7 +:100B90006F915F914F913F912F910F900BBE0F90EE +:100BA0000FBE0F901F9018951F920F920FB60F92C5 +:100BB00011240BB60F922F933F934F935F936F9334 +:100BC0007F938F939F93AF93BF93EF93FF93E091A6 +:100BD0009A22F0919B22309709F01995FF91EF919D +:100BE000BF91AF919F918F917F916F915F914F9145 +:100BF0003F912F910F900BBE0F900FBE0F901F9043 +:100C000018951F920F920FB60F9211240BB60F92E8 +:100C10002F933F934F935F936F937F938F939F9304 +:100C2000AF93BF93EF93FF93E0919822F0919922B5 +:100C3000309709F01995FF91EF91BF91AF919F9176 +:100C40008F917F916F915F914F913F912F910F9075 +:100C50000BBE0F900FBE0F901F9018951F920F9212 +:100C60000FB60F9211240BB60F922F933F934F9311 +:100C70005F936F937F938F939F93AF93BF93EF9304 +:100C8000FF93E0919622F0919722309709F0199501 +:100C9000FF91EF91BF91AF919F918F917F916F9154 +:100CA0005F914F913F912F910F900BBE0F900FBE10 +:100CB0000F901F9018951F920F920FB60F9211244C +:100CC0000BB60F922F933F934F935F936F937F9346 +:100CD0008F939F93AF93BF93EF93FF93E0919422F1 +:100CE000F0919522309709F01995FF91EF91BF91FE +:100CF000AF919F918F917F916F915F914F913F91B4 +:100D00002F910F900BBE0F900FBE0F901F90189554 +:100D10001F920F920FB60F9211240BB60F922F93C2 +:100D20003F934F935F936F937F938F939F93AF9373 +:100D3000BF93EF93FF93E0919222F091932230972B +:100D400009F01995FF91EF91BF91AF919F918F910C +:100D50007F916F915F914F913F912F910F900BBEBB +:100D60000F900FBE0F901F9018951F920F920FB605 +:100D70000F9211240BB60F922F933F934F935F93D3 +:100D80006F937F938F939F93AF93BF93EF93FF9353 +:100D9000E0919022F0919122309709F01995FF91FE +:100DA000EF91BF91AF919F918F917F916F915F91E3 +:100DB0004F913F912F910F900BBE0F900FBE0F9050 +:100DC0001F9018951F920F920FB60F9211240BB619 +:100DD0000F922F933F934F935F936F937F938F93D4 +:100DE0009F93AF93BF93EF93FF93E0918E22F09187 +:100DF0008F22309709F01995FF91EF91BF91AF9134 +:100E00009F918F917F916F915F914F913F912F9122 +:100E10000F900BBE0F900FBE0F901F9018951F9252 +:100E20000F920FB60F9211240BB60F922F933F9390 +:100E30004F935F936F937F938F939F93AF93BF93E2 +:100E4000EF93FF93E0918C22F0918D22309709F07F +:100E50001995FF91EF91BF91AF919F918F917F91E4 +:100E60006F915F914F913F912F910F900BBE0F901B +:100E70000FBE0F901F9018951F920F920FB60F92F2 +:100E800011240BB60F922F933F934F935F936F9361 +:100E90007F938F939F93AF93BF93EF93FF93E091D3 +:100EA0008A22F0918B22309709F01995FF91EF91EA +:100EB000BF91AF919F918F917F916F915F914F9172 +:100EC0003F912F910F900BBE0F900FBE0F901F9070 +:100ED00018951F920F920FB60F9211240BB60F9216 +:100EE0002F933F934F935F936F937F938F939F9332 +:100EF000AF93BF93EF93FF93E0918822F091892203 +:100F0000309709F01995FF91EF91BF91AF919F91A3 +:100F10008F917F916F915F914F913F912F910F90A2 +:100F20000BBE0F900FBE0F901F9018951F920F923F +:100F30000FB60F9211240BB60F922F933F934F933E +:100F40005F936F937F938F939F93AF93BF93EF9331 +:100F5000FF93E0918622F0918722309709F019954E +:100F6000FF91EF91BF91AF919F918F917F916F9181 +:100F70005F914F913F912F910F900BBE0F900FBE3D +:100F80000F901F9018951F920F920FB60F92112479 +:100F90000BB60F922F933F934F935F936F937F9373 +:100FA0008F939F93AF93BF93EF93FF93E09184222E +:100FB000F0918522309709F01995FF91EF91BF913B +:100FC000AF919F918F917F916F915F914F913F91E1 +:100FD0002F910F900BBE0F900FBE0F901F90189582 +:100FE0001F920F920FB60F9211240BB60F922F93F0 +:100FF0003F934F935F936F937F938F939F93AF93A1 +:10100000BF93EF93FF93E0918222F0918322309778 +:1010100009F01995FF91EF91BF91AF919F918F9139 +:101020007F916F915F914F913F912F910F900BBEE8 +:101030000F900FBE0F901F9018951F920F920FB632 +:101040000F9211240BB60F922F933F934F935F9300 +:101050006F937F938F939F93AF93BF93EF93FF9380 +:10106000E0918022F0918122309709F01995FF914B +:10107000EF91BF91AF919F918F917F916F915F9110 +:101080004F913F912F910F900BBE0F900FBE0F907D +:101090001F9018951F920F920FB60F9211240BB646 +:1010A0000F922F933F934F935F936F937F938F9301 +:1010B0009F93AF93BF93EF93FF93E0917E22F091C4 +:1010C0007F22309709F01995FF91EF91BF91AF9171 +:1010D0009F918F917F916F915F914F913F912F9150 +:1010E0000F900BBE0F900FBE0F901F9018951F9280 +:1010F0000F920FB60F9211240BB60F922F933F93BE +:101100004F935F936F937F938F939F93AF93BF930F +:10111000EF93FF93E0917C22F0917D22309709F0CC +:101120001995FF91EF91BF91AF919F918F917F9111 +:101130006F915F914F913F912F910F900BBE0F9048 +:101140000FBE0F901F901895CF93CFB7F8948115CD +:1011500028E0920711F461E005C0803428E092078E +:1011600031F462E083E023D364E083E028C081159A +:1011700029E0920711F461E005C0803429E092076C +:1011800031F462E084E013D364E084E018C0811598 +:101190002AE0920711F461E005C080342AE092074A +:1011A00031F462E085E003D364E085E008C0811596 +:1011B0009B4071F461E086E0FAD264E086E0F7D209 +:1011C0009FB7F8948091C9228F5F8093C9229FBFF7 +:1011D000CFBFCF910895811528E0920729F460933D +:1011E000C2227093C3220895803428E0920729F424 +:1011F0006093B6227093B7220895811529E0920773 +:1012000029F46093AE227093AF220895803429E0D0 +:10121000920729F46093A2227093A3220895811566 +:101220002AE0920729F460939A2270939B220895F2 +:1012300080342AE0920729F460938E2270938F22E3 +:10124000089581159B4021F4609386227093872234 +:101250000895009709F4C5C0803C910511F460E140 +:1012600005C0811524E0920719F464E080E0B8C05D +:10127000803821E0920711F462E0F8CF811521E077 +:10128000920711F461E0F2CF803823E0920711F465 +:1012900061E00BC0803923E0920711F461E012C0D5 +:1012A000811522E0920719F462E081E099C0803450 +:1012B00022E0920711F462E005C0803223E0920739 +:1012C00019F464E082E08CC0811528E0920711F4E3 +:1012D00061E07FC0811529E0920711F461E06CC0E4 +:1012E00081152AE0920711F461E079C081152BE0A5 +:1012F000920711F461E053C0803428E0920711F4A2 +:1013000062E067C0803429E0920711F462E054C0C3 +:1013100080342AE0920711F462E061C0803928E04D +:10132000920711F464E055C0803929E0920711F466 +:1013300064E042C080392AE0920711F464E04FC0B3 +:1013400080392BE0920711F464E029C0803C28E04A +:10135000920711F468E03DC0803C29E0920711F447 +:1013600068E02AC0803C2AE0920711F468E037C0A8 +:10137000803A28E0920711F460E12BC0803A29E01E +:10138000920711F460E118C0803A2AE0920711F444 +:1013900060E125C0803A2BE0920719F460E186E015 +:1013A0001FC0803B28E0920711F460E212C0803B2E +:1013B00029E0920719F460E284E012C0803B2AE041 +:1013C000920711F460E20BC0803824E0920719F410 +:1013D00060E483E005C0803A944019F460E485E05D +:1013E000E6C10895FC01218125FFFCCF608380E0E8 +:1013F00090E00895FC01218127FFFCCF80810895B2 +:101400008F929F92AF92BF92CF92DF92EF92FF9214 +:101410000F931F93CF93DF93EC016A017B01480187 +:101420005901B901A801A3E07695679557954795AD +:10143000AA95D1F7D901C80116E1B695A795979558 +:1014400087951A95D1F72C8122FD08C0769567956E +:1014500057954795B695A795979587954C155D0532 +:101460006E057F0508F497C0C816D906EA06FB0684 +:1014700008F491C08C8182FD04C0CC0CDD1CEE1CF4 +:10148000FF1CC501B401A7019601F0D28FEF90E0D7 +:10149000A0E0B0E019EF281739074A075B0758F0BA +:1014A000880F991FAA1FBB1F1D3F0CF481601F5F8F +:1014B000173089F74BC017FF49C0D701C60103E0B9 +:1014C000880F991FAA1FBB1F0A95D1F7881A990A7E +:1014D000AA0ABB0A812F992787FD90951E3FE4F445 +:1014E0006DEF7FEF681B790BA501940104C0220FFB +:1014F000331F441F551F6A95D2F7CA01B90146012F +:101500005701B694A79497948794680D791D8A1D06 +:101510009B1DA701960118C09C012D5F3F4FD7016D +:10152000C60104C0880F991FAA1FBB1F2A95D2F7B6 +:101530009C01AD01BC01CD01969587957795679586 +:10154000680D791D8A1D9B1D91D21CC023E0210FBF +:10155000D701C60104C0880F991FAA1FBB1F2A9577 +:10156000D2F79C01AD01BC01CD0196958795779589 +:101570006795680D791D8A1D9B1D78D22150310910 +:1015800041095109832F8F701295107F812B8F8312 +:101590002E8381E001C080E0DF91CF911F910F91F8 +:1015A000FF90EF90DF90CF90BF90AF909F908F9083 +:1015B00008950F931F93CF93DF93EC018B0149DEC6 +:1015C0008D818F738D83F80184819581892B96811C +:1015D000992311F098E001C090E0892B8D83F801E8 +:1015E000408151816281738100E018E428EE31E08E +:1015F000CE0106DF9C8198609C839C8190619C83D6 +:10160000DF91CF911F910F9108958091C4228F5F38 +:101610008093C4228091C5229091C6220196809326 +:10162000C5229093C62281E08093C7229091C42264 +:10163000923121F4809307061092C4228091C52232 +:101640009091C622883C910571F480917B22823072 +:1016500030F40F944502811102C00F94410161E002 +:1016600089E790E05AC108951092C5221092C622CF +:10167000089580E098E068DD65E07BE080E098E038 +:10168000AADDE0E0F8E08181887F818384ED90E34A +:1016900086A397A386818C7F8683868181608683DB +:1016A0008081807F866080830895CF93DF93CDB75C +:1016B000DEB72797CDBFDEBF809104208D83809158 +:1016C00005208E83809106208F8380910020909149 +:1016D0000120A0910220B091032089839A83AB83DB +:1016E000BC8360E186E063D0BE016F5F7F4F80EA1C +:1016F0009BE05FDF2796CDBFDEBFDF91CF910895DE +:10170000CF93DF93EC016991662321F080EA9BE09F +:1017100069DEF9CFDF91CF910895FC0180E090E080 +:10172000262F30E0D901082E02C0B595A7950A945E +:10173000E2F7A0FF05C0DF01A80FB91F50965C9328 +:1017400001968830910571F740FF07C041FF02C044 +:10175000658301C0668361830895628308958FEF76 +:101760008093700080937100809372008093730067 +:101770008093740080937500809376009FB7F894EF +:10178000809150008260809350009FBF80915100F3 +:1017900081FFFCCF61E080E490E0BFD09FB7F89478 +:1017A000809150008E7F809350009FBF08959FB717 +:1017B000F894E82FF0E0E059FF4F60958081862390 +:1017C00080839FBF08958091CF0187FDFCCF08954E +:1017D0002F923F924F925F926F927F928F929F9241 +:1017E000AF92BF92CF92DF92EF92FF920F931F932F +:1017F000CF93DF9300D000D0CDB7DEB76B017C0173 +:101800001A012B833C830D834B015C018824E894EF +:1018100090F88B819C81892B09F469C0D4DF240165 +:10182000350100E011E020E03D81332351F06BBE33 +:10183000F2018791969189839A83019631F021E094 +:1018400004C08FEF9FEF89839A83EB81FC813097EF +:1018500069F1C414D504E604F70481F43197EB83ED +:10186000FC83FFEFCF1ADF0AEF0AFF0AF101819133 +:101870001F0189838B819C81892BC1F0D301C20117 +:101880000196A11DB11DC816D906EA06FB0671F422 +:10189000EB81FC813197EB83FC83FFEFCF1ADF0AEA +:1018A000EF0AFF0AF10181911F018A8349815A8160 +:1018B000C301B2012E83F6D3F2E04F0E511C611C1E +:1018C000711C015011092E810115110509F0ACCFD1 +:1018D000222319F078DF45E202C075DF44E2C5013A +:1018E000B401D1D332E0930EA11CB11C92CF269645 +:1018F000CDBFDEBFDF91CF911F910F91FF90EF9091 +:10190000DF90CF90BF90AF909F908F907F906F901F +:101910005F904F903F902F9008951BBEFC0128EDE3 +:1019200024BF60830895AB01982F96959695969560 +:10193000877061E070E001C0660F8A95EAF720E2E7 +:10194000929FC00111249A5FE8CE61E070E080E0D0 +:10195000EADF60E070E089E1E6DF60E070E088E106 +:10196000E2DF68E370E081E2DEDF68E370E080E2FE +:10197000DADF63E070E08BE2D6DF60E070E08AE2FD +:10198000D2DF61E070E082E1CEDF61E070E083E110 +:10199000CADF61E070E084E1C6DF61E070E085E10C +:1019A000C2DF61E070E08EE1BEDF63E070E087E1FE +:1019B000BADF61E070E08AE1B6DF60E070E08BE101 +:1019C000B2DF60E070E08CE1AEDF60E070E08DE1FE +:1019D000AADF60E070E08EE1A6DF60E070E08CE2FC +:1019E000A2CF0F931F93CF93DF93CDB7DEB7DA95D6 +:1019F000CDBFDEBFAADFB3DE00EA10E0F8018281CE +:101A0000806498ED94BF828334DE87E0F80182839E +:101A100082818F7782831182789447DE0F94200130 +:101A200081E0E0E0F6E087831F9286E18F931F92CA +:101A300080E18F9382E690E29F938F938E010F5FF8 +:101A40001F4F1F930F9334D0C8015ADE0F946A01C1 +:101A50000F943001CDBFDEBF80E090E0D395CDBFC5 +:101A6000DEBFDF91CF911F910F910895A1E21A2E51 +:101A7000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F32 +:101A8000A217B307E407F50720F0A21BB30BE40B82 +:101A9000F50B661F771F881F991F1A9469F76095C9 +:101AA0007095809590959B01AC01BD01CF01089583 +:101AB0000F931F93CF93DF93CDB7DEB72E97CDBF94 +:101AC000DEBF0E891F8986E08C8309831A838FEF1E +:101AD0009FE78D839E83AE01465E5F4F688D798D53 +:101AE000CE0101960DD0EF81F885E00FF11F108235 +:101AF0002E96CDBFDEBFDF91CF911F910F9108953C +:101B00002F923F924F925F926F927F928F929F920D +:101B1000AF92BF92CF92DF92EF92FF920F931F93FB +:101B2000CF93DF93CDB7DEB72C97CDBFDEBF7C015F +:101B30006B018A01FC0116821782838181FFB0C18B +:101B4000CE0101964C01F7019381F60193FD859139 +:101B500093FF81916F01882309F49EC1853239F486 +:101B600093FD859193FF81916F01853221F4B70137 +:101B700090E0F7D1E8CF512C312C20E02032A0F4B6 +:101B80008B3269F030F4803259F0833269F420618D +:101B90002CC08D3239F0803339F4216026C02260A8 +:101BA000246023C0286021C027FD27C030ED380FF6 +:101BB0003A3078F426FF06C0FAE05F9E300D11241B +:101BC000532E13C08AE0389E300D1124332E20622C +:101BD0000CC08E3221F426FD5FC1206406C08C3615 +:101BE00011F4206802C0883641F4F60193FD859116 +:101BF00093FF81916F018111C1CF982F9F7D9554E3 +:101C0000933028F40C5F1F4FFFE3F9830DC0833638 +:101C100031F0833771F0833509F057C021C0F801E6 +:101C2000808189830E5F1F4F44244394512C5401BB +:101C300014C03801F2E06F0E711CF801A080B18071 +:101C400026FF03C0652D70E002C06FEF7FEFC50176 +:101C50002C877CD12C0183012C852F77222E16C056 +:101C60003801F2E06F0E711CF801A080B18026FFF0 +:101C700003C0652D70E002C06FEF7FEFC5012C87B8 +:101C80005AD12C012C852068222E830123FC19C0F7 +:101C9000832D90E048165906A0F4B70180E290E049 +:101CA00060D13A94F5CFF50127FC859127FE81910B +:101CB0005F01B70190E055D131103A94F1E04F1A2D +:101CC00051084114510479F7DEC0843611F0893689 +:101CD00031F5F80127FF07C060817181828193810E +:101CE0000C5F1F4F08C060817181882777FD809548 +:101CF000982F0E5F1F4F2F76B22E97FF09C0909539 +:101D00008095709561957F4F8F4F9F4F2068B22EC1 +:101D10002AE030E0A40157D1A82EA81843C0853787 +:101D200029F42F7EB22E2AE030E025C0F22FF97F71 +:101D3000BF2E8F36C1F018F4883579F0ADC08037EA +:101D400019F0883721F0A8C02F2F2061B22EB4FEE1 +:101D50000DC08B2D8460B82E09C024FF0AC09F2FB0 +:101D60009660B92E06C028E030E005C020E130E0E2 +:101D700002C020E132E0F801B7FE07C06081718146 +:101D8000828193810C5F1F4F06C06081718180E06A +:101D900090E00E5F1F4FA40116D1A82EA818FB2DAE +:101DA000FF77BF2EB6FE0BC02B2D2E7FA51450F44F +:101DB000B4FE0AC0B2FC08C02B2D2E7E05C07A2CC2 +:101DC0002B2D03C07A2C01C0752C24FF0DC0FE0101 +:101DD000EA0DF11D8081803311F4297E09C022FFB4 +:101DE00006C07394739404C0822F867809F07394AC +:101DF00023FD12C020FF06C05A2C731418F4530C94 +:101E00005718732C731460F4B70180E290E02C87AC +:101E1000A8D073942C85F6CF731410F4371801C032 +:101E2000312C24FF11C0B70180E390E02C8799D0BA +:101E30002C8522FF16C021FF03C088E590E002C078 +:101E400088E790E0B7010CC0822F867851F021FD21 +:101E500002C080E201C08BE227FD8DE2B70190E075 +:101E600080D0A51430F4B70180E390E07AD05A9482 +:101E7000F8CFAA94F401EA0DF11D8081B70190E03A +:101E800070D0A110F6CF332009F45DCEB70180E207 +:101E900090E067D03A94F7CFF7018681978102C02E +:101EA0008FEF9FEF2C96CDBFDEBFDF91CF911F91BB +:101EB0000F91FF90EF90DF90CF90BF90AF909F90E9 +:101EC0008F907F906F905F904F903F902F900895EC +:101ED00003D0808199270895E0ECF1E0378537FD44 +:101EE000FDCF348538603487FC01E050F04F089511 +:101EF000262FE0ECF1E0378537FDFDCF3485377FC5 +:101F00003487378531FF09C036E3328738ED34BF77 +:101F100031E03387378537FDFDCF33E33287808368 +:101F200091831282248325E3228728ED31E024BFA8 +:101F3000338701960895FC010590615070400110AF +:101F4000D8F7809590958E0F9F1F0895FC016150E2 +:101F5000704001900110D8F7809590958E0F9F1FCB +:101F600008950F931F93CF93DF93182F092FEB0141 +:101F70008B8181FD03C08FEF9FEF20C082FF10C0D7 +:101F80004E815F812C813D81421753077CF4E881AB +:101F9000F9819F012F5F3F4F28833983108306C04B +:101FA000E885F985812F1995892B29F72E813F81A5 +:101FB0002F5F3F4F2E833F83812F902FDF91CF9153 +:101FC0001F910F910895FA01AA27283051F120316D +:101FD00081F1E8946F936E7F6E5F7F4F8F4F9F4FBD +:101FE000AF4FB1E03ED0B4E03CD0670F781F891FFF +:101FF0009A1FA11D680F791F8A1F911DA11D6A0FCD +:10200000711D811D911DA11D20D009F468943F917F +:102010002AE0269F11243019305D3193DEF6CF017E +:102020000895462F4770405D4193B3E00FD0C9F744 +:10203000F6CF462F4F70405D4A3318F0495D31FDB1 +:102040004052419302D0A9F7EACFB4E0A695979504 +:10205000879577956795BA95C9F7009761057105DA +:1020600008959B01AC010A2E069457954795379524 +:102070002795BA95C9F7620F731F841F951FA01D7E +:062080000895F894FFCF63 +:102086009BB78BBFFB018091CA014093CA017DE9D2 +:1020960070933400E8958093CA019BBF0895209100 +:1020A600CF0127FDFCCF9BB78BBFFB018091CA01F7 +:1020B60023E22093CA010A01E89511248093CA01FC +:0420C6009BBF08951F +:1020CA00802500000300005374617274696E6720F2 +:1020DA006170706C69636174696F6E2E2E2E0D0AC1 +:1020EA000057616974696E6720666F72206669724B +:1020FA006D776172652075706C6F61642E2E2E0D7E +:10210A000A00526573657474696E672043505520DE +:10211A002D20746F6F206D616E79206572726F72F7 +:10212A007300426F6F746C6F61646572205625325A +:08213A00642E2532640D0A0039 +:0400000320000000D9 +:00000001FF diff --git a/Fred_bootloader/src/bootloader.c b/Fred_bootloader/src/bootloader.c index c9db87b108e37defa73fe0709051f64d2692a4ab..a6c6f540359bcd11700db224ce042015716cee67 100644 --- a/Fred_bootloader/src/bootloader.c +++ b/Fred_bootloader/src/bootloader.c @@ -18,6 +18,17 @@ uint8_t page[FLASH_PAGE_SIZE] = {0}; uint8_t checksum = 0; uint8_t handshake = 0; +void welcome_led_blink() +{ + uint8_t i; + for (i=0; i<50; i++) + { + ioport_toggle_pin(MMC_LED); + _delay_ms(20); + } +} + + void start_firmware() { void (*app_start)( void ) = APP_SECTION_START; // Set up function pointer to RESET vector. @@ -42,9 +53,10 @@ void start_bootloader() switch (state) { case INIT: - if (eeprom_read_upgrade() == false) + if (eeprom_check_magic_byte_invalid() == false) { - usart_putchar(USART_SERIAL, eeprom_read_byte(EEPROM_ADDR_FWUPGRADE)); + printString("Starting application...\r\n"); + usart_putchar(USART_SERIAL, eeprom_read_byte(EEPROM_ADDR_MAGICBYTE)); start_firmware(); } state = HANDSHAKE; @@ -52,7 +64,7 @@ void start_bootloader() /////////////////////////////////////// case HANDSHAKE: - + printString("Waiting for firmware upload...\r\n"); do { usart_serial_getchar(USART_SERIAL, &chr); @@ -189,21 +201,21 @@ void checksum_add_byte(uint8_t byte) void eeprom_write_upgrade( void ) { - eeprom_write_byte(EEPROM_ADDR_FWUPGRADE, EEPROM_FWUPGRADE_VALUE); + eeprom_write_byte(EEPROM_ADDR_MAGICBYTE, EEPROM_FWUPGRADE_VALUE); } void eeprom_write_ready( void ) { - eeprom_write_byte(EEPROM_ADDR_FWUPGRADE, EEPROM_FWREADY_VALUE); + eeprom_write_byte(EEPROM_ADDR_MAGICBYTE, EEPROM_FWREADY_VALUE); _delay_ms(40); } -bool eeprom_read_upgrade( void ) +bool eeprom_check_magic_byte_invalid( void ) { //return false; // return true; - //usart_putchar(USART_SERIAL, eeprom_read_byte((EEPROM_ADDR_FWUPGRADE))); - return eeprom_read_byte(EEPROM_ADDR_FWUPGRADE) != EEPROM_FWREADY_VALUE; + //usart_putchar(USART_SERIAL, eeprom_read_byte((EEPROM_ADDR_MAGICBYTE))); + return eeprom_read_byte(EEPROM_ADDR_MAGICBYTE) != EEPROM_FWREADY_VALUE; } bool read_compare_checksum(void) @@ -215,12 +227,12 @@ bool read_compare_checksum(void) void eeprom_write_upgrade_started( void ) { - eeprom_write_byte(EEPROM_ADDR_FWUPGRADE, EEPROM_FWUPGRADE_STARTED); + eeprom_write_byte(EEPROM_ADDR_MAGICBYTE, EEPROM_FWUPGRADE_STARTED); } bool eeprom_is_pending( void ) { - uint8_t value = eeprom_read_byte(EEPROM_ADDR_FWUPGRADE); + uint8_t value = eeprom_read_byte(EEPROM_ADDR_MAGICBYTE); return (value == EEPROM_FWUPGRADE_STARTED) || (value != EEPROM_FWREADY_VALUE && value != EEPROM_FWUPGRADE_VALUE); } diff --git a/Fred_bootloader/src/bootloader.h b/Fred_bootloader/src/bootloader.h index 7216982606a7e3e63db2d93fe67e7649746f3483..7a5dffef5bacbbc37117b6df348fd146b20402ae 100644 --- a/Fred_bootloader/src/bootloader.h +++ b/Fred_bootloader/src/bootloader.h @@ -28,7 +28,7 @@ extern BootloaderState state; #define BOOTLDR_ERR_MAX 20 -#define EEPROM_ADDR_FWUPGRADE (uint8_t *) 63 +#define EEPROM_ADDR_MAGICBYTE (uint8_t *) 63 #define EEPROM_FWUPGRADE_VALUE (uint8_t) 0x56 #define EEPROM_FWREADY_VALUE (uint8_t) 0x55 #define EEPROM_FWUPGRADE_STARTED (uint8_t) 0x44 @@ -38,9 +38,10 @@ void start_firmware(void); void eeprom_write_upgrade(void); void eeprom_write_upgrade_started(void); void eeprom_write_ready(void); -bool eeprom_read_upgrade(void); +bool eeprom_check_magic_byte_invalid(void); bool eeprom_is_pending(void); void checksum_add_byte(uint8_t byte); bool read_compare_checksum(void); +void welcome_led_blink(void); #endif /* BOOTLOADER_H_ */ \ No newline at end of file diff --git a/Fred_bootloader/src/main.c b/Fred_bootloader/src/main.c index 7f87e43414588d90fa440a20507863f043229fb9..e1847c164bda509f5dca7e5b3bd61c0961b6df71 100644 --- a/Fred_bootloader/src/main.c +++ b/Fred_bootloader/src/main.c @@ -27,9 +27,11 @@ */ #include <asf.h> #include <util/delay.h> +#include <stdio.h> #include "usart_lib.h" #include "timer_lib.h" #include "bootloader.h" +#include "version.h" #include <ccp.h> int main (void) { @@ -49,10 +51,13 @@ int main (void) pmic_init(); pmic_set_scheduling(PMIC_SCH_FIXED_PRIORITY);//PMIC_SCH_ROUND_ROBIN); cpu_irq_enable(); - usart_init(); - - printString("Bootloader\r\n"); + + welcome_led_blink(); + ioport_toggle_pin(MMC_LED); + char message[256]; + sprintf(message,"Bootloader V%2d.%2d\r\n",SVN_REVISION_MAJOR,SVN_REVISION_MINOR); + printString(message); start_bootloader(); //reset processor //ccp_write_io((void *)&RST.CTRL, RST_SWRST_bm); diff --git a/Fred_bootloader/src/timer_lib.c b/Fred_bootloader/src/timer_lib.c index 0904d6eb720be809f85851998adb62b1863b8fdc..57833b98f49ffaedc6bb61e99a758edb89f47aeb 100644 --- a/Fred_bootloader/src/timer_lib.c +++ b/Fred_bootloader/src/timer_lib.c @@ -50,7 +50,7 @@ static void tc_overflow_callback(void) //100 ms sec_counter++; idle_counter++; timer_100ms_flag = true; - if(sec_counter == 10) + if(sec_counter == LED_BLINK_PERIOD) { ioport_toggle_pin(MMC_LED); sec_counter = 0; diff --git a/Fred_bootloader/src/timer_lib.h b/Fred_bootloader/src/timer_lib.h index c9e63a50d6ec76b390580cf1c7d80361f9192e76..c7955d6b71d8b3b7b9d2eddbcafa799cba9a6ec6 100644 --- a/Fred_bootloader/src/timer_lib.h +++ b/Fred_bootloader/src/timer_lib.h @@ -29,6 +29,7 @@ #define TIMER_LIB_H_ #define INACTIVITY_BEFORE_RESET_S 20 +#define LED_BLINK_PERIOD 18 extern volatile bool timer_100ms_flag;