Skip to content

Commit

Permalink
Final bootloader write. We're going to space, folks.
Browse files Browse the repository at this point in the history
  • Loading branch information
MckennaCisler committed Mar 19, 2018
1 parent e15f04d commit 918738b
Show file tree
Hide file tree
Showing 3 changed files with 135 additions and 136 deletions.
257 changes: 128 additions & 129 deletions bootloader/bootloader/bootloader.cproj
Original file line number Diff line number Diff line change
Expand Up @@ -262,132 +262,132 @@
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<ArmGcc>
<armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>
<armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>
<armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>
<armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>
<armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>
<armgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
<Value>BOARD=SAMD21_XPLAINED_PRO</Value>
<Value>__SAMD21J18A__</Value>
<Value>ARM_MATH_CM0=true</Value>
<Value>SPI_CALLBACK_MODE=false</Value>
<Value>USART_CALLBACK_MODE=true</Value>
<Value>SYSTICK_MODE</Value>
<Value>WDT_CALLBACK_MODE=true</Value>
</ListValues>
</armgcc.compiler.symbols.DefSymbols>
<armgcc.compiler.directories.DefaultIncludePath>False</armgcc.compiler.directories.DefaultIncludePath>
<armgcc.compiler.directories.IncludePaths>
<ListValues>
<Value>../sam0/drivers/sercom/spi/quick_start_master/samd21_xplained_pro</Value>
<Value>../src/ASF/sam0/utils/header_files</Value>
<Value>../src/ASF/sam0/drivers/system/power/power_sam_d_r</Value>
<Value>../src/ASF/common/utils</Value>
<Value>../src/ASF/sam0/drivers/system/pinmux</Value>
<Value>../src/ASF/sam0/drivers/system/power</Value>
<Value>../src/ASF/sam0/drivers/system/reset/reset_sam_d_r</Value>
<Value>../src/ASF/common/boards</Value>
<Value>../src/ASF/sam0/drivers/sercom/spi</Value>
<Value>../src/ASF/sam0/drivers/port</Value>
<Value>../src/ASF/sam0/drivers/system/clock/clock_samd21_r21</Value>
<Value>../src/ASF/sam0/boards</Value>
<Value>../src/ASF/sam0/utils</Value>
<Value>../src/ASF/thirdparty/CMSIS/Include</Value>
<Value>../src/config</Value>
<Value>../src/ASF/thirdparty/CMSIS/Lib/GCC</Value>
<Value>../src/ASF/sam0/drivers/system/reset</Value>
<Value>../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21</Value>
<Value>../src/ASF/sam0/boards/samd21_xplained_pro</Value>
<Value>../src</Value>
<Value>../src/ASF/sam0/drivers/sercom</Value>
<Value>../src/ASF/sam0/utils/preprocessor</Value>
<Value>../src/ASF/sam0/utils/cmsis/samd21/include</Value>
<Value>../src/ASF/sam0/drivers/system</Value>
<Value>../src/ASF/sam0/utils/cmsis/samd21/source</Value>
<Value>../src/ASF/sam0/drivers/system/clock</Value>
<Value>../src/ASF/sam0/drivers/system/interrupt</Value>
<Value>../src/ASF/sam0/drivers/nvm</Value>
<Value>../src/ASF/sam0/utils/stdio/stdio_serial</Value>
<Value>../src/ASF/common/services/serial</Value>
<Value>../src/ASF/sam0/drivers/sercom/usart</Value>
<Value>../src/ASF/common2/services/delay</Value>
<Value>../src/ASF/common2/services/delay/sam0</Value>
<Value>../src/ASF/sam0/drivers/sercom/spi_master_vec</Value>
<Value>../src/ASF/sam0/drivers/wdt</Value>
</ListValues>
</armgcc.compiler.directories.IncludePaths>
<armgcc.compiler.optimization.EnableFastMath>True</armgcc.compiler.optimization.EnableFastMath>
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
<armgcc.compiler.miscellaneous.OtherFlags>-pipe -fno-strict-aliasing -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500</armgcc.compiler.miscellaneous.OtherFlags>
<armgcc.linker.general.UseNewlibNano>True</armgcc.linker.general.UseNewlibNano>
<armgcc.linker.libraries.Libraries>
<ListValues>
<Value>libarm_cortexM0l_math</Value>
<Value>libm</Value>
</ListValues>
</armgcc.linker.libraries.Libraries>
<armgcc.linker.libraries.LibrarySearchPaths>
<ListValues>
<Value>../cmsis/linkerScripts</Value>
<Value>../src/ASF/thirdparty/CMSIS/Lib/GCC</Value>
</ListValues>
</armgcc.linker.libraries.LibrarySearchPaths>
<armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>
<armgcc.linker.optimization.EnableFastMath>True</armgcc.linker.optimization.EnableFastMath>
<armgcc.linker.memorysettings.ExternalRAM />
<armgcc.linker.miscellaneous.LinkerFlags>-Wl,--entry=Reset_Handler -Wl,--cref -mthumb -T../src/ASF/sam0/utils/linker_scripts/samd21/gcc/samd21j18a_flash.ld</armgcc.linker.miscellaneous.LinkerFlags>
<armgcc.assembler.general.IncludePaths>
<ListValues>
<Value>../src/Config</Value>
<Value>../src/ASF/sam0/drivers/sercom/spi_master_vec</Value>
<Value>../src/ASF/sam0/drivers/wdt</Value>
</ListValues>
</armgcc.assembler.general.IncludePaths>
<armgcc.preprocessingassembler.general.AssemblerFlags>-DARM_MATH_CM0=true -DBOARD=SAMD21_XPLAINED_PRO -DSPI_CALLBACK_MODE=false -D__SAMD21J18A__ -DUSART_CALLBACK_MODE=true -DSYSTICK_MODE -DWDT_CALLBACK_MODE=true</armgcc.preprocessingassembler.general.AssemblerFlags>
<armgcc.preprocessingassembler.general.DefaultIncludePath>False</armgcc.preprocessingassembler.general.DefaultIncludePath>
<armgcc.preprocessingassembler.general.IncludePaths>
<ListValues>
<Value>../sam0/drivers/sercom/spi/quick_start_master/samd21_xplained_pro</Value>
<Value>../src/ASF/sam0/utils/header_files</Value>
<Value>../src/ASF/sam0/drivers/system/power/power_sam_d_r</Value>
<Value>../src/ASF/common/utils</Value>
<Value>../src/ASF/sam0/drivers/system/pinmux</Value>
<Value>../src/ASF/sam0/drivers/system/power</Value>
<Value>../src/ASF/sam0/drivers/system/reset/reset_sam_d_r</Value>
<Value>../src/ASF/common/boards</Value>
<Value>../src/ASF/sam0/drivers/sercom/spi</Value>
<Value>../src/ASF/sam0/drivers/port</Value>
<Value>../src/ASF/sam0/drivers/system/clock/clock_samd21_r21</Value>
<Value>../src/ASF/sam0/boards</Value>
<Value>../src/ASF/sam0/utils</Value>
<Value>../src/ASF/thirdparty/CMSIS/Include</Value>
<Value>../src/config</Value>
<Value>../src/ASF/thirdparty/CMSIS/Lib/GCC</Value>
<Value>../src/ASF/sam0/drivers/system/reset</Value>
<Value>../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21</Value>
<Value>../src/ASF/sam0/boards/samd21_xplained_pro</Value>
<Value>../src</Value>
<Value>../src/ASF/sam0/drivers/sercom</Value>
<Value>../src/ASF/sam0/utils/preprocessor</Value>
<Value>../src/ASF/sam0/utils/cmsis/samd21/include</Value>
<Value>../src/ASF/sam0/drivers/system</Value>
<Value>../src/ASF/sam0/utils/cmsis/samd21/source</Value>
<Value>../src/ASF/sam0/drivers/system/clock</Value>
<Value>../src/ASF/sam0/drivers/system/interrupt</Value>
<Value>../src/ASF/sam0/drivers/nvm</Value>
<Value>../src/ASF/sam0/utils/stdio/stdio_serial</Value>
<Value>../src/ASF/common/services/serial</Value>
<Value>../src/ASF/sam0/drivers/sercom/usart</Value>
<Value>../src/ASF/common2/services/delay</Value>
<Value>../src/ASF/common2/services/delay/sam0</Value>
<Value>../src/ASF/sam0/drivers/sercom/spi_master_vec</Value>
<Value>../src/ASF/sam0/drivers/wdt</Value>
</ListValues>
</armgcc.preprocessingassembler.general.IncludePaths>
</ArmGcc>
<armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>
<armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>
<armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>
<armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>
<armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>
<armgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
<Value>BOARD=SAMD21_XPLAINED_PRO</Value>
<Value>__SAMD21J18A__</Value>
<Value>ARM_MATH_CM0=true</Value>
<Value>SPI_CALLBACK_MODE=false</Value>
<Value>USART_CALLBACK_MODE=true</Value>
<Value>SYSTICK_MODE</Value>
<Value>WDT_CALLBACK_MODE=true</Value>
</ListValues>
</armgcc.compiler.symbols.DefSymbols>
<armgcc.compiler.directories.DefaultIncludePath>False</armgcc.compiler.directories.DefaultIncludePath>
<armgcc.compiler.directories.IncludePaths>
<ListValues>
<Value>../sam0/drivers/sercom/spi/quick_start_master/samd21_xplained_pro</Value>
<Value>../src/ASF/sam0/utils/header_files</Value>
<Value>../src/ASF/sam0/drivers/system/power/power_sam_d_r</Value>
<Value>../src/ASF/common/utils</Value>
<Value>../src/ASF/sam0/drivers/system/pinmux</Value>
<Value>../src/ASF/sam0/drivers/system/power</Value>
<Value>../src/ASF/sam0/drivers/system/reset/reset_sam_d_r</Value>
<Value>../src/ASF/common/boards</Value>
<Value>../src/ASF/sam0/drivers/sercom/spi</Value>
<Value>../src/ASF/sam0/drivers/port</Value>
<Value>../src/ASF/sam0/drivers/system/clock/clock_samd21_r21</Value>
<Value>../src/ASF/sam0/boards</Value>
<Value>../src/ASF/sam0/utils</Value>
<Value>../src/ASF/thirdparty/CMSIS/Include</Value>
<Value>../src/config</Value>
<Value>../src/ASF/thirdparty/CMSIS/Lib/GCC</Value>
<Value>../src/ASF/sam0/drivers/system/reset</Value>
<Value>../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21</Value>
<Value>../src/ASF/sam0/boards/samd21_xplained_pro</Value>
<Value>../src</Value>
<Value>../src/ASF/sam0/drivers/sercom</Value>
<Value>../src/ASF/sam0/utils/preprocessor</Value>
<Value>../src/ASF/sam0/utils/cmsis/samd21/include</Value>
<Value>../src/ASF/sam0/drivers/system</Value>
<Value>../src/ASF/sam0/utils/cmsis/samd21/source</Value>
<Value>../src/ASF/sam0/drivers/system/clock</Value>
<Value>../src/ASF/sam0/drivers/system/interrupt</Value>
<Value>../src/ASF/sam0/drivers/nvm</Value>
<Value>../src/ASF/sam0/utils/stdio/stdio_serial</Value>
<Value>../src/ASF/common/services/serial</Value>
<Value>../src/ASF/sam0/drivers/sercom/usart</Value>
<Value>../src/ASF/common2/services/delay</Value>
<Value>../src/ASF/common2/services/delay/sam0</Value>
<Value>../src/ASF/sam0/drivers/sercom/spi_master_vec</Value>
<Value>../src/ASF/sam0/drivers/wdt</Value>
</ListValues>
</armgcc.compiler.directories.IncludePaths>
<armgcc.compiler.optimization.EnableFastMath>True</armgcc.compiler.optimization.EnableFastMath>
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
<armgcc.compiler.miscellaneous.OtherFlags>-pipe -fno-strict-aliasing -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500</armgcc.compiler.miscellaneous.OtherFlags>
<armgcc.linker.general.UseNewlibNano>True</armgcc.linker.general.UseNewlibNano>
<armgcc.linker.libraries.Libraries>
<ListValues>
<Value>libarm_cortexM0l_math</Value>
<Value>libm</Value>
</ListValues>
</armgcc.linker.libraries.Libraries>
<armgcc.linker.libraries.LibrarySearchPaths>
<ListValues>
<Value>../cmsis/linkerScripts</Value>
<Value>../src/ASF/thirdparty/CMSIS/Lib/GCC</Value>
</ListValues>
</armgcc.linker.libraries.LibrarySearchPaths>
<armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>
<armgcc.linker.optimization.EnableFastMath>True</armgcc.linker.optimization.EnableFastMath>
<armgcc.linker.memorysettings.ExternalRAM />
<armgcc.linker.miscellaneous.LinkerFlags>-Wl,--entry=Reset_Handler -Wl,--cref -mthumb -T../src/ASF/sam0/utils/linker_scripts/samd21/gcc/samd21j18a_flash.ld</armgcc.linker.miscellaneous.LinkerFlags>
<armgcc.assembler.general.IncludePaths>
<ListValues>
<Value>../src/Config</Value>
<Value>../src/ASF/sam0/drivers/sercom/spi_master_vec</Value>
<Value>../src/ASF/sam0/drivers/wdt</Value>
</ListValues>
</armgcc.assembler.general.IncludePaths>
<armgcc.preprocessingassembler.general.AssemblerFlags>-DARM_MATH_CM0=true -DBOARD=SAMD21_XPLAINED_PRO -DSPI_CALLBACK_MODE=false -D__SAMD21J18A__ -DUSART_CALLBACK_MODE=true -DSYSTICK_MODE -DWDT_CALLBACK_MODE=true</armgcc.preprocessingassembler.general.AssemblerFlags>
<armgcc.preprocessingassembler.general.DefaultIncludePath>False</armgcc.preprocessingassembler.general.DefaultIncludePath>
<armgcc.preprocessingassembler.general.IncludePaths>
<ListValues>
<Value>../sam0/drivers/sercom/spi/quick_start_master/samd21_xplained_pro</Value>
<Value>../src/ASF/sam0/utils/header_files</Value>
<Value>../src/ASF/sam0/drivers/system/power/power_sam_d_r</Value>
<Value>../src/ASF/common/utils</Value>
<Value>../src/ASF/sam0/drivers/system/pinmux</Value>
<Value>../src/ASF/sam0/drivers/system/power</Value>
<Value>../src/ASF/sam0/drivers/system/reset/reset_sam_d_r</Value>
<Value>../src/ASF/common/boards</Value>
<Value>../src/ASF/sam0/drivers/sercom/spi</Value>
<Value>../src/ASF/sam0/drivers/port</Value>
<Value>../src/ASF/sam0/drivers/system/clock/clock_samd21_r21</Value>
<Value>../src/ASF/sam0/boards</Value>
<Value>../src/ASF/sam0/utils</Value>
<Value>../src/ASF/thirdparty/CMSIS/Include</Value>
<Value>../src/config</Value>
<Value>../src/ASF/thirdparty/CMSIS/Lib/GCC</Value>
<Value>../src/ASF/sam0/drivers/system/reset</Value>
<Value>../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21</Value>
<Value>../src/ASF/sam0/boards/samd21_xplained_pro</Value>
<Value>../src</Value>
<Value>../src/ASF/sam0/drivers/sercom</Value>
<Value>../src/ASF/sam0/utils/preprocessor</Value>
<Value>../src/ASF/sam0/utils/cmsis/samd21/include</Value>
<Value>../src/ASF/sam0/drivers/system</Value>
<Value>../src/ASF/sam0/utils/cmsis/samd21/source</Value>
<Value>../src/ASF/sam0/drivers/system/clock</Value>
<Value>../src/ASF/sam0/drivers/system/interrupt</Value>
<Value>../src/ASF/sam0/drivers/nvm</Value>
<Value>../src/ASF/sam0/utils/stdio/stdio_serial</Value>
<Value>../src/ASF/common/services/serial</Value>
<Value>../src/ASF/sam0/drivers/sercom/usart</Value>
<Value>../src/ASF/common2/services/delay</Value>
<Value>../src/ASF/common2/services/delay/sam0</Value>
<Value>../src/ASF/sam0/drivers/sercom/spi_master_vec</Value>
<Value>../src/ASF/sam0/drivers/wdt</Value>
</ListValues>
</armgcc.preprocessingassembler.general.IncludePaths>
</ArmGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
Expand All @@ -400,7 +400,7 @@
<armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>
<armgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
<Value>NDEBUG</Value>
<Value>BOARD=SAMD21_XPLAINED_PRO</Value>
<Value>__SAMD21J18A__</Value>
<Value>ARM_MATH_CM0=true</Value>
Expand Down Expand Up @@ -450,8 +450,7 @@
<Value>../src/ASF/sam0/drivers/wdt</Value>
</ListValues>
</armgcc.compiler.directories.IncludePaths>
<armgcc.compiler.optimization.EnableFastMath>True</armgcc.compiler.optimization.EnableFastMath>
<armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>
<armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
<armgcc.compiler.miscellaneous.OtherFlags>-pipe -fno-strict-aliasing -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500</armgcc.compiler.miscellaneous.OtherFlags>
<armgcc.linker.general.UseNewlibNano>True</armgcc.linker.general.UseNewlibNano>
Expand Down
6 changes: 3 additions & 3 deletions bootloader/bootloader/src/Bootloader/MRAM_Commands.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@ status_code_genare_t mram_write_status_register(struct spi_module *spi_master_in
RAD_SAFE_FIELD_CORRECT(field_name); \
field_name[0]; \
})
// #define RAD_SAFE_FIELD_CORRECT(field_name) if (field_name[0] == field_name[1] && field_name[2] != field_name[0]) { field_name[2] = field_name[0]; assert(false); }; \
// if (field_name[0] == field_name[2] && field_name[1] != field_name[0]) { field_name[1] = field_name[0]; assert(false); }; \
// if (field_name[1] == field_name[2] && field_name[0] != field_name[1]) { field_name[0] = field_name[1]; assert(false); }
/* #define RAD_SAFE_FIELD_CORRECT(field_name) if (field_name[0] == field_name[1] && field_name[2] != field_name[0]) { field_name[2] = field_name[0]; assert(false); }; \
if (field_name[0] == field_name[2] && field_name[1] != field_name[0]) { field_name[1] = field_name[0]; assert(false); }; \
if (field_name[1] == field_name[2] && field_name[0] != field_name[1]) { field_name[0] = field_name[1]; assert(false); } */

#endif /* MRAM_COMMANDS_H_ */
Expand Down

0 comments on commit 918738b

Please sign in to comment.