diff --git a/Host/openblt_uart.ini b/Host/openblt_uart.ini index 302a0bbe..56b278d5 100644 --- a/Host/openblt_uart.ini +++ b/Host/openblt_uart.ini @@ -1,5 +1,5 @@ [sci] -port=7 +port=3 baudrate=8 [xcp] seedkey= diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out index db397b44..9f5362cc 100644 Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out and b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out differ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.srec b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.srec index 78a5d1fe..5eec4084 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.srec +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.srec @@ -706,7 +706,7 @@ S31508002BF009480068401C08490860704780B5FFF717 S31508002C00F3FF0548006802BD14E000E03F19010023 S31508002C1018E000E010E000E03C0F002080B5DFF887 S31508002C20780600210170DFF874160020FEF707FD0C -S31508002C30C0B2002804D09E21DFF8640600F0C0FB6D +S31508002C30C0B2002804D07C21DFF8640600F0C0FB8F S31508002C4001BDDFF854060078002801D1012000E014 S31508002C500020704780B500F0F1FB012801D1002063 S31508002C6011E0DFF834060078002801D000200AE0D9 @@ -785,8 +785,8 @@ S315080030E0A41C200000F047F90500AE19A41C200016 S315080030F000F041F986196D1EA41CADB2022DF6DA50 S31508003100F6B2F643200000F036F9F6B2864201D050 S31508003110002000E0012070BD2DE9F04105000E00F9 -S3150800312014005FF00008002E01D0002D04D14FF4E2 -S3150800313016715B4800F044F92800FFF7AFFF070057 +S3150800312014005FF00008002E01D0002D04D140F2F3 +S3150800313036215B4800F044F92800FFF7AFFF070087 S31508003140FFB2032F01D10020A3E02800FFF7C5FF37 S31508003150002802D15FF0FF309BE0FFB2002F03D0BA S31508003160022F5AD028D392E0AD1C280000F003F9AC diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt index 8e02e1d5..7aa0bc88 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt @@ -12,12 +12,12 @@ - 214272727 + 287272727 300Debug-Log20105928270300Build201413664941138 - + TabID-32216-31616 @@ -29,20 +29,20 @@ - 0TabID-13144-32069BuildBuildTabID-25023-6652Debug LogDebug-LogTabID-18334-26223Find in FilesFind-in-Files0 + 0TabID-13144-32069BuildBuildTabID-25023-6652Debug LogDebug-LogTabID-18334-26223Find in FilesFind-in-Files0 - TextEditor$WS_DIR$\..\main.c000001621982198TextEditor$WS_DIR$\..\hooks.c0000026613853138531TextEditor$WS_DIR$\..\lib\fatfs\mmc.c00000109464846700100000010000001 + TextEditor$WS_DIR$\..\main.c000001621982198TextEditor$WS_DIR$\..\hooks.c000002661385313853TextEditor$WS_DIR$\..\lib\fatfs\mmc.c0000010946484670TextEditor$WS_DIR$\..\blt_conf.h0000072470147013TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM3_STM32\can.c0000031014069140690100000010000001 - iaridepm.enu1-2-2617305-2-2176166136012201701237249752126-2-21611296-2-212981631003091198056104328198056 + iaridepm.enu1-2-2621378-2-2218167136250201691237500752415-2-21621602-2-216041641002500198068104375198068 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep index 5b0df865..d9df9014 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep @@ -22,17 +22,41 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h - $PROJ_DIR$\..\config.h + $PROJ_DIR$\..\blt_conf.h $PROJ_DIR$\..\hooks.c $PROJ_DIR$\..\main.c - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\vectors.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\cstart.s + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\vectors.c $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\can.c - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\can.h $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\cpu.c $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\cpu.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h + $PROJ_DIR$\..\obj\stm32f10x_adc.o + $TOOLKIT_DIR$\lib\shb_l.a + $PROJ_DIR$\..\memory.x $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\flash.c + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\flash.h $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\nvm.c $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\nvm.h @@ -62,7 +86,7 @@ $PROJ_DIR$\..\..\..\..\Source\plausibility.h $PROJ_DIR$\..\..\..\..\Source\xcp.c $PROJ_DIR$\..\..\..\..\Source\xcp.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + $PROJ_DIR$\..\config.h $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h @@ -73,8 +97,8 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\misc.c $PROJ_DIR$\Debug\Obj\stm32f10x_crc.o + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\misc.c $PROJ_DIR$\Debug\Obj\stm32f10x_i2c.o $PROJ_DIR$\..\obj\system_stm32f10x.lst $PROJ_DIR$\..\obj\os.lst @@ -123,6 +147,66 @@ $PROJ_DIR$\Debug\Obj\stm32f10x_spi.pbi $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h $PROJ_DIR$\Debug\Obj\stm32f10x_sdio.o + $PROJ_DIR$\..\obj\nvm.pbi + $PROJ_DIR$\..\obj\uart.pbi + $PROJ_DIR$\..\obj\usb.pbi + $PROJ_DIR$\..\obj\mmc.o + $PROJ_DIR$\..\obj\mmc.pbi + $PROJ_DIR$\..\obj\unicode.lst + $PROJ_DIR$\..\obj\ff.lst + $TOOLKIT_DIR$\inc\c\stdarg.h + $PROJ_DIR$\..\obj\file.o + $PROJ_DIR$\..\obj\file.pbi + $TOOLKIT_DIR$\inc\c\xtls.h + $TOOLKIT_DIR$\inc\c\xmtx.h + $TOOLKIT_DIR$\inc\c\xlocaleuse.h + $TOOLKIT_DIR$\inc\c\xlocale.h + $TOOLKIT_DIR$\inc\c\stdlib.h + $PROJ_DIR$\..\obj\file.lst + $TOOLKIT_DIR$\inc\c\xlocale_c.h + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c + $TOOLKIT_DIR$\inc\c\wchar.h + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h + $PROJ_DIR$\..\cstart.s + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h + $PROJ_DIR$\..\obj\hw.lst + $PROJ_DIR$\..\obj\core_cm3.lst + $PROJ_DIR$\Debug\Obj\stm32f10x_tim.pbi + $TOOLKIT_DIR$\inc\c\stdint.h + $TOOLKIT_DIR$\inc\c\ysizet.h + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $TOOLKIT_DIR$\inc\c\ctype.h + $TOOLKIT_DIR$\inc\c\string.h + $PROJ_DIR$\..\boot.c + $PROJ_DIR$\..\boot.h + $PROJ_DIR$\..\header.h + $PROJ_DIR$\..\irq.c + $PROJ_DIR$\..\irq.h + $PROJ_DIR$\..\led.c + $PROJ_DIR$\..\led.h + $PROJ_DIR$\..\timer.c + $PROJ_DIR$\..\timer.h + $PROJ_DIR$\..\vectors.c + $PROJ_DIR$\..\src\app\app.c + $PROJ_DIR$\..\src\app\app.h + $PROJ_DIR$\..\src\hw\cstart.s + $PROJ_DIR$\..\src\os\os.h + $PROJ_DIR$\Debug\Obj\stm32f10x_fsmc.o + $PROJ_DIR$\..\src\header.h + $PROJ_DIR$\..\src\os\os.c + $TOOLKIT_DIR$\inc\c\DLib_Defaults.h + $PROJ_DIR$\..\src\hw\hw.h + $PROJ_DIR$\..\src\hw\hw.c $PROJ_DIR$\..\obj\assert.lst $PROJ_DIR$\..\obj\openbtl_olimex_stm32p103.map $PROJ_DIR$\..\obj\flash.lst @@ -137,8 +221,8 @@ $PROJ_DIR$\..\obj\com.lst $PROJ_DIR$\..\obj\stm32f10x_sdio.o $PROJ_DIR$\..\obj\stm32f10x_spi.o - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\memory.x $PROJ_DIR$\..\obj\stm32f10x_tim.o + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\memory.x $PROJ_DIR$\..\obj\stm32f10x_usart.o $PROJ_DIR$\..\obj\stm32f10x_wwdg.o $PROJ_DIR$\..\obj\system_stm32f10x.o @@ -212,67 +296,6 @@ $PROJ_DIR$\Debug\Exe\stm32f103.out $PROJ_DIR$\..\obj\flash.pbi $PROJ_DIR$\..\obj\cpu.pbi - $PROJ_DIR$\..\obj\nvm.pbi - $PROJ_DIR$\..\obj\uart.pbi - $PROJ_DIR$\..\obj\usb.pbi - $PROJ_DIR$\..\obj\mmc.o - $PROJ_DIR$\..\obj\mmc.pbi - $PROJ_DIR$\..\obj\unicode.lst - $PROJ_DIR$\..\obj\ff.lst - $TOOLKIT_DIR$\inc\c\stdarg.h - $PROJ_DIR$\..\obj\file.o - $PROJ_DIR$\..\obj\file.pbi - $TOOLKIT_DIR$\inc\c\xtls.h - $TOOLKIT_DIR$\inc\c\xmtx.h - $TOOLKIT_DIR$\inc\c\xlocaleuse.h - $TOOLKIT_DIR$\inc\c\xlocale.h - $TOOLKIT_DIR$\inc\c\stdlib.h - $PROJ_DIR$\..\obj\file.lst - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c - $TOOLKIT_DIR$\inc\c\xlocale_c.h - $TOOLKIT_DIR$\inc\c\wchar.h - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h - $PROJ_DIR$\..\cstart.s - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - $PROJ_DIR$\..\blt_conf.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h - $PROJ_DIR$\..\obj\hw.lst - $PROJ_DIR$\..\obj\core_cm3.lst - $PROJ_DIR$\Debug\Obj\stm32f10x_tim.pbi - $TOOLKIT_DIR$\inc\c\stdint.h - $TOOLKIT_DIR$\inc\c\ysizet.h - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h - $TOOLKIT_DIR$\inc\c\ctype.h - $TOOLKIT_DIR$\inc\c\string.h - $PROJ_DIR$\..\boot.c - $PROJ_DIR$\..\boot.h - $PROJ_DIR$\..\header.h - $PROJ_DIR$\..\irq.c - $PROJ_DIR$\..\irq.h - $PROJ_DIR$\..\led.c - $PROJ_DIR$\..\led.h - $PROJ_DIR$\..\timer.c - $PROJ_DIR$\..\timer.h - $PROJ_DIR$\..\vectors.c - $PROJ_DIR$\..\src\app\app.c - $PROJ_DIR$\..\src\app\app.h - $PROJ_DIR$\..\src\hw\cstart.s - $PROJ_DIR$\..\src\os\os.h - $PROJ_DIR$\Debug\Obj\stm32f10x_fsmc.o - $PROJ_DIR$\..\src\header.h - $PROJ_DIR$\..\src\os\os.c - $TOOLKIT_DIR$\inc\c\DLib_Defaults.h - $PROJ_DIR$\..\src\hw\hw.h - $PROJ_DIR$\..\src\hw\hw.c $PROJ_DIR$\Debug\Obj\os.o $PROJ_DIR$\..\obj\stm32f10x_crc.o $PROJ_DIR$\..\obj\stm32f10x_cec.o @@ -375,10 +398,10 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h $PROJ_DIR$\..\lib\stdperiphlib\stm32f10x_conf.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h $TOOLKIT_DIR$\inc\c\intrinsics.h + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c $PROJ_DIR$\Debug\Obj\stm32f10x_usart.o $PROJ_DIR$\Debug\Obj\core_cm3.pbi $PROJ_DIR$\Debug\Obj\stm32f10x_spi.o @@ -393,50 +416,27 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h - $PROJ_DIR$\..\obj\stm32f10x_adc.o - $TOOLKIT_DIR$\lib\shb_l.a - $PROJ_DIR$\..\memory.x $PROJ_DIR$\..\lib\CMSIS\CM3\CoreSupport\core_cm3.c - BICOMP - 137 + ICCARM + 174 298 - ICCARM - 240 275 + BICOMP + 221 - BICOMP - 242 107 198 264 115 195 165 169 + ICCARM + 176 131 282 198 139 279 249 253 - ICCARM - 242 107 198 264 115 195 165 169 + BICOMP + 176 131 282 198 139 279 249 253 @@ -444,22 +444,22 @@ $PROJ_DIR$\..\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c - BICOMP - 355 + ICCARM + 94 219 - ICCARM - 70 135 + BICOMP + 378 - BICOMP - 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + ICCARM + 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - ICCARM - 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + BICOMP + 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 @@ -467,22 +467,22 @@ $PROJ_DIR$\..\lib\fatfs\mmc.c - BICOMP - 210 + ICCARM + 332 144 - ICCARM - 309 209 + BICOMP + 145 - BICOMP - 37 40 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 46 32 42 229 53 25 50 29 27 31 44 52 38 5 48 55 + ICCARM + 61 64 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 70 56 66 16 77 25 74 53 51 55 68 76 62 5 72 79 - ICCARM - 37 40 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 46 32 42 229 53 25 50 29 27 31 44 52 38 5 48 55 + BICOMP + 61 64 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 70 56 66 16 77 25 74 53 51 55 68 76 62 5 72 79 @@ -490,22 +490,22 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - BICOMP - 105 + ICCARM + 238 404 - ICCARM - 154 381 + BICOMP + 129 - BICOMP - 9 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 + ICCARM + 9 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 - ICCARM - 9 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 + BICOMP + 9 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 @@ -513,18 +513,18 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c - BICOMP - 341 + ICCARM + 242 124 - ICCARM - 158 100 + BICOMP + 364 ICCARM - 11 3 0 242 107 198 264 115 195 165 169 372 1 7 9 13 15 + 11 3 0 176 131 282 198 139 279 249 253 394 1 7 9 13 15 @@ -532,22 +532,22 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c - BICOMP - 349 + ICCARM + 245 214 - ICCARM - 161 130 + BICOMP + 372 - BICOMP - 13 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 15 + ICCARM + 13 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 15 - ICCARM - 13 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 15 + BICOMP + 13 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 15 @@ -555,22 +555,22 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c - BICOMP - 345 + ICCARM + 248 217 - ICCARM - 164 133 + BICOMP + 368 - BICOMP - 15 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 + ICCARM + 15 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 - ICCARM - 15 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 + BICOMP + 15 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 @@ -578,22 +578,22 @@ $PROJ_DIR$\..\hooks.c - BICOMP - 122 + ICCARM + 126 207 - ICCARM - 102 123 + BICOMP + 206 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 @@ -601,45 +601,45 @@ $PROJ_DIR$\..\main.c - BICOMP - 327 + ICCARM + 356 97 - ICCARM - 333 73 + BICOMP + 350 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\vectors.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c - BICOMP - 329 + ICCARM + 230 46 - ICCARM - 332 322 + BICOMP + 339 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + ICCARM + 81 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + BICOMP + 81 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 @@ -648,62 +648,53 @@ AARM - 313 + 336 - [ROOT_NODE] + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\vectors.c - ILINK - 103 118 + ICCARM + 355 345 + + + BICOMP + 352 + + + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 + + + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 + + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\can.c - BICOMP - 95 + ICCARM + 210 115 - ICCARM - 126 91 + BICOMP + 119 - - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 - - - - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c - BICOMP - 311 - - - ICCARM - 212 310 - - - - - BICOMP - 38 40 5 37 213 107 198 264 115 195 165 169 - - - ICCARM - 38 40 5 37 213 107 198 264 115 195 165 169 + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 @@ -711,22 +702,261 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\cpu.c - BICOMP - 205 + ICCARM + 208 117 - ICCARM - 124 93 + BICOMP + 289 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 + + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 + + + + + [ROOT_NODE] + + + ILINK + 127 202 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + 235 359 + + + BICOMP + 276 + + + + + ICCARM + 27 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 + + + BICOMP + 27 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + ICCARM + 236 360 + + + BICOMP + 361 + + + + + ICCARM + 29 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 + + + BICOMP + 29 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + ICCARM + 237 337 + + + BICOMP + 366 + + + + + ICCARM + 31 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + BICOMP + 31 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + ICCARM + 239 121 + + + BICOMP + 374 + + + + + ICCARM + 33 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + BICOMP + 33 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + + + ICCARM + 240 122 + + + BICOMP + 373 + + + + + ICCARM + 35 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + BICOMP + 35 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + + + ICCARM + 241 123 + + + BICOMP + 375 + + + + + ICCARM + 37 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + BICOMP + 37 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + + + ICCARM + 243 125 + + + BICOMP + 363 + + + + + ICCARM + 39 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + BICOMP + 39 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + ICCARM + 244 213 + + + BICOMP + 376 + + + + + ICCARM + 41 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + BICOMP + 41 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + + + ICCARM + 247 215 + + + BICOMP + 369 + + + + + ICCARM + 43 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + BICOMP + 43 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + + + ICCARM + 225 218 + + + BICOMP + 365 + + + + + ICCARM + 45 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 + + + BICOMP + 45 3 0 176 131 282 198 139 279 249 253 394 1 7 11 13 15 @@ -734,22 +964,45 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\flash.c - BICOMP - 204 + ICCARM + 203 118 - ICCARM - 119 94 + BICOMP + 288 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 + + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 + + + + + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c + ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + 147 333 + + + BICOMP + 334 + + + + + ICCARM + 62 64 5 61 148 131 282 198 139 279 249 253 + + + BICOMP + 62 64 5 61 148 131 282 198 139 279 249 253 @@ -757,22 +1010,18 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\nvm.c - BICOMP - 206 + ICCARM + 112 114 - ICCARM - 88 90 + BICOMP + 141 - - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 @@ -780,22 +1029,22 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\timer.c - BICOMP - 328 + ICCARM + 357 346 - ICCARM - 334 323 + BICOMP + 351 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 @@ -803,22 +1052,22 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\uart.c - BICOMP - 207 + ICCARM + 209 120 - ICCARM - 125 96 + BICOMP + 142 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 @@ -826,22 +1075,22 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\usb.c - BICOMP - 208 + ICCARM + 113 116 - ICCARM - 89 92 + BICOMP + 143 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 @@ -849,22 +1098,22 @@ $PROJ_DIR$\..\..\..\..\Source\assert.c - BICOMP - 80 + ICCARM + 201 128 - ICCARM - 117 104 + BICOMP + 104 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 @@ -872,22 +1121,22 @@ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c - BICOMP - 308 + ICCARM + 146 330 - ICCARM - 211 307 + BICOMP + 331 - BICOMP - 38 40 5 222 + ICCARM + 62 64 5 158 - ICCARM - 38 40 5 222 + BICOMP + 62 64 5 158 @@ -895,22 +1144,22 @@ $PROJ_DIR$\..\..\..\..\Source\backdoor.c - BICOMP - 83 + ICCARM + 204 103 - ICCARM - 120 79 + BICOMP + 107 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 @@ -918,22 +1167,22 @@ $PROJ_DIR$\..\..\..\..\Source\boot.c - BICOMP - 324 + ICCARM + 353 99 - ICCARM - 330 75 + BICOMP + 347 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 @@ -941,22 +1190,22 @@ $PROJ_DIR$\..\..\..\..\Source\com.c - BICOMP - 84 + ICCARM + 212 106 - ICCARM - 128 82 + BICOMP + 108 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 34 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 58 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 34 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 23 @@ -964,22 +1213,22 @@ $PROJ_DIR$\..\..\..\..\Source\cop.c - BICOMP - 85 + ICCARM + 211 105 - ICCARM - 127 81 + BICOMP + 109 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 @@ -987,22 +1236,22 @@ $PROJ_DIR$\..\..\..\..\Source\file.c - BICOMP - 215 + ICCARM + 156 149 - ICCARM - 221 214 + BICOMP + 150 - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 246 107 198 264 115 195 165 169 243 244 245 219 216 217 220 218 223 224 + ICCARM + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 180 131 282 198 139 279 249 253 177 178 179 154 151 152 155 153 157 159 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 246 107 198 264 115 195 165 169 243 244 245 219 216 217 220 218 223 224 + BICOMP + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 180 131 282 198 139 279 249 253 177 178 179 154 151 152 155 153 157 159 @@ -1010,45 +1259,22 @@ $PROJ_DIR$\..\..\..\..\Source\xcp.c - BICOMP - 86 + ICCARM + 111 102 - ICCARM - 87 78 + BICOMP + 110 - - BICOMP - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 - ICCARM - 46 32 42 229 53 25 50 29 27 31 44 52 38 40 5 48 55 + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c - BICOMP - 316 - - - ICCARM - 146 407 - - - - - BICOMP - 57 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 - - - ICCARM - 57 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + 70 56 66 16 77 25 74 53 51 55 68 76 62 64 5 72 79 @@ -1056,22 +1282,22 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c - BICOMP - 187 + ICCARM + 229 293 - ICCARM - 145 270 + BICOMP + 271 - BICOMP - 65 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + ICCARM + 89 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - ICCARM - 65 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + BICOMP + 89 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 @@ -1079,22 +1305,22 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - BICOMP - 186 + ICCARM + 228 296 - ICCARM - 144 273 + BICOMP + 270 - BICOMP - 63 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + ICCARM + 87 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - ICCARM - 63 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + BICOMP + 87 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 @@ -1102,22 +1328,22 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c - BICOMP - 189 + ICCARM + 231 291 - ICCARM - 147 268 + BICOMP + 273 - BICOMP - 61 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + ICCARM + 85 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - ICCARM - 61 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + BICOMP + 85 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 @@ -1125,22 +1351,22 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c - BICOMP - 188 + ICCARM + 226 292 - ICCARM - 142 269 + BICOMP + 272 - BICOMP - 59 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + ICCARM + 83 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - ICCARM - 59 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + BICOMP + 83 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 @@ -1148,22 +1374,22 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c - BICOMP - 190 + ICCARM + 233 343 - ICCARM - 149 320 + BICOMP + 274 - BICOMP - 382 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + ICCARM + 405 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - ICCARM - 382 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + BICOMP + 405 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 @@ -1172,7 +1398,7 @@ BICOMP - 138 + 222 @@ -1181,13 +1407,13 @@ OBJCOPY - 77 + 101 ILINK - 409 75 275 313 72 74 73 272 407 273 270 269 268 320 319 321 336 337 314 381 97 98 99 100 101 129 130 132 133 134 135 323 322 408 172 339 167 + 48 99 298 336 96 98 97 295 46 296 293 292 291 343 342 344 359 360 337 404 121 122 123 124 125 213 214 215 217 218 219 346 345 47 256 362 251 @@ -1196,17 +1422,17 @@ ILINK - 118 + 202 OBJCOPY - 121 + 205 ILINK - 131 104 79 75 91 82 81 275 93 313 310 214 94 123 73 209 90 381 100 130 133 135 323 96 307 92 322 78 408 172 339 167 + 216 128 103 99 115 106 105 298 117 336 333 149 118 207 97 144 114 404 124 214 217 219 346 120 330 116 345 102 47 256 362 251 @@ -1215,22 +1441,13 @@ OBJCOPY - 344 + 367 ILINK - 409 75 275 313 72 74 73 272 407 273 270 269 268 320 319 321 336 337 314 381 97 98 99 100 101 129 130 132 133 134 135 323 322 408 172 339 167 - - - - - $PROJ_DIR$\Debug\Exe\stm32f103.out - - - ILINK - 409 315 197 274 282 267 312 278 201 202 68 277 175 177 178 179 261 174 69 281 109 170 171 116 375 184 373 376 380 408 172 339 167 + 48 99 298 336 96 98 97 295 46 296 293 292 291 343 342 344 359 360 337 404 121 122 123 124 125 213 214 215 217 218 219 346 345 47 256 362 251 @@ -1238,18 +1455,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c - BICOMP - 355 + ICCARM + 94 219 - ICCARM - 70 135 + BICOMP + 378 ICCARM - 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 + 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1258,7 +1475,7 @@ AARM - 313 + 336 @@ -1266,18 +1483,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - BICOMP - 353 + ICCARM + 244 213 - ICCARM - 160 129 + BICOMP + 376 ICCARM - 237 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 238 230 235 233 362 + 171 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 172 164 169 167 385 @@ -1285,18 +1502,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c - BICOMP - 346 + ICCARM + 247 215 - ICCARM - 163 132 + BICOMP + 369 ICCARM - 230 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 235 233 362 + 164 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 169 167 385 @@ -1304,18 +1521,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - BICOMP - 342 + ICCARM + 225 218 - ICCARM - 141 134 + BICOMP + 365 ICCARM - 233 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 362 + 167 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 385 @@ -1323,18 +1540,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c - BICOMP - 345 + ICCARM + 248 217 - ICCARM - 164 133 + BICOMP + 368 ICCARM - 235 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 233 362 + 169 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 167 385 @@ -1342,18 +1559,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c - BICOMP - 349 + ICCARM + 245 214 - ICCARM - 161 130 + BICOMP + 372 ICCARM - 238 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 230 235 233 362 + 172 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 164 169 167 385 @@ -1361,18 +1578,18 @@ $PROJ_DIR$\..\boot.c - BICOMP - 324 + ICCARM + 353 99 - ICCARM - 330 75 + BICOMP + 347 ICCARM - 249 16 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 248 251 253 255 + 183 80 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 182 185 187 189 @@ -1380,18 +1597,18 @@ $PROJ_DIR$\..\irq.c - BICOMP - 325 + ICCARM + 358 96 - ICCARM - 335 72 + BICOMP + 348 ICCARM - 249 16 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 248 251 253 255 + 183 80 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 182 185 187 189 @@ -1399,18 +1616,18 @@ $PROJ_DIR$\..\led.c - BICOMP - 326 + ICCARM + 354 98 - ICCARM - 331 74 + BICOMP + 349 ICCARM - 249 16 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 248 251 253 255 + 183 80 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 182 185 187 189 @@ -1418,18 +1635,18 @@ $PROJ_DIR$\..\timer.c - BICOMP - 328 + ICCARM + 357 346 - ICCARM - 334 323 + BICOMP + 351 ICCARM - 249 16 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 248 251 253 255 + 183 80 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 182 185 187 189 @@ -1437,18 +1654,18 @@ $PROJ_DIR$\..\vectors.c - BICOMP - 329 + ICCARM + 355 345 - ICCARM - 332 322 + BICOMP + 352 ICCARM - 249 16 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 248 251 253 255 + 183 80 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 182 185 187 189 @@ -1456,18 +1673,18 @@ $PROJ_DIR$\..\src\app\app.c - BICOMP - 347 + ICCARM + 299 220 - ICCARM - 276 136 + BICOMP + 370 ICCARM - 262 260 265 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 258 + 196 194 199 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 192 @@ -1476,7 +1693,7 @@ AARM - 313 + 336 @@ -1484,18 +1701,18 @@ $PROJ_DIR$\..\src\os\os.c - BICOMP - 354 + ICCARM + 95 224 - ICCARM - 71 140 + BICOMP + 377 ICCARM - 260 + 194 @@ -1503,18 +1720,27 @@ $PROJ_DIR$\..\src\hw\hw.c - BICOMP - 193 + ICCARM + 173 223 - ICCARM - 239 139 + BICOMP + 277 ICCARM - 262 260 265 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 258 + 196 194 199 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 192 + + + + + $PROJ_DIR$\Debug\Exe\stm32f103.out + + + ILINK + 48 338 281 297 305 290 335 301 285 286 91 300 259 261 262 263 195 258 93 304 133 254 255 140 398 268 396 399 403 47 256 362 251 @@ -1522,18 +1748,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - BICOMP - 105 + ICCARM + 238 404 - ICCARM - 154 381 + BICOMP + 129 ICCARM - 297 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 304 301 300 302 306 237 238 230 235 233 362 + 320 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 327 324 323 325 329 171 172 164 169 167 385 @@ -1541,18 +1767,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c - BICOMP - 190 + ICCARM + 233 343 - ICCARM - 149 320 + BICOMP + 274 ICCARM - 283 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 + 306 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1560,18 +1786,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c - BICOMP - 338 + ICCARM + 236 360 - ICCARM - 152 337 + BICOMP + 361 ICCARM - 287 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 296 297 304 301 300 302 306 237 238 230 235 233 362 + 310 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1579,18 +1805,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c - BICOMP - 191 + ICCARM + 246 344 - ICCARM - 162 321 + BICOMP + 275 ICCARM - 288 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 + 311 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1598,18 +1824,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c - BICOMP - 192 + ICCARM + 235 359 - ICCARM - 151 336 + BICOMP + 276 ICCARM - 286 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 287 296 297 304 301 300 302 306 237 238 230 235 233 362 + 309 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 310 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1617,18 +1843,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c - BICOMP - 185 + ICCARM + 234 342 - ICCARM - 150 319 + BICOMP + 269 ICCARM - 293 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 + 316 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1636,18 +1862,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - BICOMP - 343 + ICCARM + 237 337 - ICCARM - 153 314 + BICOMP + 366 ICCARM - 296 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 297 304 301 300 302 306 237 238 230 235 233 362 + 319 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1655,18 +1881,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c - BICOMP - 351 + ICCARM + 239 121 - ICCARM - 155 97 + BICOMP + 374 ICCARM - 304 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 301 300 302 306 237 238 230 235 233 362 + 327 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 324 323 325 329 171 172 164 169 167 385 @@ -1674,18 +1900,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c - BICOMP - 352 + ICCARM + 241 123 - ICCARM - 157 99 + BICOMP + 375 ICCARM - 300 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 302 306 237 238 230 235 233 362 + 323 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 325 329 171 172 164 169 167 385 @@ -1693,18 +1919,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c - BICOMP - 341 + ICCARM + 242 124 - ICCARM - 158 100 + BICOMP + 364 ICCARM - 302 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 306 237 238 230 235 233 362 + 325 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 329 171 172 164 169 167 385 @@ -1712,18 +1938,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c - BICOMP - 350 + ICCARM + 240 122 - ICCARM - 156 98 + BICOMP + 373 ICCARM - 301 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 300 302 306 237 238 230 235 233 362 + 324 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 323 325 329 171 172 164 169 167 385 @@ -1731,18 +1957,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c - BICOMP - 340 + ICCARM + 243 125 - ICCARM - 159 101 + BICOMP + 363 ICCARM - 306 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 237 238 230 235 233 362 + 329 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 171 172 164 169 167 385 @@ -1751,7 +1977,7 @@ BILINK - 280 374 279 168 194 377 378 379 108 196 180 181 182 143 183 173 271 166 110 111 113 199 112 114 241 200 176 317 + 303 397 302 252 278 400 401 402 132 280 264 265 266 227 267 257 294 250 134 135 137 283 136 138 175 284 260 340 @@ -1759,18 +1985,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c - BICOMP - 138 + ICCARM + 232 295 - ICCARM - 148 272 + BICOMP + 222 ICCARM - 362 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 + 385 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 @@ -1778,18 +2004,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - BICOMP - 186 + ICCARM + 228 296 - ICCARM - 144 273 + BICOMP + 270 ICCARM - 358 357 369 242 107 198 264 115 195 165 169 372 226 367 363 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 + 381 380 393 176 131 282 198 139 279 249 253 394 161 390 386 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1797,18 +2023,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c - BICOMP - 316 + ICCARM + 230 46 - ICCARM - 146 407 + BICOMP + 339 ICCARM - 363 357 369 242 107 198 264 115 195 165 169 372 226 367 358 364 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 + 386 380 393 176 131 282 198 139 279 249 253 394 161 390 381 387 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1816,18 +2042,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c - BICOMP - 187 + ICCARM + 229 293 - ICCARM - 145 270 + BICOMP + 271 ICCARM - 364 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 366 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 + 387 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 389 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1835,18 +2061,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c - BICOMP - 188 + ICCARM + 226 292 - ICCARM - 142 269 + BICOMP + 272 ICCARM - 366 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 370 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 + 389 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 392 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1854,18 +2080,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c - BICOMP - 189 + ICCARM + 231 291 - ICCARM - 147 268 + BICOMP + 273 ICCARM - 370 357 369 242 107 198 264 115 195 165 169 372 226 367 363 358 364 366 283 293 288 286 287 296 297 304 301 300 302 306 237 238 230 235 233 362 + 392 380 393 176 131 282 198 139 279 249 253 394 161 390 386 381 387 389 306 316 311 309 310 319 320 327 324 323 325 329 171 172 164 169 167 385 @@ -1873,18 +2099,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c - BICOMP - 137 + ICCARM + 174 298 - ICCARM - 240 275 + BICOMP + 221 ICCARM - 242 107 198 264 115 195 165 169 + 176 131 282 198 139 279 249 253 @@ -1892,22 +2118,22 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c - BICOMP - 185 + ICCARM + 234 342 - ICCARM - 150 319 + BICOMP + 269 - BICOMP - 384 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + ICCARM + 407 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - ICCARM - 384 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + BICOMP + 407 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 @@ -1915,252 +2141,22 @@ $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c - BICOMP - 191 + ICCARM + 246 344 - ICCARM - 162 321 + BICOMP + 275 - - BICOMP - 386 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 - ICCARM - 386 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 + 409 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c - BICOMP - 192 - - - ICCARM - 151 336 - - - - - BICOMP - 388 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 - - - ICCARM - 388 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c - - - BICOMP - 338 - - - ICCARM - 152 337 - - - - - BICOMP - 390 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 - - - ICCARM - 390 3 0 242 107 198 264 115 195 165 169 372 1 7 9 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - - - BICOMP - 343 - - - ICCARM - 153 314 - - - - - BICOMP - 392 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - ICCARM - 392 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c - - - BICOMP - 351 - - - ICCARM - 155 97 - - - - - BICOMP - 394 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - ICCARM - 394 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c - - - BICOMP - 350 - - - ICCARM - 156 98 - - - - - BICOMP - 396 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - ICCARM - 396 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c - - - BICOMP - 352 - - - ICCARM - 157 99 - - - - - BICOMP - 398 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - ICCARM - 398 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c - - - BICOMP - 340 - - - ICCARM - 159 101 - - - - - BICOMP - 400 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - ICCARM - 400 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - - - BICOMP - 353 - - - ICCARM - 160 129 - - - - - BICOMP - 402 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - ICCARM - 402 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c - - - BICOMP - 346 - - - ICCARM - 163 132 - - - - - BICOMP - 404 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - ICCARM - 404 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - - - BICOMP - 342 - - - ICCARM - 141 134 - - - - - BICOMP - 406 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 - - - ICCARM - 406 3 0 242 107 198 264 115 195 165 169 372 1 7 11 13 15 + 409 3 0 176 131 282 198 139 279 249 253 394 1 7 9 11 13 15 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf index 1e49fe6a..ad9eaa5c 100644 Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf differ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.map b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.map index 7fac0575..53841f4d 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.map +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.map @@ -1633,6 +1633,18 @@ Discarded input sections .text 0x00000000 0x0 THUMB Debug/../../obj/uart.o .data 0x00000000 0x0 THUMB Debug/../../obj/uart.o .bss 0x00000000 0x0 THUMB Debug/../../obj/uart.o + .text 0x00000000 0x0 THUMB Debug/../../obj/can.o + .data 0x00000000 0x0 THUMB Debug/../../obj/can.o + .bss 0x00000000 0x0 THUMB Debug/../../obj/can.o + .debug_info 0x00000000 0x64 THUMB Debug/../../obj/can.o + .debug_abbrev 0x00000000 0x26 THUMB Debug/../../obj/can.o + .debug_aranges + 0x00000000 0x18 THUMB Debug/../../obj/can.o + .debug_line 0x00000000 0x1d THUMB Debug/../../obj/can.o + .debug_str 0x00000000 0x18a THUMB Debug/../../obj/can.o + .comment 0x00000000 0x4f THUMB Debug/../../obj/can.o + .ARM.attributes + 0x00000000 0x33 THUMB Debug/../../obj/can.o .text 0x00000000 0x0 THUMB Debug/../../obj/assert.o .data 0x00000000 0x0 THUMB Debug/../../obj/assert.o .bss 0x00000000 0x0 THUMB Debug/../../obj/assert.o @@ -2449,7 +2461,7 @@ CM3_System_Control_Space 0xe000e000 0x00001000 xw Linker script and memory map - 0x08006624 __do_debug_operation = __do_debug_operation_mempoll + 0x08006648 __do_debug_operation = __do_debug_operation_mempoll 0x08000000 __FLASH_segment_start__ = 0x8000000 0x08008000 __FLASH_segment_end__ = 0x8008000 0x10000000 __DATA_SRAM_segment_start__ = 0x10000000 @@ -2534,7 +2546,7 @@ Linker script and memory map 0x00000001 . = ASSERT (((__init_end__ >= __FLASH_segment_start__) && (__init_end__ <= __FLASH_segment_end__)), error: .init is too large to fit in FLASH memory segment) 0x08000328 __text_load_start__ = ALIGN (__init_end__, 0x4) -.text 0x08000328 0x6340 +.text 0x08000328 0x6364 0x08000328 __text_start__ = . *(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.* .gcc_except_table .ARM.extab* .gnu.linkonce.armextab.*) .glue_7 0x00000000 0x0 linker stubs @@ -2932,43 +2944,50 @@ Linker script and memory map 0x08005df0 0x1c THUMB Debug/../../obj/file.o .text.FileLibByteToHexString 0x08005e0c 0x24 THUMB Debug/../../obj/file.o - .text.SrecParseLine - 0x08005e30 0x258 THUMB Debug/../../obj/file.o .text.FileInit - 0x08006088 0x30 THUMB Debug/../../obj/file.o - 0x08006088 FileInit + 0x08005e30 0x30 THUMB Debug/../../obj/file.o + 0x08005e30 FileInit .text.FileIsIdle - 0x080060b8 0x14 THUMB Debug/../../obj/file.o - 0x080060b8 FileIsIdle + 0x08005e60 0x14 THUMB Debug/../../obj/file.o + 0x08005e60 FileIsIdle .text.FileHandleFirmwareUpdateRequest - 0x080060cc 0x3c THUMB Debug/../../obj/file.o - 0x080060cc FileHandleFirmwareUpdateRequest + 0x08005e74 0x3c THUMB Debug/../../obj/file.o + 0x08005e74 FileHandleFirmwareUpdateRequest + .text.FileSrecGetLineType + 0x08005eb0 0x44 THUMB Debug/../../obj/file.o + 0x08005eb0 FileSrecGetLineType + .text.FileSrecVerifyChecksum + 0x08005ef4 0x94 THUMB Debug/../../obj/file.o + 0x08005ef4 FileSrecVerifyChecksum + .text.FileSrecParseLine + 0x08005f88 0x1a4 THUMB Debug/../../obj/file.o + 0x08005f88 FileSrecParseLine .text.FileTask - 0x08006108 0x4b4 THUMB Debug/../../obj/file.o - 0x08006108 FileTask + 0x0800612c 0x4b4 THUMB Debug/../../obj/file.o + 0x0800612c FileTask .text.libc.isdigit - 0x080065bc 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - 0x080065bc isdigit + 0x080065e0 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + 0x080065e0 isdigit .text.libc.toupper - 0x080065cc 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - 0x080065cc toupper + 0x080065f0 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + 0x080065f0 toupper .text.libc.memcpy - 0x080065dc 0x48 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2_asm.o) - 0x080065dc __aeabi_memcpy - 0x080065dc __aeabi_memcpy4 - 0x080065dc __aeabi_memcpy8 - 0x080065dc memcpy + 0x08006600 0x48 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2_asm.o) + 0x08006600 __aeabi_memcpy + 0x08006600 __aeabi_memcpy4 + 0x08006600 __aeabi_memcpy8 + 0x08006600 memcpy .text.libdebugio.__do_debug_operation_mempoll - 0x08006624 0x3c C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - 0x08006624 __do_debug_operation_mempoll + 0x08006648 0x3c C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + 0x08006648 __do_debug_operation_mempoll .text.libc.__debug_io_lock - 0x08006660 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) - 0x08006660 __debug_io_lock + 0x08006684 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + 0x08006684 __debug_io_lock .text.libc.__debug_io_unlock - 0x08006664 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) - 0x08006664 __debug_io_unlock - 0x08006668 __text_end__ = (__text_start__ + SIZEOF (.text)) - 0x08006668 __text_load_end__ = __text_end__ + 0x08006688 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + 0x08006688 __debug_io_unlock + 0x0800668c __text_end__ = (__text_start__ + SIZEOF (.text)) + 0x0800668c __text_load_end__ = __text_end__ .vfp11_veneer 0x00000000 0x0 .vfp11_veneer 0x00000000 0x0 linker stubs @@ -2979,87 +2998,87 @@ Linker script and memory map .iplt 0x00000000 0x0 .iplt 0x00000000 0x0 THUMB Debug/../../obj/mmc.o 0x00000001 . = ASSERT (((__text_end__ >= __FLASH_segment_start__) && (__text_end__ <= __FLASH_segment_end__)), error: .text is too large to fit in FLASH memory segment) - 0x08006668 __dtors_load_start__ = ALIGN (__text_end__, 0x4) + 0x0800668c __dtors_load_start__ = ALIGN (__text_end__, 0x4) -.dtors 0x08006668 0x0 - 0x08006668 __dtors_start__ = . +.dtors 0x0800668c 0x0 + 0x0800668c __dtors_start__ = . *(SORT(.dtors.*)) *(.dtors) *(.fini_array .fini_array.*) - 0x08006668 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors)) - 0x08006668 __dtors_load_end__ = __dtors_end__ + 0x0800668c __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors)) + 0x0800668c __dtors_load_end__ = __dtors_end__ 0x00000001 . = ASSERT (((__dtors_end__ >= __FLASH_segment_start__) && (__dtors_end__ <= __FLASH_segment_end__)), error: .dtors is too large to fit in FLASH memory segment) - 0x08006668 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4) + 0x0800668c __ctors_load_start__ = ALIGN (__dtors_end__, 0x4) -.ctors 0x08006668 0x0 - 0x08006668 __ctors_start__ = . +.ctors 0x0800668c 0x0 + 0x0800668c __ctors_start__ = . *(SORT(.ctors.*)) *(.ctors) *(.init_array .init_array.*) - 0x08006668 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors)) - 0x08006668 __ctors_load_end__ = __ctors_end__ + 0x0800668c __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors)) + 0x0800668c __ctors_load_end__ = __ctors_end__ 0x00000001 . = ASSERT (((__ctors_end__ >= __FLASH_segment_start__) && (__ctors_end__ <= __FLASH_segment_end__)), error: .ctors is too large to fit in FLASH memory segment) - 0x08006668 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4) + 0x0800668c __rodata_load_start__ = ALIGN (__ctors_end__, 0x4) -.rodata 0x08006668 0x96c - 0x08006668 __rodata_start__ = . +.rodata 0x0800668c 0x96c + 0x0800668c __rodata_start__ = . *(.rodata .rodata.* .gnu.linkonce.r.*) .rodata.firmwareFilename - 0x08006668 0x20 THUMB Debug/../../obj/hooks.o + 0x0800668c 0x20 THUMB Debug/../../obj/hooks.o .rodata.str1.4 - 0x08006688 0xd THUMB Debug/../../obj/hooks.o + 0x080066ac 0xd THUMB Debug/../../obj/hooks.o 0x10 (size before relaxing) - *fill* 0x08006695 0x3 00 + *fill* 0x080066b9 0x3 00 .rodata.str1.4 - 0x08006698 0x8c THUMB Debug/../../obj/vectors.o + 0x080066bc 0x8c THUMB Debug/../../obj/vectors.o .rodata.flashSectorNumToMask - 0x08006724 0x30 THUMB Debug/../../obj/flash.o + 0x08006748 0x30 THUMB Debug/../../obj/flash.o .rodata.flashLayout - 0x08006754 0x78 THUMB Debug/../../obj/flash.o + 0x08006778 0x78 THUMB Debug/../../obj/flash.o .rodata.str1.4 - 0x080067cc 0x7e THUMB Debug/../../obj/uart.o + 0x080067f0 0x7e THUMB Debug/../../obj/uart.o 0x80 (size before relaxing) - *fill* 0x0800684a 0x2 00 + *fill* 0x0800686e 0x2 00 .rodata.xcpStationId - 0x0800684c 0x8 THUMB Debug/../../obj/xcp.o + 0x08006870 0x8 THUMB Debug/../../obj/xcp.o .rodata.str1.4 - 0x08006854 0x13 THUMB Debug/../../obj/ff.o + 0x08006878 0x13 THUMB Debug/../../obj/ff.o 0x14 (size before relaxing) - *fill* 0x08006867 0x1 00 - .rodata.ExCvt 0x08006868 0x80 THUMB Debug/../../obj/ff.o + *fill* 0x0800688b 0x1 00 + .rodata.ExCvt 0x0800688c 0x80 THUMB Debug/../../obj/ff.o .rodata.LfnOfs - 0x080068e8 0x10 THUMB Debug/../../obj/ff.o + 0x0800690c 0x10 THUMB Debug/../../obj/ff.o .rodata.tbl_lower.3809 - 0x080068f8 0x1e0 THUMB Debug/../../obj/unicode.o - .rodata.Tbl 0x08006ad8 0x100 THUMB Debug/../../obj/unicode.o + 0x0800691c 0x1e0 THUMB Debug/../../obj/unicode.o + .rodata.Tbl 0x08006afc 0x100 THUMB Debug/../../obj/unicode.o .rodata.tbl_upper.3810 - 0x08006bd8 0x1e0 THUMB Debug/../../obj/unicode.o + 0x08006bfc 0x1e0 THUMB Debug/../../obj/unicode.o .rodata.str1.4 - 0x08006db8 0x21c THUMB Debug/../../obj/file.o + 0x08006ddc 0x21c THUMB Debug/../../obj/file.o 0x220 (size before relaxing) - 0x08006fd4 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata)) - 0x08006fd4 __rodata_load_end__ = __rodata_end__ + 0x08006ff8 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata)) + 0x08006ff8 __rodata_load_end__ = __rodata_end__ .rel.dyn 0x08000000 0x0 .rel.iplt 0x00000000 0x0 THUMB Debug/../../obj/mmc.o 0x00000001 . = ASSERT (((__rodata_end__ >= __FLASH_segment_start__) && (__rodata_end__ <= __FLASH_segment_end__)), error: .rodata is too large to fit in FLASH memory segment) - 0x08006fd4 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4) + 0x08006ff8 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4) -.ARM.exidx 0x08006fd4 0x0 - 0x08006fd4 __ARM.exidx_start__ = . - 0x08006fd4 __exidx_start = __ARM.exidx_start__ +.ARM.exidx 0x08006ff8 0x0 + 0x08006ff8 __ARM.exidx_start__ = . + 0x08006ff8 __exidx_start = __ARM.exidx_start__ *(.ARM.exidx .ARM.exidx.*) - 0x08006fd4 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx)) - 0x08006fd4 __exidx_end = __ARM.exidx_end__ - 0x08006fd4 __ARM.exidx_load_end__ = __ARM.exidx_end__ + 0x08006ff8 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx)) + 0x08006ff8 __exidx_end = __ARM.exidx_end__ + 0x08006ff8 __ARM.exidx_load_end__ = __ARM.exidx_end__ 0x00000001 . = ASSERT (((__ARM.exidx_end__ >= __FLASH_segment_start__) && (__ARM.exidx_end__ <= __FLASH_segment_end__)), error: .ARM.exidx is too large to fit in FLASH memory segment) - 0x08006fd4 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4) + 0x08006ff8 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4) -.fast 0x20000000 0x0 load address 0x08006fd4 +.fast 0x20000000 0x0 load address 0x08006ff8 0x20000000 __fast_start__ = . *(.fast .fast.*) 0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast)) - 0x08006fd4 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast)) + 0x08006ff8 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast)) 0x00000001 . = ASSERT (((__fast_load_end__ >= __FLASH_segment_start__) && (__fast_load_end__ <= __FLASH_segment_end__)), error: .fast is too large to fit in FLASH memory segment) .fast_run 0x20000000 0x0 @@ -3068,9 +3087,9 @@ Linker script and memory map 0x20000000 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run)) 0x20000000 __fast_run_load_end__ = __fast_run_end__ 0x00000001 . = ASSERT (((__fast_run_end__ >= __RAM_segment_start__) && (__fast_run_end__ <= __RAM_segment_end__)), error: .fast_run is too large to fit in RAM memory segment) - 0x08006fd4 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4) + 0x08006ff8 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4) -.data 0x20000000 0x18 load address 0x08006fd4 +.data 0x20000000 0x18 load address 0x08006ff8 0x20000000 __data_start__ = . *(.data .data.* .gnu.linkonce.d.*) .data.DMAEndOfTransfer @@ -3080,13 +3099,13 @@ Linker script and memory map .data.APBAHBPrescTable 0x20000008 0x10 THUMB Debug/../../obj/stm32f4xx_rcc.o 0x20000018 __data_end__ = (__data_start__ + SIZEOF (.data)) - 0x08006fec __data_load_end__ = (__data_load_start__ + SIZEOF (.data)) + 0x08007010 __data_load_end__ = (__data_load_start__ + SIZEOF (.data)) .igot.plt 0x00000000 0x0 .igot.plt 0x00000000 0x0 THUMB Debug/../../obj/mmc.o 0x00000001 . = ASSERT (((__data_load_end__ >= __FLASH_segment_start__) && (__data_load_end__ <= __FLASH_segment_end__)), error: .data is too large to fit in FLASH memory segment) -.data_run 0x20000000 0x18 load address 0x08006fd4 +.data_run 0x20000000 0x18 load address 0x08006ff8 0x20000000 __data_run_start__ = . 0x20000018 . = MAX ((__data_run_start__ + SIZEOF (.data)), .) *fill* 0x20000000 0x18 00 @@ -3095,7 +3114,7 @@ Linker script and memory map 0x00000001 . = ASSERT (((__data_run_end__ >= __RAM_segment_start__) && (__data_run_end__ <= __RAM_segment_end__)), error: .data_run is too large to fit in RAM memory segment) 0x20000018 __bss_load_start__ = ALIGN (__data_run_end__, 0x4) -.bss 0x20000018 0x1028 +.bss 0x20000018 0x1024 0x20000018 __bss_start__ = . *(.bss .bss.* .gnu.linkonce.b.*) .bss.TransferError @@ -3124,115 +3143,114 @@ Linker script and memory map 0x20000514 0x204 THUMB Debug/../../obj/flash.o .bss.millisecond_counter 0x20000718 0x4 THUMB Debug/../../obj/timer.o - .bss.xcpCtoRxInProgress.7303 - 0x2000071c 0x1 THUMB Debug/../../obj/uart.o - *fill* 0x2000071d 0x3 00 - .bss.xcpCtoReqPacket.7301 - 0x20000720 0x44 THUMB Debug/../../obj/uart.o - .bss.xcpCtoRxLength.7302 - 0x20000764 0x1 THUMB Debug/../../obj/uart.o - *fill* 0x20000765 0x3 00 + .bss.xcpCtoReqPacket.7320 + 0x2000071c 0x44 THUMB Debug/../../obj/uart.o + .bss.xcpCtoRxLength.7321 + 0x20000760 0x1 THUMB Debug/../../obj/uart.o + .bss.xcpCtoRxInProgress.7322 + 0x20000761 0x1 THUMB Debug/../../obj/uart.o + *fill* 0x20000762 0x2 00 .bss.assert_failure_file - 0x20000768 0x4 THUMB Debug/../../obj/assert.o + 0x20000764 0x4 THUMB Debug/../../obj/assert.o .bss.assert_failure_line - 0x2000076c 0x4 THUMB Debug/../../obj/assert.o + 0x20000768 0x4 THUMB Debug/../../obj/assert.o .bss.backdoorOpen - 0x20000770 0x1 THUMB Debug/../../obj/backdoor.o - *fill* 0x20000771 0x3 00 + 0x2000076c 0x1 THUMB Debug/../../obj/backdoor.o + *fill* 0x2000076d 0x3 00 .bss.backdoorOpenTime - 0x20000774 0x4 THUMB Debug/../../obj/backdoor.o + 0x20000770 0x4 THUMB Debug/../../obj/backdoor.o .bss.comEntryStateConnect - 0x20000778 0x1 THUMB Debug/../../obj/com.o - *fill* 0x20000779 0x3 00 - .bss.xcpCtoReqPacket.3915 - 0x2000077c 0x40 THUMB Debug/../../obj/com.o - .bss.xcpInfo 0x200007bc 0x4c THUMB Debug/../../obj/xcp.o - .bss.LfnBuf 0x20000808 0x200 THUMB Debug/../../obj/ff.o - .bss.Fsid 0x20000a08 0x2 THUMB Debug/../../obj/ff.o - *fill* 0x20000a0a 0x2 00 - .bss.FatFs 0x20000a0c 0x4 THUMB Debug/../../obj/ff.o + 0x20000774 0x1 THUMB Debug/../../obj/com.o + *fill* 0x20000775 0x3 00 + .bss.xcpCtoReqPacket.3934 + 0x20000778 0x40 THUMB Debug/../../obj/com.o + .bss.xcpInfo 0x200007b8 0x4c THUMB Debug/../../obj/xcp.o + .bss.LfnBuf 0x20000804 0x200 THUMB Debug/../../obj/ff.o + .bss.Fsid 0x20000a04 0x2 THUMB Debug/../../obj/ff.o + *fill* 0x20000a06 0x2 00 + .bss.FatFs 0x20000a08 0x4 THUMB Debug/../../obj/ff.o .bss.loggingStr - 0x20000a10 0x40 THUMB Debug/../../obj/file.o + 0x20000a0c 0x40 THUMB Debug/../../obj/file.o .bss.firmwareUpdateState - 0x20000a50 0x1 THUMB Debug/../../obj/file.o - *fill* 0x20000a51 0x3 00 + 0x20000a4c 0x1 THUMB Debug/../../obj/file.o + *fill* 0x20000a4d 0x3 00 .bss.eraseInfo - 0x20000a54 0x8 THUMB Debug/../../obj/file.o + 0x20000a50 0x8 THUMB Debug/../../obj/file.o .bss.fatFsObjects - 0x20000a5c 0x458 THUMB Debug/../../obj/file.o + 0x20000a58 0x458 THUMB Debug/../../obj/file.o .bss.lineParseObject - 0x20000eb4 0x184 THUMB Debug/../../obj/file.o + 0x20000eb0 0x184 THUMB Debug/../../obj/file.o .bss.libdebugio.dbgCommWord - 0x20001038 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - 0x20001038 dbgCommWord + 0x20001034 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + 0x20001034 dbgCommWord .bss.libdebugio.dbgCntrlWord_mempoll - 0x2000103c 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - 0x2000103c dbgCntrlWord_mempoll + 0x20001038 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + 0x20001038 dbgCntrlWord_mempoll *(COMMON) - 0x20001040 __bss_end__ = (__bss_start__ + SIZEOF (.bss)) - 0x20001040 __bss_load_end__ = __bss_end__ + 0x2000103c __bss_end__ = (__bss_start__ + SIZEOF (.bss)) + 0x2000103c __bss_load_end__ = __bss_end__ 0x00000001 . = ASSERT (((__bss_end__ >= __RAM_segment_start__) && (__bss_end__ <= __RAM_segment_end__)), error: .bss is too large to fit in RAM memory segment) - 0x20001040 __non_init_load_start__ = ALIGN (__bss_end__, 0x4) + 0x2000103c __non_init_load_start__ = ALIGN (__bss_end__, 0x4) -.non_init 0x20001040 0x0 - 0x20001040 __non_init_start__ = . +.non_init 0x2000103c 0x0 + 0x2000103c __non_init_start__ = . *(.non_init .non_init.*) - 0x20001040 __non_init_end__ = (__non_init_start__ + SIZEOF (.non_init)) - 0x20001040 __non_init_load_end__ = __non_init_end__ + 0x2000103c __non_init_end__ = (__non_init_start__ + SIZEOF (.non_init)) + 0x2000103c __non_init_load_end__ = __non_init_end__ 0x00000001 . = ASSERT (((__non_init_end__ >= __RAM_segment_start__) && (__non_init_end__ <= __RAM_segment_end__)), error: .non_init is too large to fit in RAM memory segment) - 0x20001040 __heap_load_start__ = ALIGN (__non_init_end__, 0x4) + 0x2000103c __heap_load_start__ = ALIGN (__non_init_end__, 0x4) -.heap 0x20001040 0x800 - 0x20001040 __heap_start__ = . +.heap 0x2000103c 0x800 + 0x2000103c __heap_start__ = . *(.heap .heap.*) - 0x20001840 . = ALIGN (MAX ((__heap_start__ + __HEAPSIZE__), .), 0x4) - *fill* 0x20001040 0x800 00 - 0x20001840 __heap_end__ = (__heap_start__ + SIZEOF (.heap)) - 0x20001840 __heap_load_end__ = __heap_end__ + 0x2000183c . = ALIGN (MAX ((__heap_start__ + __HEAPSIZE__), .), 0x4) + *fill* 0x2000103c 0x800 00 + 0x2000183c __heap_end__ = (__heap_start__ + SIZEOF (.heap)) + 0x2000183c __heap_load_end__ = __heap_end__ 0x00000001 . = ASSERT (((__heap_end__ >= __RAM_segment_start__) && (__heap_end__ <= __RAM_segment_end__)), error: .heap is too large to fit in RAM memory segment) - 0x20001840 __stack_load_start__ = ALIGN (__heap_end__, 0x4) + 0x2000183c __stack_load_start__ = ALIGN (__heap_end__, 0x4) -.stack 0x20001840 0x800 - 0x20001840 __stack_start__ = . +.stack 0x2000183c 0x800 + 0x2000183c __stack_start__ = . *(.stack .stack.*) - 0x20002040 . = ALIGN (MAX ((__stack_start__ + __STACKSIZE__), .), 0x4) - *fill* 0x20001840 0x800 00 - 0x20002040 __stack_end__ = (__stack_start__ + SIZEOF (.stack)) - 0x20002040 __stack_load_end__ = __stack_end__ + 0x2000203c . = ALIGN (MAX ((__stack_start__ + __STACKSIZE__), .), 0x4) + *fill* 0x2000183c 0x800 00 + 0x2000203c __stack_end__ = (__stack_start__ + SIZEOF (.stack)) + 0x2000203c __stack_load_end__ = __stack_end__ 0x00000001 . = ASSERT (((__stack_end__ >= __RAM_segment_start__) && (__stack_end__ <= __RAM_segment_end__)), error: .stack is too large to fit in RAM memory segment) - 0x20002040 __stack_process_load_start__ = ALIGN (__stack_end__, 0x4) + 0x2000203c __stack_process_load_start__ = ALIGN (__stack_end__, 0x4) -.stack_process 0x20002040 0x0 - 0x20002040 __stack_process_start__ = . +.stack_process 0x2000203c 0x0 + 0x2000203c __stack_process_start__ = . *(.stack_process .stack_process.*) - 0x20002040 . = ALIGN (MAX ((__stack_process_start__ + __STACKSIZE_PROCESS__), .), 0x4) - 0x20002040 __stack_process_end__ = (__stack_process_start__ + SIZEOF (.stack_process)) - 0x20002040 __stack_process_load_end__ = __stack_process_end__ + 0x2000203c . = ALIGN (MAX ((__stack_process_start__ + __STACKSIZE_PROCESS__), .), 0x4) + 0x2000203c __stack_process_end__ = (__stack_process_start__ + SIZEOF (.stack_process)) + 0x2000203c __stack_process_load_end__ = __stack_process_end__ 0x00000001 . = ASSERT (((__stack_process_end__ >= __RAM_segment_start__) && (__stack_process_end__ <= __RAM_segment_end__)), error: .stack_process is too large to fit in RAM memory segment) - 0x20002040 __tbss_load_start__ = ALIGN (__stack_process_end__, 0x4) + 0x2000203c __tbss_load_start__ = ALIGN (__stack_process_end__, 0x4) -.tbss 0x20002040 0x0 - 0x20002040 __tbss_start__ = . +.tbss 0x2000203c 0x0 + 0x2000203c __tbss_start__ = . *(.tbss .tbss.*) - 0x20002040 __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss)) - 0x20002040 __tbss_load_end__ = __tbss_end__ + 0x2000203c __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss)) + 0x2000203c __tbss_load_end__ = __tbss_end__ 0x00000001 . = ASSERT (((__tbss_end__ >= __RAM_segment_start__) && (__tbss_end__ <= __RAM_segment_end__)), error: .tbss is too large to fit in RAM memory segment) - 0x08006fec __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + 0x08007010 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) -.tdata 0x20002040 0x0 load address 0x08006fec - 0x20002040 __tdata_start__ = . +.tdata 0x2000203c 0x0 load address 0x08007010 + 0x2000203c __tdata_start__ = . *(.tdata .tdata.*) - 0x20002040 __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata)) - 0x08006fec __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata)) - 0x08006fec __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata)) + 0x2000203c __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata)) + 0x08007010 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata)) + 0x08007010 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata)) 0x00000001 . = ASSERT (((__tdata_load_end__ >= __FLASH_segment_start__) && (__tdata_load_end__ <= __FLASH_segment_end__)), error: .tdata is too large to fit in FLASH memory segment) -.tdata_run 0x20002040 0x0 - 0x20002040 __tdata_run_start__ = . - 0x20002040 . = MAX ((__tdata_run_start__ + SIZEOF (.tdata)), .) - 0x20002040 __tdata_run_end__ = (__tdata_run_start__ + SIZEOF (.tdata_run)) - 0x20002040 __tdata_run_load_end__ = __tdata_run_end__ - 0x20002040 __RAM_segment_used_end__ = (ALIGN (__tbss_end__, 0x4) + SIZEOF (.tdata_run)) +.tdata_run 0x2000203c 0x0 + 0x2000203c __tdata_run_start__ = . + 0x2000203c . = MAX ((__tdata_run_start__ + SIZEOF (.tdata)), .) + 0x2000203c __tdata_run_end__ = (__tdata_run_start__ + SIZEOF (.tdata_run)) + 0x2000203c __tdata_run_load_end__ = __tdata_run_end__ + 0x2000203c __RAM_segment_used_end__ = (ALIGN (__tbss_end__, 0x4) + SIZEOF (.tdata_run)) 0x00000001 . = ASSERT (((__tdata_run_end__ >= __RAM_segment_start__) && (__tdata_run_end__ <= __RAM_segment_end__)), error: .tdata_run is too large to fit in RAM memory segment) START GROUP LOAD THUMB Debug/../../obj/mmc.o @@ -3277,6 +3295,7 @@ LOAD THUMB Debug/../../obj/flash.o LOAD THUMB Debug/../../obj/nvm.o LOAD THUMB Debug/../../obj/timer.o LOAD THUMB Debug/../../obj/uart.o +LOAD THUMB Debug/../../obj/can.o LOAD THUMB Debug/../../obj/assert.o LOAD THUMB Debug/../../obj/backdoor.o LOAD THUMB Debug/../../obj/boot.o @@ -3296,7 +3315,7 @@ LOAD C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib END GROUP OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/../bin/openbtl_olimex_stm32e407.elf elf32-littlearm) -.debug_frame 0x00000000 0x3b20 +.debug_frame 0x00000000 0x3b54 .debug_frame 0x00000000 0x4e0 THUMB Debug/../../obj/mmc.o .debug_frame 0x000004e0 0x38 THUMB Debug/../../obj/system_stm32f4xx.o .debug_frame 0x00000518 0x2c8 THUMB Debug/../../obj/stm32f4xx_flash.o @@ -3320,13 +3339,13 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_frame 0x00001698 0x80 THUMB Debug/../../obj/xcp.o .debug_frame 0x00001718 0x688 THUMB Debug/../../obj/ff.o .debug_frame 0x00001da0 0x30 THUMB Debug/../../obj/unicode.o - .debug_frame 0x00001dd0 0x120 THUMB Debug/../../obj/file.o - .debug_frame 0x00001ef0 0x12e0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - .debug_frame 0x000031d0 0x120 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2_asm.o) - .debug_frame 0x000032f0 0x790 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - .debug_frame 0x00003a80 0xa0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + .debug_frame 0x00001dd0 0x154 THUMB Debug/../../obj/file.o + .debug_frame 0x00001f24 0x12e0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_frame 0x00003204 0x120 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2_asm.o) + .debug_frame 0x00003324 0x790 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_frame 0x00003ab4 0xa0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) -.debug_info 0x00000000 0x1000f +.debug_info 0x00000000 0x10008 .debug_info 0x00000000 0x35cb THUMB Debug/../../obj/mmc.o .debug_info 0x000035cb 0x61d THUMB Debug/../../obj/system_stm32f4xx.o .debug_info 0x00003be8 0x8a0 THUMB Debug/../../obj/stm32f4xx_flash.o @@ -3351,12 +3370,12 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_info 0x00009ba6 0x83a THUMB Debug/../../obj/xcp.o .debug_info 0x0000a3e0 0x3562 THUMB Debug/../../obj/ff.o .debug_info 0x0000d942 0x169 THUMB Debug/../../obj/unicode.o - .debug_info 0x0000daab 0x122d THUMB Debug/../../obj/file.o - .debug_info 0x0000ecd8 0xd02 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - .debug_info 0x0000f9da 0x55f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - .debug_info 0x0000ff39 0xd6 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + .debug_info 0x0000daab 0x1226 THUMB Debug/../../obj/file.o + .debug_info 0x0000ecd1 0xd02 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_info 0x0000f9d3 0x55f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_info 0x0000ff32 0xd6 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) -.debug_abbrev 0x00000000 0x27e3 +.debug_abbrev 0x00000000 0x2799 .debug_abbrev 0x00000000 0x370 THUMB Debug/../../obj/mmc.o .debug_abbrev 0x00000370 0x158 THUMB Debug/../../obj/system_stm32f4xx.o .debug_abbrev 0x000004c8 0x1a9 THUMB Debug/../../obj/stm32f4xx_flash.o @@ -3381,12 +3400,12 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_abbrev 0x00001e2a 0x24d THUMB Debug/../../obj/xcp.o .debug_abbrev 0x00002077 0x337 THUMB Debug/../../obj/ff.o .debug_abbrev 0x000023ae 0xa8 THUMB Debug/../../obj/unicode.o - .debug_abbrev 0x00002456 0x25c THUMB Debug/../../obj/file.o - .debug_abbrev 0x000026b2 0xcb C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - .debug_abbrev 0x0000277d 0x3e C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - .debug_abbrev 0x000027bb 0x28 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + .debug_abbrev 0x00002456 0x212 THUMB Debug/../../obj/file.o + .debug_abbrev 0x00002668 0xcb C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_abbrev 0x00002733 0x3e C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_abbrev 0x00002771 0x28 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) -.debug_loc 0x00000000 0xeb2d +.debug_loc 0x00000000 0xeb43 .debug_loc 0x00000000 0x2289 THUMB Debug/../../obj/mmc.o .debug_loc 0x00002289 0x1a7 THUMB Debug/../../obj/system_stm32f4xx.o .debug_loc 0x00002430 0x83a THUMB Debug/../../obj/stm32f4xx_flash.o @@ -3409,11 +3428,11 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_loc 0x00005c84 0x248 THUMB Debug/../../obj/xcp.o .debug_loc 0x00005ecc 0x68fe THUMB Debug/../../obj/ff.o .debug_loc 0x0000c7ca 0x179 THUMB Debug/../../obj/unicode.o - .debug_loc 0x0000c943 0x964 THUMB Debug/../../obj/file.o - .debug_loc 0x0000d2a7 0x1092 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - .debug_loc 0x0000e339 0x7f4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_loc 0x0000c943 0x97a THUMB Debug/../../obj/file.o + .debug_loc 0x0000d2bd 0x1092 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_loc 0x0000e34f 0x7f4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) -.debug_aranges 0x00000000 0x1360 +.debug_aranges 0x00000000 0x1370 .debug_aranges 0x00000000 0x140 THUMB Debug/../../obj/mmc.o .debug_aranges @@ -3463,15 +3482,15 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_aranges 0x00000b58 0x28 THUMB Debug/../../obj/unicode.o .debug_aranges - 0x00000b80 0x60 THUMB Debug/../../obj/file.o + 0x00000b80 0x70 THUMB Debug/../../obj/file.o .debug_aranges - 0x00000be0 0x508 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + 0x00000bf0 0x508 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) .debug_aranges - 0x000010e8 0x218 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + 0x000010f8 0x218 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) .debug_aranges - 0x00001300 0x60 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + 0x00001310 0x60 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) -.debug_ranges 0x00000000 0x1468 +.debug_ranges 0x00000000 0x1420 .debug_ranges 0x00000000 0x1f0 THUMB Debug/../../obj/mmc.o .debug_ranges 0x000001f0 0x18 THUMB Debug/../../obj/system_stm32f4xx.o .debug_ranges 0x00000208 0x108 THUMB Debug/../../obj/stm32f4xx_flash.o @@ -3495,12 +3514,12 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_ranges 0x00000910 0x80 THUMB Debug/../../obj/xcp.o .debug_ranges 0x00000990 0x2c8 THUMB Debug/../../obj/ff.o .debug_ranges 0x00000c58 0x18 THUMB Debug/../../obj/unicode.o - .debug_ranges 0x00000c70 0xa8 THUMB Debug/../../obj/file.o - .debug_ranges 0x00000d18 0x4f8 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - .debug_ranges 0x00001210 0x208 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - .debug_ranges 0x00001418 0x50 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + .debug_ranges 0x00000c70 0x60 THUMB Debug/../../obj/file.o + .debug_ranges 0x00000cd0 0x4f8 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_ranges 0x000011c8 0x208 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_ranges 0x000013d0 0x50 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) -.debug_line 0x00000000 0x5e02 +.debug_line 0x00000000 0x5e4c .debug_line 0x00000000 0xb4f THUMB Debug/../../obj/mmc.o .debug_line 0x00000b4f 0x21c THUMB Debug/../../obj/system_stm32f4xx.o .debug_line 0x00000d6b 0x49f THUMB Debug/../../obj/stm32f4xx_flash.o @@ -3525,12 +3544,12 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_line 0x00003bcf 0x1fd THUMB Debug/../../obj/xcp.o .debug_line 0x00003dcc 0xfb9 THUMB Debug/../../obj/ff.o .debug_line 0x00004d85 0x185 THUMB Debug/../../obj/unicode.o - .debug_line 0x00004f0a 0x381 THUMB Debug/../../obj/file.o - .debug_line 0x0000528b 0x5b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - .debug_line 0x0000583e 0x550 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - .debug_line 0x00005d8e 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + .debug_line 0x00004f0a 0x3cb THUMB Debug/../../obj/file.o + .debug_line 0x000052d5 0x5b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_line 0x00005888 0x550 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_line 0x00005dd8 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) -.debug_str 0x00000000 0x4a49 +.debug_str 0x00000000 0x4a55 .debug_str 0x00000000 0x1460 THUMB Debug/../../obj/mmc.o 0x1526 (size before relaxing) .debug_str 0x00001460 0x276 THUMB Debug/../../obj/system_stm32f4xx.o @@ -3577,13 +3596,13 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw 0x74c (size before relaxing) .debug_str 0x00003cc4 0x99 THUMB Debug/../../obj/unicode.o 0x165 (size before relaxing) - .debug_str 0x00003d5d 0x2f8 THUMB Debug/../../obj/file.o - 0x7dd (size before relaxing) - .debug_str 0x00004055 0x56f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_str 0x00003d5d 0x304 THUMB Debug/../../obj/file.o + 0x7e9 (size before relaxing) + .debug_str 0x00004061 0x56f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) 0x655 (size before relaxing) - .debug_str 0x000045c4 0x3b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_str 0x000045d0 0x3b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) 0x3fc (size before relaxing) - .debug_str 0x00004977 0xd2 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + .debug_str 0x00004983 0xd2 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) 0x11b (size before relaxing) .comment 0x00000000 0x4e diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.srec b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.srec index 4ca15ada..bbd17502 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.srec +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.srec @@ -1,5 +1,5 @@ S02B0000433A2F576F726B2F736F6674776172652F4F70656E424C542F5461726765742F44656D6F2F41524DEF -S315080000004020002017020008D1220008D12200084B +S315080000003C20002017020008D1220008D12200084F S31508000010D1220008D1220008D1220008D1220008E6 S31508000020D1220008D1220008D1220008D1220008D6 S31508000030D1220008D1220008D1220008D1220008C6 @@ -44,12 +44,12 @@ S3150800028803BCF7E700208646EC4600200021234AEF S315080002989047FEE7884207D0521A05D003780130FE S315080002A80B700131013AF9D17047884202D00270C1 S315080002B80130FAE77047000008ED00E00000000882 -S315080002C840200020D46F00080000002018000020F5 -S315080002D8280300082803000868660008D46F000881 -S315080002E8000000200000002068660008686600080C -S315080002F86866000868660008686600086866000890 -S315080003086866000868660008D46F000818000020A8 -S315080003184010002040100020401800204522000800 +S315080002C83C200020F86F00080000002018000020D5 +S315080002D828030008280300088C660008F86F000839 +S315080002E800000020000000208C6600088C660008C4 +S315080002F88C6600088C6600088C6600088C66000800 +S315080003088C6600088C660008F86F0008180000203C +S315080003183C1000203C1000203C180020452200080C S3150800032808B54FF43053C4F20103586B10F0450F63 S3150800033807D14FF43052C4F20102506B10F0450F42 S31508000348FBD010F0040F06D04FF0040001F01EFE93 @@ -376,13 +376,13 @@ S3150800174840F20402C2F20002107808BD2DE9B0433F S31508001758ADF5027D88461746C8B120E04FF0000966 S315080017684FF40075E219009502A84FEA42224B4643 S31508001778FFF71AFDB0B9FFF7A3FF0128FBD008EB5E -S31508001788442002A92A4604F025FF8CB90DE003F186 +S31508001788442002A92A4604F037FF8CB90DE003F174 S31508001798FF34E4B2002BE1D14FF001000CE04FF022 S315080017A8010009E04FF0010006E04FF0000003E0F1 S315080017B804F1FF30C4B2D5E70DF5027DBDE8B08364 S315080017C82DE9F043ADF5037D0F469046E8B124E0D0 S315080017D84FF400754FF0000902A807EB44212A4682 -S315080017E804F0F8FE04EB0802009502A84FEA422224 +S315080017E804F00AFF04EB0802009502A84FEA422211 S315080017F84B46FFF7F3FD064608B1052810D1FFF753 S315080018085FFF0128FBD08CB90DE003F1FF34E4B281 S31508001818002BDDD14FF001000CE04FF0010009E084 @@ -527,18 +527,18 @@ S315080020B823F400514FEA01424FEA124383817047DD S315080020C84FEAC1514FEAD1528280704780884FEA59 S315080020D8C0514FEAD1507047038819420CBF0020F7 S315080020E80120704700B589B04FF0000300930193AB -S315080020F802930393049305930693079346F268603D +S315080020F802930393049305930693079346F28C6019 S31508002108C0F60000694603F0BFFC40B9009848B11C S315080021189DF8081081F01002C2F3001004E04FF091 -S31508002128000001E04FF0000009B000BD46F2686003 +S31508002128000001E04FF0000009B000BD46F28C60DF S31508002138C0F60000704700BF08B540F2E800C2F2D2 -S3150800214800004FF0000380F8243246F28861C0F692 +S3150800214800004FF0000380F8243246F2AC61C0F66E S3150800215800014FF00A0203F09BF838B940F2E8008C S31508002168C2F200004FF0010280F8242208BD00BF21 S3150800217838B540F2E803C2F2000393F824020128AE S3150800218805D140F2E800C2F2000003F093FB4FF4D1 S31508002198A054C4F201044FF0400520462946FFF72B -S315080021A89BFF0028F9D046F26860C0F6000003F0E5 +S315080021A89BFF0028F9D046F28C60C0F6000003F0C1 S315080021B893FC38BD08B540F2E803C2F2000393F869 S315080021C82402012805D140F2E800C2F2000003F013 S315080021D871FB08BD70B5064640F2E803C2F2000373 @@ -556,7 +556,7 @@ S315080022882BFD4FF000038DF806304FF001008DF84E S3150800229807004FF002058DF804504FF040010091F1 S315080022A88DF8055020466946FFF760FC8DF80450FE S315080022B84FF08002009220466946FFF757FC00F067 -S315080022C85DFD00F069FDFCE708B546F29860C0F6C2 +S315080022C85DFD00F069FDFCE708B546F2BC60C0F69E S315080022D800004FF03D0100F009FD08BD08B500F003 S315080022E891FB80B100F08EFD00F09AFB4EF608537C S315080022F8CEF200034FF400421A6048F20400C0F612 @@ -588,7 +588,7 @@ S31508002488B4F1016F38BF09211AD326E04FF00001CD S3150800249816E04FF0010113E04FF0020110E04FF08B S315080024A803010DE04FF004010AE04FF0050107E0CB S315080024B84FF0060104E04FF0070101E04FF008016C -S315080024C801EB410346F25472C0F6000202EB8300A0 +S315080024C801EB410346F27872C0F6000202EB83007C S315080024D8007A10BD4FF0FF0010BD4FF0FF0010BD89 S315080024E82DE9F04105460068FFF742FFFF283BD073 S315080024F8FFF776FA4FF0F300FFF792FAFFF796FA26 @@ -640,7 +640,7 @@ S315080027C8FFF7D6FD054606F1FF300019FFF7D0FDDD S315080027D80446FF2D59D0FF285BD0854249D8012DDC S315080027E84BD90B284DD8FFF7FBF84FF0F300FFF746 S315080027F817F9FFF71BF9012805D1FFF707F94FF075 -S315080028080000BDE8F08146F22476C0F600064FF0CF +S315080028080000BDE8F08146F24876C0F600064FF0AB S315080028180207631B03F0010800F00CFB36F81500E5 S315080028283946FFF76BF9082837D008E000F002FBAD S3150800283836F815003946FFF761F9082805D0FFF775 @@ -694,10 +694,10 @@ S31508002B280000ADF80400ADF80600ADF80800ADF8E9 S31508002B380C004FF00C01ADF80A104FF4A054C4F27B S31508002B48010420466946FFF727FA20464FF0010197 S31508002B58FFF7A6FA04B010BD2DE9F84305460C465A -S31508002B68402907D946F2CC70C0F600004FF0760126 +S31508002B68402907D946F2F070C0F600004FF0760102 S31508002B7800F0BCF82046FFF7A9FF012807D046F25F -S31508002B88CC70C0F600004FF0790100F0AFF8264681 -S31508002B9844B346F2CC77C0F600074FF081084FF0E9 +S31508002B88F070C0F600004FF0790100F0AFF826465D +S31508002B9844B346F2F077C0F600074FF081084FF0C5 S31508002BA8000406F1FF3303F0010900F043F9285D34 S31508002BB8FFF78CFF012817D11AE000F03BF9285DCA S31508002BC8FFF784FF012803D03846414600F08EF8FF @@ -708,51 +708,51 @@ S31508002C0800F018F9285DFFF761FF012803D0384658 S31508002C18414600F06BF804F10104A1B2B142CCD3E5 S31508002C28BDE8F8833846414600F060F804F1010427 S31508002C38A2B2B242C1D3BDE8F88300BF10B50446B4 -S31508002C4840F21C73C2F200031878B0B940F220703B -S31508002C58C2F20000FFF720FF01283CD140F21C739E +S31508002C4840F26173C2F200031878B0B940F21C70FA +S31508002C58C2F20000FFF720FF01283CD140F2617359 S31508002C68C2F200034FF0010018704FF0000040F25E -S31508002C786471C2F20001087010BD40F26471C2F2B4 -S31508002C8800010A7802F1010240F22073C2F2000339 -S31508002C989818FFF701FF012820D140F26470C2F2A4 -S31508002CA80000017801F10101CAB2027040F22073EE +S31508002C786071C2F20001087010BD40F26071C2F2BC +S31508002C8800010A7802F1010240F21C73C2F200033D +S31508002C989818FFF701FF012820D140F26070C2F2A8 +S31508002CA80000017801F10101CAB2027040F21C73F2 S31508002CB8C2F200031878904213D120460A49FFF752 -S31508002CC823FB40F21C71C2F200014FF000020A70A1 +S31508002CC823FB40F26171C2F200014FF000020A705C S31508002CD84FF0010010BD4FF0000010BD4FF0000086 -S31508002CE810BD4FF0000010BD2107002008B540F2BE -S31508002CF86873C2F20003186040F26C70C2F20000F2 +S31508002CE810BD4FF0000010BD1D07002008B540F2C2 +S31508002CF86473C2F20003186040F26870C2F20000FA S31508002D08016000F097F8FCE708B500F08DF801288F -S31508002D1820D003F0CDF9E8B140F27073C2F200038F -S31508002D281878012816D1FFF7ADFE40F27471C2F281 -S31508002D3800010A6802F1320290420BD340F270731E -S31508002D48C2F200034FF00000187003F0BBF908B987 -S31508002D58FFF7C4FA08BD00BF08B540F27073C2F29F -S31508002D6800034FF001021A70FFF78CFE40F27471E7 +S31508002D1820D003F0A1F8E8B140F26C73C2F20003C0 +S31508002D281878012816D1FFF7ADFE40F27071C2F285 +S31508002D3800010A6802F1320290420BD340F26C7322 +S31508002D48C2F200034FF00000187003F08FF808B9B4 +S31508002D58FFF7C4FA08BD00BF08B540F26C73C2F2A3 +S31508002D6800034FF001021A70FFF78CFE40F27071EB S31508002D78C2F200010860FFF7C7FF08BD08B500F0F2 -S31508002D8857F8FFF755FEFFF731FE03F079F900F01B +S31508002D8857F8FFF755FEFFF731FE03F04DF800F048 S31508002D980FF8FFF7E1FF08BD08B500F04BF8FFF795 -S31508002DA85FFE03F0ADF900F01DF8FFF7ADFF08BDAB +S31508002DA85FFE03F0BFF900F01DF8FFF7ADFF08BD99 S31508002DB800B583B04FF0FF038DF804304FF00000DC -S31508002DC88DF8050000F04EF8FFF7A4FE40F278717A +S31508002DC88DF8050000F04EF8FFF7A4FE40F274717E S31508002DD8C2F200010A78012A02D101A800F066F8B1 -S31508002DE803B000BD08B540F27C70C2F20000FFF7D8 -S31508002DF825FF012805D140F27C70C2F2000000F0D8 +S31508002DE803B000BD08B540F27870C2F20000FFF7DC +S31508002DF825FF012805D140F27870C2F2000000F0DC S31508002E0855F808BD704700BF08B5C9B2FFF7A4FE54 -S31508002E1800F042F808BD00BF40F27873C2F200031A +S31508002E1800F042F808BD00BF40F27473C2F200031E S31508002E284FF001021A70704708B500F02BF808BD74 -S31508002E38704700BF704700BF40F2BC73C2F2000378 -S31508002E484FF000025A70704740F2BC73C2F2000392 +S31508002E38704700BF704700BF40F2B873C2F200037C +S31508002E484FF000025A70704740F2B873C2F2000396 S31508002E584FF0FE02DA7018714FF00200A3F844002A -S31508002E68704700BF40F2BC73C2F200034FF000027D +S31508002E68704700BF40F2B873C2F200034FF0000281 S31508002E781A709A6483F84320A3F844209A705A7003 -S31508002E88704700BF40F2BC73C2F2000318780030DE -S31508002E9818BF0120704700BF40F2BC73C2F2000396 +S31508002E88704700BF40F2B873C2F2000318780030E2 +S31508002E9818BF0120704700BF40F2B873C2F200039A S31508002EA84FF0000283F84320704700BF38B5044640 -S31508002EB80378FF2B25D103F0FBF820B94FF0100053 -S31508002EC8FFF7C2FFC7E1FFF7B7FF40F2BC73C2F2CC +S31508002EB80378FF2B25D102F0CFFF20B94FF0100079 +S31508002EC8FFF7C2FFC7E1FFF7B7FF40F2B873C2F2D0 S31508002ED800034FF001021A704FF0FF00D8704FF048 S31508002EE8100119714FF0000159714FF0400098719F S31508002EF8D87119725A729A724FF00802A3F84420C8 -S31508002F08A9E140F2BC72C2F200021078012840F02A +S31508002F08A9E140F2B872C2F200021078012840F02E S31508002F18BC81A3F1C903352B00F29981DFE813F0C8 S31508002F28FD009701970192019701970184011E01F7 S31508002F386A0154019701970197019701970197012B @@ -761,53 +761,53 @@ S31508002F58970197019701970197019701970197019B S31508002F68970197019701970197019701970197018B S31508002F78970197018200540036007400970197015B S31508002F889701B9009701D300D800EC0062783F2A68 -S31508002F9804D94FF02200FFF757FF5CE140F2BC75F1 +S31508002F9804D94FF02200FFF757FF5CE140F2B875F5 S31508002FA8C2F2000505F10400A96CFFF7ADF94FF068 S31508002FB8FF00E8706178AB6CCA18AA64607800F1FB S31508002FC80100A5F8440046E161783F2904D94FF085 -S31508002FD82200FFF739FF3EE1616840F2BC75C2F28C +S31508002FD82200FFF739FF3EE1616840F2B875C2F290 S31508002FE80005A96405F104006278FFF78DF94FF02A S31508002FF8FF03EB706278A86C1118A964637803F16B -S315080030080103A5F8443026E140F2BC70C2F200007C +S315080030080103A5F8443026E140F2B870C2F2000080 S315080030184FF0FF01C170636883644FF00102A0F89E -S31508003028442018E140F2BC70C2F200004FF0FF02DB +S31508003028442018E140F2B870C2F200004FF0FF02DF S31508003038C270836C6468C4B1E4186FEA030108199E S3150800304800F0010213F8011BA34240F01F810EE0AD S315080030581A4612F8010B09185B7853FA81F0C1B2BF S3150800306802F10103A342F3D101E04FF0000140F257 -S31508003078BC73C2F20003C3F807104FF001021A71B5 +S31508003078B873C2F20003C3F807104FF001021A71B9 S315080030884FF00001597199714FF00800A3F84400F0 -S31508003098E1E040F2BC70C2F200004FF0FF03C370D3 -S315080030A846F64C02C0F6000282644FF00001017130 +S31508003098E1E040F2B870C2F200004FF0FF03C370D7 +S315080030A846F67002C0F6000282644FF0000101710C S315080030B8417181714FF00703C0F807304FF00802D5 S315080030C8A0F84420C7E04FF00000FFF7BDFEC2E0B5 -S315080030D840F2BC70C2F200004FF0FF01C1704FF019 +S315080030D840F2B870C2F200004FF0FF01C1704FF01D S315080030E800030371427842718371C37103724FF00A -S315080030F80601A0F84410AEE040F2BC74C2F200041F +S315080030F80601A0F84410AEE040F2B874C2F2000423 S315080031084FF000012170FFF797FE4FF0FF03E370B9 -S315080031184FF00102A4F844209DE040F2BC73C2F2C5 +S315080031184FF00102A4F844209DE040F2B873C2F2C9 S315080031280003986C4FF03F0104F10102FFF762FCB7 -S3150800313820B94FF03100FFF787FE8CE040F2BC70EB +S3150800313820B94FF03100FFF787FE8CE040F2B870EF S31508003148C2F200004FF0FF01C170826C02F13F0223 S3150800315882644FF00103A0F844307CE063783E2B84 -S3150800316804D94FF02200FFF76FFE74E040F2BC70F6 +S3150800316804D94FF02200FFF76FFE74E040F2B870FA S31508003178C2F200004FF0FF01C1704FF00102A0F83B S315080031884420617841B9FFF741FC002863D14FF024 -S315080031983100FFF759FE5EE040F2BC73C2F2000345 +S315080031983100FFF759FE5EE040F2B873C2F2000349 S315080031A8986C04F10202FFF725FC20B94FF03100AC -S315080031B8FFF74AFE4FE040F2BC70C2F200006178A1 -S315080031C8826C8B18836446E040F2BC73C2F2000333 +S315080031B8FFF74AFE4FE040F2B870C2F200006178A5 +S315080031C8826C8B18836446E040F2B873C2F2000337 S315080031D84FF0FF02DA704FF00000187158714FF07F S315080031E840019971D871187258724FF00702A3F8FE -S315080031F8442030E040F2BC73C2F20003986C616860 +S315080031F8442030E040F2B873C2F20003986C616864 S31508003208FFF7FCFB20B94FF03100FFF71DFE22E05F -S3150800321840F2BC70C2F200004FF0FF01C1704FF0D7 -S315080032280102A0F8442016E0FFF79EF840F2BC70A9 +S3150800321840F2B870C2F200004FF0FF01C1704FF0DB +S315080032280102A0F8442016E0FFF79EF840F2B870AD S31508003238C2F200004FF0FF01C1704FF00102A0F87A S31508003248442008E04FF03100FFF7FEFD03E04FF099 -S315080032582000FFF7F9FD40F2BC73C2F2000393F8A9 +S315080032582000FFF7F9FD40F2B873C2F2000393F8AD S315080032684310012903D14FF01000FFF7EDFD40F296 -S31508003278BC73C2F200034FF0010083F8430003F160 +S31508003278B873C2F200034FF0010083F8430003F164 S315080032880300B3F84410FFF7BFFD38BD002A3FF422 S31508003298DFAE13F8010B0918C9B2A3427FF4D8AEFA S315080032A8E5E600BF10B4E2B182186FEA0004131904 @@ -852,7 +852,7 @@ S31508003508030010BD4FF0020010BD4FF0000010BDBB S315080035182DE9F041154603681C78A4F13004092CF6 S3150800352800F2E5815A783A2A40F0E18103F102036C S3150800353803604FF000030B60002C40F08C8140F6C6 -S315080035480C24C2F200042468002C00F088810C6060 +S315080035480824C2F200042468002C00F088810C6064 S31508003558217889B16078FEF7DFF810F0010F0BD1F2 S31508003568002D00F0808100F00401C8B2002814BFBD S315080035780A200020BDE8F0814FF000002070607036 @@ -912,7 +912,7 @@ S315080038C80D00BDE8F0814FF00D00BDE8F0814FF01E S315080038D80D00BDE8F0814FF00D00BDE8F0814FF00E S315080038E80D00BDE8F0814FF00D00BDE8F0814FF0FE S315080038F80000086023E603F10203A3612562EF19B5 -S3150800390867625619E6624FF00306F3E6080A0020CE +S3150800390867625619E6624FF00306F3E6040A0020D2 S315080039182DE9F0410C4601F109020369002B00F074 S31508003928E28043691E7B1978202900F08A800529D8 S3150800393814BF0A46E52206F0080505F0FF0135B169 @@ -1138,8 +1138,8 @@ S315080046E82DE9F04F87B001908B460B782F2B01D018 S315080046F85C2B01D10BF1010B4FF000000199886082 S315080047089BF800201F2A0AD808464FF00001FFF731 S31508004718AFFB02464FF0000301994B6198E146F654 -S315080047285404C0F60004039446F66006C0F600066C -S31508004738049646F66803C0F6000305935E461BF81A +S315080047287804C0F60004039446F68406C0F6000624 +S31508004738049646F68C03C0F6000305935E461BF8F6 S31508004748010B2F28FAD05C28F8D00199CA69029279 S3150800475830781F2840F256812F2800F045815C28BA S3150800476800F047811746A7F1020735464FF00104BE @@ -1296,7 +1296,7 @@ S315080050C800D022B905F10105AF4201D191E0454664 S315080050D820463146FFF720F881460028E5D0A2E0A9 S315080050E8E088C31B204699B2FEF7C2FE814600280F S315080050F840F09980A069FEF743F901904FF000083F -S315080051084FF6FF7546F6E806C0F6000620682169D8 +S315080051084FF6FF7546F60C16C0F6000620682169A4 S31508005118FEF78EFD8146002840F08580D4F81C905D S3150800512861695FFA87FB019A4A734FF00F00C872E4 S3150800513881F80C8081F81A8081F81B800BF1FF33FF @@ -1318,13 +1318,13 @@ S3150800522881460028CAD0484607B0BDE8F08F05F180 S315080052380105ADB2384603A932462B46FFF722FECA S315080052482046FFF711F8814600287FF4F1AE05F1EC S315080052580105ADB2642D7FF4CCAEE6E6A0B940F6FA -S315080052680C23C2F20003186810B14FF0000202704E -S3150800527811B14FF000030B7040F60C20C2F2000083 +S315080052680823C2F20003186810B14FF00002027052 +S3150800527811B14FF000030B7040F60820C2F2000087 S3150800528801604FF0000070474FF00B00704700BFF1 S315080052982DE9F0438FB0019116460546002800F01F S315080052A8A5804FF00003036001A805A902F01E02B5 S315080052B8FEF72EF90446002840F0B78006F01F08C6 -S315080052C802A80B9040F60801C2F200010C9105A845 +S315080052C802A80B9040F60401C2F200010C9105A849 S315080052D80199FFF705FA0A9F0146002840F08F80D2 S315080052E8002F40F0868088E059B1042940F0928062 S315080052F805A8FFF767FE48F008080A9F50B1044654 @@ -1450,12 +1450,12 @@ S31508005A687F03A3714FF001070CE0A561A368E268FC S31508005A78934207D9E360A17941F02000A07101E0BB S31508005A884FF002073846F8BD30B58FB00EAB43F86D S31508005A98340D0D46184605A94FF00002FDF738FDE6 -S31508005AA80446A8B902A80B9040F60801C2F20001FC +S31508005AA80446A8B902A80B9040F60401C2F2000100 S31508005AB80C9105A80199FEF713FE044640B90A9AFF S31508005AC822B105A82946FDF723FF01E04FF0060491 S31508005AD820460FB030BD00BF30B599B018AB43F8B3 S31508005AE85C0D18460FA94FF00102FDF711FD024695 -S31508005AF8002857D103A8159040F60801C2F20001FC +S31508005AF8002857D103A8159040F60401C2F2000100 S31508005B0816910FA80199FEF7EBFD0246002849D120 S31508005B18149959B3CC7A14F0010F2AD12CE0012D27 S31508005B2834D906A80FA94FF02402FDF7BBFB089540 @@ -1481,314 +1481,317 @@ S31508005C5800043146FFF7DAFFB0F1FF3F09D004F137 S31508005C68010415F8010F0028F3D104E04FF00004E9 S31508005C7801E04FF0FF34204670BD00BF7F282DD9BC S31508005C8811B9C7280BD121E0FF2825D8A0F1800033 -S31508005C9846F6D822C0F6000232F8100070474FF0D0 -S31508005CA8010346F6D822C0F6000232F8021F8142DE +S31508005C9846F6FC22C0F6000232F8100070474FF0AC +S31508005CA8010346F6FC22C0F6000232F8021F8142BA S31508005CB815D10DE032F8021F814209D003F101031C S31508005CC89BB232F8021F81420DD101E04FF0000362 S31508005CD803F18000C0B270474FF00000704703F127 S31508005CE801039BB2E6E703F101039BB2802BE1D1DE -S31508005CF8EEE700BF61280ED046F6F801C0F60001A7 +S31508005CF8EEE700BF61280ED046F61C11C0F6000173 S31508005D084FF0000202F1010231F8023F5BB183420B -S31508005D18F8D113B970474FF0000246F6D830C0F6E6 +S31508005D18F8D113B970474FF0000246F6FC30C0F6C2 S31508005D28000030F81200704730B402464CF6CD44ED S31508005D38CCF6CC4401F10101A4FB0223DA08F9D117 S31508005D484FF0000501F8015902464CF6CD45CCF648 S31508005D58CC450846A5FB02434FEAD30303EB830465 S31508005D68A2EB440202F1300201F801291A46002B77 S31508005D78EFD130BC704700BF38B50546007800F04B -S31508005D8821FCC0B2A0F13004E4B2162C20D8A0F148 +S31508005D8833FCC0B2A0F13004E4B2162C20D8A0F136 S31508005D983A02D1B206291ED9092C84BFA0F13704C4 -S31508005DA8E4B2687800F00EFCC0B2A0F13003D9B2AC +S31508005DA8E4B2687800F020FCC0B2A0F13003D9B29A S31508005DB8162913D8A0F13A02D3B2062B11D9092904 S31508005DC884BFA0F13701C9B201EB0414E0B238BDAB S31508005DD84FF0000038BD4FF0000038BD4FF0000006 S31508005DE838BD4FF0000038BD08B500F00F03092884 -S31508005DF802D903F1370008BD03F1300000F0E2FBD1 +S31508005DF802D903F1370008BD03F1300000F0F4FBBF S31508005E08C0B208BD38B505460C464FEA1010FFF76C S31508005E18EBFF207005F00F00FFF7E6FF60704FF004 -S31508005E280003A370204638BD2DE9F04F85B080469B -S31508005E381646894601B138B946F6B850C0F6000084 -S31508005E484FF41671FCF752FF98F8000000F0BAFBF9 -S31508005E58532840F0DA8098F8010000F0ABFB0028D8 -S31508005E6800F0D38098F80130312B00F0D180322B1E -S31508005E7800F0D180332B40F0C880CFE02046FFF7EA -S31508005E887BFF3918CFB205F1FF3204F1020495B247 -S31508005E982046FFF771FF3B18DFB205F1FF3085B2E0 -S31508005EA804F10204012DE9D82046FFF765FF6FEAD9 -S31508005EB80701CFB2874240F0A180BAF1010F32D06C -S31508005EC8BAF1000F04D0BAF1020F40F09A805CE0EC -S31508005ED80198FFF751FF05460298FFF74DFF4FEA6D -S31508005EE80024C9F8004008F10600FFF745FF231803 -S31508005EF8C9F8003008F10808A5F10305ADB2002E67 -S31508005F0800F081802FB2002F7DDD4FF00004404657 -S31508005F18FFF732FF305508F1020804F10104A4B26C -S31508005F28BC42F4DB6FE00198FFF726FF05460298A6 -S31508005F38FFF722FF4FEA0044C9F8004008F10600B7 -S31508005F48FFF71AFF04EB0024C9F8004008F1080017 -S31508005F58FFF712FF2018C9F8000008F10A08A5F18A -S31508005F680405ADB2002E4ED02FB2002F4BDD4FF0F0 -S31508005F7800044046FFF700FF305508F1020804F10F -S31508005F880104A4B2BC42F4DB3DE00198FFF7F4FE35 -S31508005F9805460298FFF7F0FE4FEA0064C9F8004084 -S31508005FA808F10600FFF7E8FE04EB0044C9F80040CC -S31508005FB808F10800FFF7E0FE04EB0024C9F80040E2 -S31508005FC808F10A00FFF7D8FE2218C9F8002008F1D8 -S31508005FD80C08A5F10505ADB2AEB12FB2002F12DD3A -S31508005FE84FF000044046FFF7C7FE305508F102088F -S31508005FF804F10104A4B2BC42F4DB04E04FF6FF75D1 -S3150800600801E04FF0000528B224E04FF00005FAE752 -S315080060184FF0000A04E04FF0010A01E04FF0020AC7 -S3150800602808F102000190FFF7A7FE044608F10401EB -S315080060380291039100F0010B0846FFF79DFE22180E -S31508006048D7B204F1FF339DB2039C04F10204012D73 -S3150800605803D829E705B0BDE8F08F0FFA8BF00028BA -S315080060683FF40CAF2046FFF787FE3F18FFB205F14D -S31508006078FF35ADB204F10204012D3FF6FFAE13E772 -S3150800608808B54FF0000040F65023C2F20003187016 -S3150800609840F65C21C2F20001FFF7E0F838B146F68F -S315080060A8B850C0F600004FF09E01FCF71FFE08BD69 -S315080060B840F65023C2F200031878D0F1010038BF21 -S315080060C80020704708B5FCF7AFFE01280FD040F648 -S315080060D85023C2F20003187860B9FCF703F80128C0 -S315080060E80BD140F65021C2F20001087008BD4FF0E6 -S315080060F8000008BD4FF0000008BD4FF0000008BDBD -S3150800610870B540F65023C2F200031878002800F04C -S315080061184D82012843D1FCF70FF846F62C60C0F6E5 -S315080061280000FCF757F846F65060C0F60000FCF782 -S3150800613851F8FBF7FBFF0146C6484FF00102FFF787 -S31508006148A7F850B146F67860C0F60000FCF742F8A2 -S315080061584FF00100FCF72EF870BD46F68060C0F6D1 -S315080061680000FCF737F846F68860C0F60000FCF72A -S3150800617831F846F6AC60C0F60000FCF72BF840F696 -S315080061885423C2F200034FF000021A605A6040F620 -S315080061985020C2F200004FF00201017070BD0228BB -S315080061A840F0088140F65C24C2F2000440F6B46068 -S315080061B8C2F200004FF4807104F50D72FFF7F6FC81 -S315080061C894F93A12002915DA46F67860C0F60000FE -S315080061D8FCF700F84FF00200FBF7ECFF04F50D702A -S315080061E8FFF768FB40F65020C2F200004FF00001A6 -S315080061F8017070BD18B340F6B466C2F200063046A0 -S3150800620806F5C0714FF00002FFF70EFE0646B0F11C -S31508006218FF3F14D146F67860C0F60000FBF7DAFFB0 -S315080062284FF00300FBF7C6FF8A48FFF743FB40F623 -S315080062385023C2F200034FF000021A7070BD32B242 -S31508006248002A2CDD40F65423C2F20003586868B9C0 -S3150800625840F65421C2F2000140F6B463C2F20003C4 -S31508006268D3F88001086036B24E6018E040F6B4618B -S31508006278C2F20001D1F8802140F65423C2F2000385 -S3150800628819688A4204D240F65423C2F200031A60F7 -S3150800629800FA86F040F65422C2F20002506040F630 -S315080062A85C21C2F20001D1F83C22D1F840329A4268 -S315080062B840F07C8167484FF00001FFF707FBA0B163 -S315080062C846F67860C0F60000FBF784FF4FF0040036 -S315080062D8FBF770FF5F48FFF7EDFA40F65020C2F269 -S315080062E800004FF00001017070BD46F68060C0F6E8 -S315080062F80000FBF76FFF46F6DC60C0F60000FBF708 -S3150800630869FF40F65424C2F2000440F61025C2F28A -S31508006318000560682946FFF707FD2846FBF75AFF78 -S3150800632846F6E860C0F60000FBF754FFE078294611 -S31508006338FFF768FDA07805F10201FFF763FD6078AD -S3150800634805F10401FFF75EFD207805F10601FFF760 -S3150800635859FD2846FBF73EFF46F68C70C0F6000046 -S31508006368FBF738FF20686168FCF748FBA0B946F6D2 -S315080063787860C0F60000FBF72DFF4FF00500FBF725 -S3150800638819FF3448FFF796FA40F65023C2F200037D -S315080063984FF000021A7070BD46F68060C0F600001D -S315080063A8FBF718FF40F65020C2F200004FF0030131 -S315080063B8017070BD032840F0F98040F65C24C2F2EB -S315080063C8000440F6B460C2F200004FF4807104F588 -S315080063D80D72FFF7EBFB94F93A12002915DA46F61F -S315080063E80470C0F60000FBF7F5FE4FF00200FBF755 -S315080063F8E1FE04F50D70FFF75DFA40F65023C2F288 -S3150800640800034FF00000187070BD28B340F6B46258 -S31508006418C2F20002104602F5C07102F58072FFF753 -S3150800642803FD0546B0F1FF3F16D146F62870C0F6BB -S315080064380000FBF7CFFE4FF00300FBF7BBFE05484D -S31508006448FFF738FA40F65021C2F200014FF0000271 -S315080064580A7070BD900C00202BB2002B5EDD46F644 -S315080064684C70C0F60000FBF7B5FE2EB240F61024B5 -S31508006478C2F2000430462146FFF756FC2046FBF7D1 -S31508006488A9FE46F65C70C0F60000FBF7A3FE40F6C8 -S31508006498B465C2F2000595F883012146FFF7B2FCF8 -S315080064A895F8820104F10201FFF7ACFC95F8810121 -S315080064B804F10401FFF7A6FC95F8800104F106012A -S315080064C8FFF7A0FC2046FBF785FE46F68C70C0F65B -S315080064D80000FBF77FFED5F88001314605F5807286 -S315080064E8FCF788FAA0B946F67860C0F60000FBF70C -S315080064F871FE4FF00600FBF75DFE2D48FFF7DAF947 -S3150800650840F65023C2F200034FF00000187070BD21 -S3150800651846F68060C0F60000FBF75CFE40F65C2095 -S31508006528C2F20000D0F83C12D0F8402291423DD180 -S3150800653846F67470C0F60000FBF74CFEFCF766FAE0 -S31508006548A0B946F67860C0F60000FBF743FE4FF0A0 -S315080065580700FBF72FFE1648FFF7ACF940F650215F -S31508006568C2F200014FF000020A7070BD46F680605C -S31508006578C0F60000FBF72EFE46F69070C0F600003F -S31508006588FBF728FE0A48FFF795F946F6A870C0F6FD -S315080065980000FBF71FFE40F65023C2F200034FF037 -S315080065A800001870FBF7E4FDFBF798FE70BD00BF06 -S315080065B8900C0020A0F1300009288CBF002001208B -S315080065C8704700BFA0F16103D9B2192998BF2038CE -S315080065D8704700BF844640EA010313F0030F40F0F2 -S315080065E81080242AC0F00D802DE9F00FB1E8F80FC5 -S315080065F8A0E8F80FA2F12402242ABFF4F7AFBDE8F1 -S31508006608F00F002A00F0078011F8013B00F8013B5B -S31508006618013A7FF4F9AF6046704700BF38B50446BB -S315080066280D4600F019F841F23803C2F200031D605E -S3150800663844F0800441F23C00C2F2000004600246BD -S3150800664811680029FCD100F009F841F23803C2F2B2 -S315080066580003186838BD00BF704700BF704700BF01 -S315080066682F64656D6F70726F675F6F6C696D65789B -S315080066785F73746D3332653430372E737265630011 -S315080066882F626F6F746C6F672E7478740000000041 -S31508006698433A2F576F726B2F736F667477617265FB -S315080066A82F4F70656E424C542F5461726765742F6C -S315080066B844656D6F2F41524D434D345F53544D33E6 -S315080066C8325F4F6C696D65785F53544D3332453484 -S315080066D830375F43726F7373776F726B732F426FBE -S315080066E86F742F6964652F2E2E2F2E2E2F2E2E2F80 -S315080066F82E2E2F536F757263652F41524D434D34B5 -S315080067085F53544D33322F43726F7373776F726BBF -S31508006718732F766563746F72732E63000000080022 -S3150800672810001800200028003000380040004800F3 -S31508006738500058008000880090009800A000A80023 -S31508006748B000B800C000C800D000D8000080000813 -S31508006758004000000200000000C0000800400000D9 -S315080067680300000000000108000001000400000002 -S3150800677800000208000002000500000000000408E6 -S3150800678800000200060000000000060800000200DB -S3150800679807000000000008080000020008000000C2 -S315080067A800000A08000002000900000000000C08A2 -S315080067B8000002000A00000000000E08000002009F -S315080067C80B000000433A2F576F726B2F736F66746E -S315080067D8776172652F4F70656E424C542F546172FB -S315080067E86765742F44656D6F2F41524D434D345F6D -S315080067F853544D33325F4F6C696D65785F53544D0A -S315080068083332453430375F43726F7373776F726B01 -S31508006818732F426F6F742F6964652F2E2E2F2E2EB5 -S315080068282F2E2E2F2E2E2F536F757263652F4152DA -S315080068384D434D345F53544D33322F756172742E60 -S31508006848630000004F70656E424C5400222A3A3C99 -S315080068583E3F7C7F000000002B2C3B3D5B5D000023 -S31508006868809A90418E418F804545454949498E8F82 -S315080068789092924F994F555559999A9B9C9D9E9FD0 -S3150800688841494F55A5A5A6A7A8A9AAABAC21AEAF5D -S31508006898B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF6A -S315080068A8C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF5A -S315080068B8D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF4A -S315080068C8E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF3A -S315080068D8F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF2A -S315080068E801030507090E10121416181C1E000000CD -S315080068F8610062006300640065006600670068005E -S3150800690869006A006B006C006D006E006F0070000D -S3150800691871007200730074007500760077007800BD -S3150800692879007A00A100A200A300A500AC00AF0078 -S31508006938E000E100E200E300E400E500E600E70025 -S31508006948E800E900EA00EB00EC00ED00EE00EF00D5 -S31508006958F000F100F200F300F400F500F600F80084 -S31508006968F900FA00FB00FC00FD00FE00FF0001012B -S3150800697803010501070109010B010D010F011101A9 -S3150800698813011501170119011B011D011F01210119 -S3150800699823012501270129012B012D012F01310189 -S315080069A83301350137013A013C013E0140014201F4 -S315080069B84401460148014B014D014F01510153015C -S315080069C85501570159015B015D015F0161016301C9 -S315080069D86501670169016B016D016F017101730139 -S315080069E8750177017A017C017E019201B103B20330 -S315080069F8B303B403B503B603B703B803B903BA03B5 -S31508006A08BB03BC03BD03BE03BF03C003C103C30363 -S31508006A18C403C503C603C703C803C903CA033004A6 -S31508006A28310432043304340435043604370438048C -S31508006A3839043A043B043C043D043E043F0440043C -S31508006A4841044204430444044504460447044804EC -S31508006A5849044A044B044C044D044E044F0451049B -S31508006A685204530454045504560457045804590444 -S31508006A785A045B045C045E045F0470217121722168 -S31508006A8873217421752176217721782179217A2134 -S31508006A987B217C217D217E217F2141FF42FF43FF07 -S31508006AA844FF45FF46FF47FF48FF49FF4AFF4BFF9C -S31508006AB84CFF4DFF4EFF4FFF50FF51FF52FF53FF4C -S31508006AC854FF55FF56FF57FF58FF59FF5AFF000056 -S31508006AD8C700FC00E900E200E400E000E500E70082 -S31508006AE8EA00EB00E800EF00EE00EC00C400C50081 -S31508006AF8C900E600C600F400F600F200FB00F9003B -S31508006B08FF00D600DC00A200A300A500A72092017A -S31508006B18E100ED00F300FA00F100D100AA00BA007E -S31508006B28BF001023AC00BD00BC00A100AB00BB0031 -S31508006B389125922593250225242561256225562522 -S31508006B4855256325512557255D255C255B25102583 -S31508006B58142534252C251C2500253C255E255F256E -S31508006B685A25542569256625602550256C256725E7 -S31508006B7868256425652559255825522553256B25E5 -S31508006B886A2518250C25882584258C259025802591 -S31508006B98B103DF009303C003A303C303B500C4030B -S31508006BA8A6039803A903B4031E22C603B50329221C -S31508006BB86122B1006522642220232123F700482296 -S31508006BC8B0001922B7001A227F20B200A025A0001B -S31508006BD8410042004300440045004600470048007B -S31508006BE849004A004B004C004D004E004F0050002B -S31508006BF851005200530054005500560057005800DB -S31508006C0859005A002100E0FFE1FFE5FFE2FFE3FF34 -S31508006C18C000C100C200C300C400C500C600C70042 -S31508006C28C800C900CA00CB00CC00CD00CE00CF00F2 -S31508006C38D000D100D200D300D400D500D600D800A1 -S31508006C48D900DA00DB00DC00DD00DE00780100018F -S31508006C5802010401060108010A010C010E011001CE -S31508006C6812011401160118011A011C011E0120013E -S31508006C7822012401260128012A012C012E013001AE -S31508006C8832013401360139013B013D013F01410119 -S31508006C984301450147014A014C014E015001520181 -S31508006CA85401560158015A015C015E0160016201EE -S31508006CB86401660168016A016C016E01700172015E -S31508006CC87401760179017B017D0191019103920393 -S31508006CD893039403950396039703980399039A03D2 -S31508006CE89B039C039D039E039F03A003A103A30381 -S31508006CF8A403A503A603A703A803A903AA031004C4 -S31508006D0811041204130414041504160417041804A9 -S31508006D1819041A041B041C041D041E041F04200459 -S31508006D282104220423042404250426042704280409 -S31508006D3829042A042B042C042D042E042F040104E8 -S31508006D4802040304040405040604070408040904E1 -S31508006D580A040B040C040E040F0460216121622145 -S31508006D6863216421652166216721682169216A21D1 -S31508006D786B216C216D216E216F2121FF22FF23FFD4 -S31508006D8824FF25FF26FF27FF28FF29FF2AFF2BFFB9 -S31508006D982CFF2DFF2EFF2FFF30FF31FF32FF33FF69 -S31508006DA834FF35FF36FF37FF38FF39FF3AFF000053 -S31508006DB8433A2F576F726B2F736F667477617265D4 -S31508006DC82F4F70656E424C542F5461726765742F45 -S31508006DD844656D6F2F41524D434D345F53544D33BF -S31508006DE8325F4F6C696D65785F53544D333245345D -S31508006DF830375F43726F7373776F726B732F426F97 -S31508006E086F742F6964652F2E2E2F2E2E2F2E2E2F58 -S31508006E182E2E2F536F757263652F66696C652E6300 -S31508006E28000000004669726D7761726520757064A6 -S31508006E386174652072657175657374206465746517 -S31508006E48637465640A0D00004F70656E696E672085 -S31508006E586669726D776172652066696C6520666F0A -S31508006E68722072656164696E672E2E2E0000000016 -S31508006E784552524F520A0D004F4B0A0D00000000AA -S31508006E885374617274696E67207468652070726FCE -S31508006E986772616D6D696E672073657175656E6376 -S31508006EA8650A0D0050617273696E67206669726DAE -S31508006EB8776172652066696C6520746F206F6274E5 -S31508006EC861696E2065726173652073697A652E2E0D -S31508006ED82E00000045726173696E67200000000085 -S31508006EE82062797465732066726F6D206D656D6FA3 -S31508006EF87279206174203078000000005265616458 -S31508006F08696E67206C696E652066726F6D206669A2 -S31508006F186C652E2E2E4552524F520A0D000000005F -S31508006F28496E76616C696420636865636B73756D11 -S31508006F3820666F756E642E2E2E4552524F520A0DD4 -S31508006F480000000050726F6772616D6D696E672088 -S31508006F580000000020627974657320746F206D65DF -S31508006F686D6F7279206174203078000057726974E1 -S31508006F78696E672070726F6772616D2063686563F2 -S31508006F886B73756D2E2E2E00436C6F73696E6720B2 -S31508006F986669726D776172652066696C650A0D00A7 -S31508006FA84669726D776172652075706461746520CB -S31508006FB87375636365737366756C6C7920636F6D37 -S31108006FC8706C657465640A0D000000001A -S31508006FD40100000001000000000000000102030493 -S30D08006FE401020304060708096F +S31508005E280003A370204638BD08B54FF0000040F6B9 +S31508005E384C23C2F20003187040F65821C2F200013A +S31508005E48FFF70CFA38B146F6DC50C0F600004FF0FA +S31508005E587C01FCF74BFF08BD40F64C23C2F2000351 +S31508005E681878D0F1010038BF0020704708B5FCF74C +S31508005E78DBFF01280FD040F64C23C2F2000318783E +S31508005E8860B9FCF72FF901280BD140F64C21C2F26C +S31508005E980001087008BD4FF0000008BD4FF000006B +S31508005EA808BD4FF0000008BD10B50446007800F09C +S31508005EB89BFB53280DD1607800F08EFB60B16078A3 +S31508005EC831280CD032280DD0332814BF03200220DD +S31508005ED810BD4FF0030010BD4FF0030010BD4FF082 +S31508005EE8000010BD4FF0010010BD00BFF8B504460C +S31508005EF800F10200FFF740FF0646054604F10404D0 +S31508005F0800F001072046FFF737FF3018C6B205F13B +S31508005F18FF318DB204F10204012D21D815E020467F +S31508005F28FFF72AFF3018C6B205F1FF3504F1020457 +S31508005F38ADB22046FFF720FF3118CEB205F1FF3281 +S31508005F4895B204F10204012DE9D82046FFF714FF9B +S31508005F586FEA0603DEB2864214BF00200120F8BDA8 +S31508005F683FB2002FDBD02046FFF706FF3218D6B21D +S31508005F7805F1FF339DB204F10204012DCFD8E4E7F9 +S31508005F882DE9F04104461546884601B138B946F662 +S31508005F98DC50C0F6000040F23621FCF7A7FE204682 +S31508005FA8FFF782FF0646032800F0B0802046FFF771 +S31508005FB89DFF002800F0AD80012E34D01EB1022EB8 +S31508005FC840F0AA8065E004F10200FFF7D5FE07460F +S31508005FD804F10400FFF7D0FE4FEA0026C8F800606F +S31508005FE804F10600FFF7C8FE3118C8F8001004F1D6 +S31508005FF80804A7F10307BFB2002D00F08F800FFA37 +S3150800600887F8B8F1000F40F389804FF0000620465C +S31508006018FFF7B2FEA85504F1020406F10106B6B266 +S315080060284645F4DB7AE004F10200FFF7A5FE0746C9 +S3150800603804F10400FFF7A0FE4FEA0046C8F800601E +S3150800604804F10600FFF798FE06EB0026C8F800607C +S3150800605804F10800FFF790FE3218C8F8002004F18A +S315080060680A04A7F10407BFB2002D57D00FFA87F81C +S31508006078B8F1000F52DD4FF000062046FFF77CFE08 +S31508006088A85504F1020406F10106B6B24645F4DB42 +S3150800609844E004F10200FFF76FFE074604F1040026 +S315080060A8FFF76AFE4FEA0066C8F8006004F10600C2 +S315080060B8FFF762FE06EB0046C8F8006004F1080020 +S315080060C8FFF75AFE06EB0026C8F8006004F10A0036 +S315080060D8FFF752FE3018C8F8000004F10C04A7F1BF +S315080060E80507BFB2D5B10FFA87F8B8F1000F15DD65 +S315080060F84FF000062046FFF73FFEA85504F10204B4 +S3150800610806F10106B6B24645F4DB07E04FF000078C +S3150800611804E04FF6FF7701E04FF0000738B2BDE814 +S31508006128F08100BF70B540F64C23C2F20003187818 +S31508006138002800F04D82012843D1FBF7FDFF46F6FB +S315080061485060C0F60000FCF745F846F67460C0F6DD +S315080061580000FCF73FF8FBF7E9FF0146C6484FF091 +S315080061680102FFF795F850B146F69C60C0F60000A4 +S31508006178FCF730F84FF00100FCF71CF870BD46F63E +S31508006188A460C0F60000FCF725F846F6AC60C0F631 +S315080061980000FCF71FF846F6D060C0F60000FCF7CA +S315080061A819F840F65023C2F200034FF000021A60AD +S315080061B85A6040F64C20C2F200004FF00201017006 +S315080061C870BD022840F0088140F65824C2F200043F +S315080061D840F6B060C2F200004FF4807104F50D7203 +S315080061E8FFF7E4FC94F93A12002915DA46F69C609A +S315080061F8C0F60000FBF7EEFF4FF00200FBF7DAFFE8 +S3150800620804F50D70FFF756FB40F64C20C2F2000065 +S315080062184FF00001017070BD18B340F6B066C2F2BF +S315080062280006304606F5C0714FF00002FFF7A8FED3 +S315080062380646B0F1FF3F14D146F69C60C0F600004A +S31508006248FBF7C8FF4FF00300FBF7B4FF8A48FFF7D0 +S3150800625831FB40F64C23C2F200034FF000021A70D5 +S3150800626870BD32B2002A2CDD40F65023C2F2000374 +S31508006278586868B940F65021C2F2000140F6B06382 +S31508006288C2F20003D3F88001086036B24E6018E0FF +S3150800629840F6B061C2F20001D1F8802140F65023D9 +S315080062A8C2F2000319688A4204D240F65023C2F2A1 +S315080062B800031A6000FA86F040F65022C2F200027D +S315080062C8506040F65821C2F20001D1F83C22D1F8B4 +S315080062D840329A4240F07C8167484FF00001FFF748 +S315080062E8F5FAA0B146F69C60C0F60000FBF772FF07 +S315080062F84FF00400FBF75EFF5F48FFF7DBFA40F64E +S315080063084C20C2F200004FF00001017070BD46F63D +S31508006318A460C0F60000FBF75DFF46F60070C0F6FD +S315080063280000FBF757FF40F65024C2F2000440F677 +S315080063380C25C2F2000560682946FFF7F5FC2846D1 +S31508006348FBF748FF46F60C70C0F60000FBF742FF5D +S31508006358E0782946FFF756FDA07805F10201FFF710 +S3150800636851FD607805F10401FFF74CFD207805F129 +S315080063780601FFF747FD2846FBF72CFF46F6B070DF +S31508006388C0F60000FBF726FF20686168FCF736FBB5 +S31508006398A0B946F69C60C0F60000FBF71BFF4FF055 +S315080063A80500FBF707FF3448FFF784FA40F64C2345 +S315080063B8C2F200034FF000021A7070BD46F6A460D8 +S315080063C8C0F60000FBF706FF40F64C20C2F20000B4 +S315080063D84FF00301017070BD032840F0F98040F6BC +S315080063E85824C2F2000440F6B060C2F200004FF426 +S315080063F8807104F50D72FFF7D9FB94F93A12002952 +S3150800640815DA46F62870C0F60000FBF7E3FE4FF0EB +S315080064180200FBF7CFFE04F50D70FFF74BFA40F6BE +S315080064284C23C2F200034FF00000187070BD28B361 +S3150800643840F6B062C2F20002104602F5C07102F5D3 +S315080064488072FFF79DFD0546B0F1FF3F16D146F667 +S315080064584C70C0F60000FBF7BDFE4FF00300FBF7D3 +S31508006468A9FE0548FFF726FA40F64C21C2F20001B4 +S315080064784FF000020A7070BD8C0C00202BB2002B5E +S315080064885EDD46F67070C0F60000FBF7A3FE2EB276 +S3150800649840F60C24C2F2000430462146FFF744FCB5 +S315080064A82046FBF797FE46F68070C0F60000FBF715 +S315080064B891FE40F6B065C2F2000595F883012146BB +S315080064C8FFF7A0FC95F8820104F10201FFF79AFC90 +S315080064D895F8810104F10401FFF794FC95F8800109 +S315080064E804F10601FFF78EFC2046FBF773FE46F615 +S315080064F8B070C0F60000FBF76DFED5F8800131468E +S3150800650805F58072FCF776FAA0B946F69C60C0F6DF +S315080065180000FBF75FFE4FF00600FBF74BFE2D4821 +S31508006528FFF7C8F940F64C23C2F200034FF0000003 +S31508006538187070BD46F6A460C0F60000FBF74AFE60 +S3150800654840F65820C2F20000D0F83C12D0F8402293 +S3150800655891423DD146F69870C0F60000FBF73AFE20 +S31508006568FCF754FAA0B946F69C60C0F60000FBF79B +S3150800657831FE4FF00700FBF71DFE1648FFF79AF99C +S3150800658840F64C21C2F200014FF000020A7070BDB5 +S3150800659846F6A460C0F60000FBF71CFE46F6B47083 +S315080065A8C0F60000FBF716FE0A48FFF783F946F619 +S315080065B8CC70C0F60000FBF70DFE40F64C23C2F27D +S315080065C800034FF000001870FBF7D2FDFBF786FEB4 +S315080065D870BD00BF8C0C0020A0F1300009288CBFC4 +S315080065E800200120704700BFA0F16103D9B219291C +S315080065F898BF2038704700BF844640EA010313F065 +S31508006608030F40F01080242AC0F00D802DE9F00F02 +S31508006618B1E8F80FA0E8F80FA2F12402242ABFF47B +S31508006628F7AFBDE8F00F002A00F0078011F8013B24 +S3150800663800F8013B013A7FF4F9AF6046704700BF9E +S3150800664838B504460D4600F019F841F23403C2F28B +S3150800665800031D6044F0800441F23800C2F20000CD +S315080066680460024611680029FCD100F009F841F2D5 +S315080066783403C2F20003186838BD00BF704700BF6C +S30908006688704700BF8A +S3150800668C2F64656D6F70726F675F6F6C696D657877 +S3150800669C5F73746D3332653430372E7372656300ED +S315080066AC2F626F6F746C6F672E747874000000001D +S315080066BC433A2F576F726B2F736F667477617265D7 +S315080066CC2F4F70656E424C542F5461726765742F48 +S315080066DC44656D6F2F41524D434D345F53544D33C2 +S315080066EC325F4F6C696D65785F53544D3332453460 +S315080066FC30375F43726F7373776F726B732F426F9A +S3150800670C6F742F6964652F2E2E2F2E2E2F2E2E2F5B +S3150800671C2E2E2F536F757263652F41524D434D3490 +S3150800672C5F53544D33322F43726F7373776F726B9B +S3150800673C732F766563746F72732E630000000800FE +S3150800674C10001800200028003000380040004800CF +S3150800675C500058008000880090009800A000A800FF +S3150800676CB000B800C000C800D000D80000800008EF +S3150800677C004000000200000000C0000800400000B5 +S3150800678C03000000000001080000010004000000DE +S3150800679C00000208000002000500000000000408C2 +S315080067AC00000200060000000000060800000200B7 +S315080067BC070000000000080800000200080000009E +S315080067CC00000A08000002000900000000000C087E +S315080067DC000002000A00000000000E08000002007B +S315080067EC0B000000433A2F576F726B2F736F66744A +S315080067FC776172652F4F70656E424C542F546172D7 +S3150800680C6765742F44656D6F2F41524D434D345F48 +S3150800681C53544D33325F4F6C696D65785F53544DE5 +S3150800682C3332453430375F43726F7373776F726BDD +S3150800683C732F426F6F742F6964652F2E2E2F2E2E91 +S3150800684C2F2E2E2F2E2E2F536F757263652F4152B6 +S3150800685C4D434D345F53544D33322F756172742E3C +S3150800686C630000004F70656E424C5400222A3A3C75 +S3150800687C3E3F7C7F000000002B2C3B3D5B5D0000FF +S3150800688C809A90418E418F804545454949498E8F5E +S3150800689C9092924F994F555559999A9B9C9D9E9FAC +S315080068AC41494F55A5A5A6A7A8A9AAABAC21AEAF39 +S315080068BCB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF46 +S315080068CCC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF36 +S315080068DCD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF26 +S315080068ECE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF16 +S315080068FCF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF06 +S3150800690C01030507090E10121416181C1E000000A8 +S3150800691C6100620063006400650066006700680039 +S3150800692C69006A006B006C006D006E006F007000E9 +S3150800693C7100720073007400750076007700780099 +S3150800694C79007A00A100A200A300A500AC00AF0054 +S3150800695CE000E100E200E300E400E500E600E70001 +S3150800696CE800E900EA00EB00EC00ED00EE00EF00B1 +S3150800697CF000F100F200F300F400F500F600F80060 +S3150800698CF900FA00FB00FC00FD00FE00FF00010107 +S3150800699C03010501070109010B010D010F01110185 +S315080069AC13011501170119011B011D011F012101F5 +S315080069BC23012501270129012B012D012F01310165 +S315080069CC3301350137013A013C013E0140014201D0 +S315080069DC4401460148014B014D014F015101530138 +S315080069EC5501570159015B015D015F0161016301A5 +S315080069FC6501670169016B016D016F017101730115 +S31508006A0C750177017A017C017E019201B103B2030B +S31508006A1CB303B403B503B603B703B803B903BA0390 +S31508006A2CBB03BC03BD03BE03BF03C003C103C3033F +S31508006A3CC403C503C603C703C803C903CA03300482 +S31508006A4C3104320433043404350436043704380468 +S31508006A5C39043A043B043C043D043E043F04400418 +S31508006A6C41044204430444044504460447044804C8 +S31508006A7C49044A044B044C044D044E044F04510477 +S31508006A8C5204530454045504560457045804590420 +S31508006A9C5A045B045C045E045F0470217121722144 +S31508006AAC73217421752176217721782179217A2110 +S31508006ABC7B217C217D217E217F2141FF42FF43FFE3 +S31508006ACC44FF45FF46FF47FF48FF49FF4AFF4BFF78 +S31508006ADC4CFF4DFF4EFF4FFF50FF51FF52FF53FF28 +S31508006AEC54FF55FF56FF57FF58FF59FF5AFF000032 +S31508006AFCC700FC00E900E200E400E000E500E7005E +S31508006B0CEA00EB00E800EF00EE00EC00C400C5005C +S31508006B1CC900E600C600F400F600F200FB00F90016 +S31508006B2CFF00D600DC00A200A300A500A720920156 +S31508006B3CE100ED00F300FA00F100D100AA00BA005A +S31508006B4CBF001023AC00BD00BC00A100AB00BB000D +S31508006B5C91259225932502252425612562255625FE +S31508006B6C55256325512557255D255C255B2510255F +S31508006B7C142534252C251C2500253C255E255F254A +S31508006B8C5A25542569256625602550256C256725C3 +S31508006B9C68256425652559255825522553256B25C1 +S31508006BAC6A2518250C25882584258C25902580256D +S31508006BBCB103DF009303C003A303C303B500C403E7 +S31508006BCCA6039803A903B4031E22C603B5032922F8 +S31508006BDC6122B1006522642220232123F700482272 +S31508006BECB0001922B7001A227F20B200A025A000F7 +S31508006BFC4100420043004400450046004700480057 +S31508006C0C49004A004B004C004D004E004F00500006 +S31508006C1C51005200530054005500560057005800B6 +S31508006C2C59005A002100E0FFE1FFE5FFE2FFE3FF10 +S31508006C3CC000C100C200C300C400C500C600C7001E +S31508006C4CC800C900CA00CB00CC00CD00CE00CF00CE +S31508006C5CD000D100D200D300D400D500D600D8007D +S31508006C6CD900DA00DB00DC00DD00DE00780100016B +S31508006C7C02010401060108010A010C010E011001AA +S31508006C8C12011401160118011A011C011E0120011A +S31508006C9C22012401260128012A012C012E0130018A +S31508006CAC32013401360139013B013D013F014101F5 +S31508006CBC4301450147014A014C014E01500152015D +S31508006CCC5401560158015A015C015E0160016201CA +S31508006CDC6401660168016A016C016E01700172013A +S31508006CEC7401760179017B017D019101910392036F +S31508006CFC93039403950396039703980399039A03AE +S31508006D0C9B039C039D039E039F03A003A103A3035C +S31508006D1CA403A503A603A703A803A903AA0310049F +S31508006D2C1104120413041404150416041704180485 +S31508006D3C19041A041B041C041D041E041F04200435 +S31508006D4C21042204230424042504260427042804E5 +S31508006D5C29042A042B042C042D042E042F040104C4 +S31508006D6C02040304040405040604070408040904BD +S31508006D7C0A040B040C040E040F0460216121622121 +S31508006D8C63216421652166216721682169216A21AD +S31508006D9C6B216C216D216E216F2121FF22FF23FFB0 +S31508006DAC24FF25FF26FF27FF28FF29FF2AFF2BFF95 +S31508006DBC2CFF2DFF2EFF2FFF30FF31FF32FF33FF45 +S31508006DCC34FF35FF36FF37FF38FF39FF3AFF00002F +S31508006DDC433A2F576F726B2F736F667477617265B0 +S31508006DEC2F4F70656E424C542F5461726765742F21 +S31508006DFC44656D6F2F41524D434D345F53544D339B +S31508006E0C325F4F6C696D65785F53544D3332453438 +S31508006E1C30375F43726F7373776F726B732F426F72 +S31508006E2C6F742F6964652F2E2E2F2E2E2F2E2E2F34 +S31508006E3C2E2E2F536F757263652F66696C652E63DC +S31508006E4C000000004669726D776172652075706482 +S31508006E5C61746520726571756573742064657465F3 +S31508006E6C637465640A0D00004F70656E696E672061 +S31508006E7C6669726D776172652066696C6520666FE6 +S31508006E8C722072656164696E672E2E2E00000000F2 +S31508006E9C4552524F520A0D004F4B0A0D0000000086 +S31508006EAC5374617274696E67207468652070726FAA +S31508006EBC6772616D6D696E672073657175656E6352 +S31508006ECC650A0D0050617273696E67206669726D8A +S31508006EDC776172652066696C6520746F206F6274C1 +S31508006EEC61696E2065726173652073697A652E2EE9 +S31508006EFC2E00000045726173696E67200000000061 +S31508006F0C2062797465732066726F6D206D656D6F7E +S31508006F1C7279206174203078000000005265616433 +S31508006F2C696E67206C696E652066726F6D2066697E +S31508006F3C6C652E2E2E4552524F520A0D000000003B +S31508006F4C496E76616C696420636865636B73756DED +S31508006F5C20666F756E642E2E2E4552524F520A0DB0 +S31508006F6C0000000050726F6772616D6D696E672064 +S31508006F7C0000000020627974657320746F206D65BB +S31508006F8C6D6F7279206174203078000057726974BD +S31508006F9C696E672070726F6772616D2063686563CE +S31508006FAC6B73756D2E2E2E00436C6F73696E67208E +S31508006FBC6669726D776172652066696C650A0D0083 +S31508006FCC4669726D776172652075706461746520A7 +S31508006FDC7375636365737366756C6C7920636F6D13 +S31108006FEC706C657465640A0D00000000F6 +S31508006FF8010000000100000000000000010203046F +S30D0800700801020304060708094A S70508000217D9 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/blt_conf.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/blt_conf.h index af48480c..129cee01 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/blt_conf.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/blt_conf.h @@ -61,6 +61,33 @@ /**************************************************************************************** * C O M M U N I C A T I O N I N T E R F A C E C O N F I G U R A T I O N ****************************************************************************************/ +/* The CAN communication interface is selected by setting the BOOT_COM_CAN_ENABLE + * configurable to 1. Configurable BOOT_COM_CAN_BAUDRATE selects the communication speed + * in bits/second. Two CAN messages are reserved for communication with the host. The + * message identifier for sending data from the target to the host is configured with + * BOOT_COM_CAN_TXMSG_ID. The one for receiving data from the host is configured with + * BOOT_COM_CAN_RXMSG_ID. The maximum amount of data bytes in a message for data + * transmission and reception is set through BOOT_COM_CAN_TX_MAX_DATA and + * BOOT_COM_CAN_RX_MAX_DATA, respectively. It is common for a microcontroller to have more + * than 1 CAN controller on board. The zero-based BOOT_COM_CAN_CHANNEL_INDEX selects the + * CAN controller channel. + * + */ +/** \brief Enable/disable CAN transport layer. */ +#define BOOT_COM_CAN_ENABLE (0) +/** \brief Configure the desired CAN baudrate. */ +#define BOOT_COM_CAN_BAUDRATE (500000) +/** \brief Configure CAN message ID target->host. */ +#define BOOT_COM_CAN_TX_MSG_ID (0x7E1) +/** \brief Configure number of bytes in the target->host CAN message. */ +#define BOOT_COM_CAN_TX_MAX_DATA (8) +/** \brief Configure CAN message ID host->target. */ +#define BOOT_COM_CAN_RX_MSG_ID (0x667) +/** \brief Configure number of bytes in the host->target CAN message. */ +#define BOOT_COM_CAN_RX_MAX_DATA (8) +/** \brief Select the desired CAN peripheral as a zero based index. */ +#define BOOT_COM_CAN_CHANNEL_INDEX (1) + /* The UART communication interface is selected by setting the BOOT_COM_UART_ENABLE * configurable to 1. Configurable BOOT_COM_UART_BAUDRATE selects the communication speed * in bits/second. The maximum amount of data bytes in a message for data transmission diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzp b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzp index d6fecfb5..710c6b8f 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzp +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzp @@ -102,6 +102,8 @@ + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs index 80916529..968089fa 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs @@ -63,7 +63,8 @@ - + + - + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/main.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/main.c index 6f40c218..430f685d 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/main.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/main.c @@ -79,6 +79,8 @@ static void Init(void) #elif (BOOT_FILE_SYS_ENABLE > 0) GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; +#elif (BOOT_COM_CAN_ENABLE > 0) + GPIO_InitTypeDef GPIO_InitStructure; #endif /* disable all interrupts to prevent possible jump back to the user program */ @@ -134,6 +136,24 @@ static void Init(void) /* enable UART */ USART_Cmd(USART6, ENABLE); #endif +#if (BOOT_COM_CAN_ENABLE > 0) + /* enable clocks for CAN2 transmitter and receiver pins */ + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); + /* select alternate function for the CAN2 pins */ + GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_CAN2); + GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_CAN2); + /* configure CAN2 RX and TX pins */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_Init(GPIOB, &GPIO_InitStructure); + /* enable CAN clock. Note that CAN2 shares reception filters with CAN1 so for CAN2 + * the CAN1 peripheral also needs to be enabled. + */ + RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2 | RCC_APB1Periph_CAN1, ENABLE); +#endif } /*** end of Init ***/ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/boot.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/boot.c index 6c6be2f0..da1a9c5f 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/boot.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/boot.c @@ -182,4 +182,184 @@ static unsigned char UartReceiveByte(unsigned char *data) #endif /* BOOT_COM_UART_ENABLE > 0 */ +#if (BOOT_COM_CAN_ENABLE > 0) +/**************************************************************************************** +* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E +****************************************************************************************/ + +/**************************************************************************************** +* Type definitions +****************************************************************************************/ +/** \brief Structure type for grouping CAN bus timing related information. */ +typedef struct t_can_bus_timing +{ + unsigned char tseg1; /**< CAN time segment 1 */ + unsigned char tseg2; /**< CAN time segment 2 */ +} tCanBusTiming; + + +/**************************************************************************************** +* Local constant declarations +****************************************************************************************/ +/** \brief CAN bittiming table for dynamically calculating the bittiming settings. + * \details According to the CAN protocol 1 bit-time can be made up of between 8..25 + * time quanta (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC + * always being 1. The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * + * 100%. This array contains possible and valid time quanta configurations with + * a sample point between 68..78%. + */ +static const tCanBusTiming canTiming[] = +{ /* TQ | TSEG1 | TSEG2 | SP */ + /* ------------------------- */ + { 5, 2 }, /* 8 | 5 | 2 | 75% */ + { 6, 2 }, /* 9 | 6 | 2 | 78% */ + { 6, 3 }, /* 10 | 6 | 3 | 70% */ + { 7, 3 }, /* 11 | 7 | 3 | 73% */ + { 8, 3 }, /* 12 | 8 | 3 | 75% */ + { 9, 3 }, /* 13 | 9 | 3 | 77% */ + { 9, 4 }, /* 14 | 9 | 4 | 71% */ + { 10, 4 }, /* 15 | 10 | 4 | 73% */ + { 11, 4 }, /* 16 | 11 | 4 | 75% */ + { 12, 4 }, /* 17 | 12 | 4 | 76% */ + { 12, 5 }, /* 18 | 12 | 5 | 72% */ + { 13, 5 }, /* 19 | 13 | 5 | 74% */ + { 14, 5 }, /* 20 | 14 | 5 | 75% */ + { 15, 5 }, /* 21 | 15 | 5 | 76% */ + { 15, 6 }, /* 22 | 15 | 6 | 73% */ + { 16, 6 }, /* 23 | 16 | 6 | 74% */ + { 16, 7 }, /* 24 | 16 | 7 | 71% */ + { 16, 8 } /* 25 | 16 | 8 | 68% */ +}; + + +/************************************************************************************//** +** \brief Search algorithm to match the desired baudrate to a possible bus +** timing configuration. +** \param baud The desired baudrate in kbps. Valid values are 10..1000. +** \param prescaler Pointer to where the value for the prescaler will be stored. +** \param tseg1 Pointer to where the value for TSEG2 will be stored. +** \param tseg2 Pointer to where the value for TSEG2 will be stored. +** \return 1 if the CAN bustiming register values were found, 0 otherwise. +** +****************************************************************************************/ +static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, + unsigned char *tseg1, unsigned char *tseg2) +{ + unsigned char cnt; + + /* loop through all possible time quanta configurations to find a match */ + for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) + { + if (((BOOT_CPU_SYSTEM_SPEED_KHZ/4) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) + { + /* compute the prescaler that goes with this TQ configuration */ + *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/4)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); + + /* make sure the prescaler is valid */ + if ( (*prescaler > 0) && (*prescaler <= 1024) ) + { + /* store the bustiming configuration */ + *tseg1 = canTiming[cnt].tseg1; + *tseg2 = canTiming[cnt].tseg2; + /* found a good bus timing configuration */ + return 1; + } + } + } + /* could not find a good bus timing configuration */ + return 0; +} /*** end of CanGetSpeedConfig ***/ + + +/************************************************************************************//** +** \brief Initializes the CAN communication interface. +** \return none. +** +****************************************************************************************/ +void BootComInit(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + CAN_InitTypeDef CAN_InitStructure; + CAN_FilterInitTypeDef CAN_FilterInitStructure; + unsigned short prescaler; + unsigned char tseg1, tseg2; + + /* enable clocks for CAN2 transmitter and receiver pins */ + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); + /* select alternate function for the CAN2 pins */ + GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_CAN2); + GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_CAN2); + /* configure CAN2 RX and TX pins */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_Init(GPIOB, &GPIO_InitStructure); + /* enable CAN clock. Note that CAN2 shares reception filters with CAN1 so for CAN2 + * the CAN1 peripheral also needs to be enabled. + */ + RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2 | RCC_APB1Periph_CAN1, ENABLE); + /* CAN register init */ + CAN_DeInit(CAN2); + CAN_StructInit(&CAN_InitStructure); + /* obtain the bittiming configuration for this baudrate */ + CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); + /* CAN controller init */ + CAN_InitStructure.CAN_TTCM = DISABLE; + CAN_InitStructure.CAN_ABOM = DISABLE; + CAN_InitStructure.CAN_AWUM = DISABLE; + CAN_InitStructure.CAN_NART = DISABLE; + CAN_InitStructure.CAN_RFLM = DISABLE; + CAN_InitStructure.CAN_TXFP = DISABLE; + CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; + /* CAN Baudrate init */ + CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; + CAN_InitStructure.CAN_BS1 = tseg1 - 1; + CAN_InitStructure.CAN_BS2 = tseg2 - 1; + CAN_InitStructure.CAN_Prescaler = prescaler; + CAN_Init(CAN2, &CAN_InitStructure); + /* CAN filter init - receive all messages */ + CAN_FilterInitStructure.CAN_FilterNumber = 14; + CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; + CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; + CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; + CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; + CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; + CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; + CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; + CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; + CAN_FilterInit(&CAN_FilterInitStructure); +} /*** end of BootComInit ***/ + + +/************************************************************************************//** +** \brief Receives the CONNECT request from the host, which indicates that the +** bootloader should be activated and, if so, activates it. +** \return none. +** +****************************************************************************************/ +void BootComCheckActivationRequest(void) +{ + CanRxMsg RxMessage; + + /* check if a new message was received */ + if (CAN_MessagePending(CAN2, CAN_FIFO0) > 0) + { + /* receive the message */ + CAN_Receive(CAN2, CAN_FIFO0, &RxMessage); + if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) + { + /* check if this was an XCP CONNECT command */ + if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) + { + /* connection request received so start the bootloader */ + BootActivate(); + } + } + } +} /*** end of BootComCheckActivationRequest ***/ +#endif /* BOOT_COM_CAN_ENABLE > 0 */ + + /*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/ide/stm32f407_crossworks.hzs b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/ide/stm32f407_crossworks.hzs index aab4cc60..324f7084 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/ide/stm32f407_crossworks.hzs +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/ide/stm32f407_crossworks.hzs @@ -50,9 +50,9 @@ - - + + @@ -65,8 +65,8 @@ - - + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf index 71751e95..a0cdf772 100644 Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf differ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.map b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.map index d48c5a88..6b115e7f 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.map +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.map @@ -7,38 +7,40 @@ start address 0x08000000 Program Header: LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15 - filesz 0x00005d40 memsz 0x00005d40 flags r-x - LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08005d40 align 2**15 - filesz 0x0000001c memsz 0x0000183c flags rw- + filesz 0x00005d6c memsz 0x00005d6c flags r-x + LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08005d6c align 2**15 + filesz 0x0000001c memsz 0x0000001c flags rw- + LOAD off 0x00010020 vaddr 0x20000020 paddr 0x08005d90 align 2**15 + filesz 0x00000000 memsz 0x0000181c flags rw- private flags = 5000002: [Version5 EABI] [has entry point] Sections: Idx Name Size VMA LMA File off Algn - 0 .text 00005d40 08000000 08000000 00008000 2**2 + 0 .text 00005d6c 08000000 08000000 00008000 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 0000001c 20000000 08005d40 00010000 2**2 + 1 .data 0000001c 20000000 08005d6c 00010000 2**2 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 0000181c 20000020 08005d60 0001001c 2**3 + 2 .bss 0000181c 20000020 08005d90 00010020 2**3 ALLOC - 3 .debug_info 0000e4c2 00000000 00000000 0001001c 2**0 + 3 .debug_info 0000e4fb 00000000 00000000 0001001c 2**0 CONTENTS, READONLY, DEBUGGING - 4 .debug_abbrev 000027f8 00000000 00000000 0001e4de 2**0 + 4 .debug_abbrev 000027b8 00000000 00000000 0001e517 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_loc 0000ac20 00000000 00000000 00020cd6 2**0 + 5 .debug_loc 0000ad42 00000000 00000000 00020ccf 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_aranges 00000be8 00000000 00000000 0002b8f6 2**0 + 6 .debug_aranges 00000bf8 00000000 00000000 0002ba11 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_ranges 00000cb0 00000000 00000000 0002c4de 2**0 + 7 .debug_ranges 00000c58 00000000 00000000 0002c609 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_line 00004696 00000000 00000000 0002d18e 2**0 + 8 .debug_line 000046cc 00000000 00000000 0002d261 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_str 0000380f 00000000 00000000 00031824 2**0 + 9 .debug_str 0000381b 00000000 00000000 0003192d 2**0 CONTENTS, READONLY, DEBUGGING - 10 .comment 00000030 00000000 00000000 00035033 2**0 + 10 .comment 00000030 00000000 00000000 00035148 2**0 CONTENTS, READONLY - 11 .ARM.attributes 00000033 00000000 00000000 00035063 2**0 + 11 .ARM.attributes 00000033 00000000 00000000 00035178 2**0 CONTENTS, READONLY - 12 .debug_frame 00001f1c 00000000 00000000 00035098 2**2 + 12 .debug_frame 00001f40 00000000 00000000 000351ac 2**2 CONTENTS, READONLY, DEBUGGING SYMBOL TABLE: 08000000 l d .text 00000000 .text @@ -57,9 +59,9 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 vectors.c 00000000 l df *ABS* 00000000 cstart.c 080001ca l F .text 00000000 zero_loop2 -08005248 l F .text 00000000 zero_loop +08005274 l F .text 00000000 zero_loop 00000000 l df *ABS* 00000000 hooks.c -080053e8 l O .text 00000020 firmwareFilename +08005414 l O .text 00000020 firmwareFilename 20000020 l O .bss 00000228 logfile 00000000 l df *ABS* 00000000 main.c 00000000 l df *ABS* 00000000 mmc.c @@ -111,21 +113,21 @@ SYMBOL TABLE: 080032b4 l F .text 00000258 dir_register 20000318 l O .bss 00000200 LfnBuf 20000518 l O .bss 00000002 Fsid -0800542c l O .text 00000080 ExCvt -080054ac l O .text 0000000d LfnOfs +08005458 l O .text 00000080 ExCvt +080054d8 l O .text 0000000d LfnOfs 2000051c l O .bss 00000004 FatFs 00000000 l df *ABS* 00000000 unicode.c -080054bc l O .text 000001e0 tbl_lower.4261 -0800569c l O .text 00000100 Tbl -0800579c l O .text 000001e0 tbl_upper.4262 +080054e8 l O .text 000001e0 tbl_lower.4261 +080056c8 l O .text 00000100 Tbl +080057c8 l O .text 000001e0 tbl_upper.4262 00000000 l df *ABS* 00000000 boot.c 00000000 l df *ABS* 00000000 com.c 20000520 l O .bss 00000001 comEntryStateConnect -20000524 l O .bss 00000040 xcpCtoReqPacket.4367 +20000524 l O .bss 00000040 xcpCtoReqPacket.4386 00000000 l df *ABS* 00000000 xcp.c 08004038 l F .text 00000010 XcpProtectResources 08004048 l F .text 00000018 XcpSetCtoError -0800597c l O .text 00000008 xcpStationId +080059a8 l O .text 00000008 xcpStationId 20000564 l O .bss 0000004c xcpInfo 00000000 l df *ABS* 00000000 backdoor.c 200005b0 l O .bss 00000001 backdoorOpen @@ -136,7 +138,6 @@ SYMBOL TABLE: 08004480 l F .text 00000024 FileLibByteToHexString 080044a4 l F .text 00000048 FileLibLongToIntString 080044ec l F .text 00000064 FileLibHexStringToByte -08004550 l F .text 0000020c SrecParseLine 200005b8 l O .bss 00000040 loggingStr 200005f8 l O .bss 00000001 firmwareUpdateState 200005fc l O .bss 00000008 eraseInfo @@ -147,21 +148,21 @@ SYMBOL TABLE: 20000be4 l O .bss 00000004 assert_failure_line 00000000 l df *ABS* 00000000 cpu.c 00000000 l df *ABS* 00000000 flash.c -08004c08 l F .text 00000044 FlashGetSector -08004c4c l F .text 0000007c FlashWriteBlock -08004cc8 l F .text 00000030 FlashInitBlock -08004cf8 l F .text 00000044 FlashSwitchBlock -08004d3c l F .text 00000092 FlashAddToBlock -08005b44 l O .text 00000030 flashSectorNumToMask -08005b74 l O .text 00000078 flashLayout +08004c34 l F .text 00000044 FlashGetSector +08004c78 l F .text 0000007c FlashWriteBlock +08004cf4 l F .text 00000030 FlashInitBlock +08004d24 l F .text 00000044 FlashSwitchBlock +08004d68 l F .text 00000092 FlashAddToBlock +08005b70 l O .text 00000030 flashSectorNumToMask +08005ba0 l O .text 00000078 flashLayout 20000be8 l O .bss 00000204 bootBlockInfo 20000dec l O .bss 00000204 blockInfo 00000000 l df *ABS* 00000000 uart.c -08004fc8 l F .text 0000002c UartReceiveByte -08004ff4 l F .text 0000003c UartTransmitByte -20000ff0 l O .bss 00000001 xcpCtoRxLength.7754 -20000ff1 l O .bss 00000001 xcpCtoRxInProgress.7755 -20000ff4 l O .bss 00000041 xcpCtoReqPacket.7753 +08004ff4 l F .text 0000002c UartReceiveByte +08005020 l F .text 0000003c UartTransmitByte +20000ff0 l O .bss 00000041 xcpCtoReqPacket.7772 +20001034 l O .bss 00000001 xcpCtoRxLength.7773 +20001035 l O .bss 00000001 xcpCtoRxInProgress.7774 00000000 l df *ABS* 00000000 nvm.c 00000000 l df *ABS* 00000000 timer.c 20001038 l O .bss 00000004 millisecond_counter @@ -170,14 +171,14 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 00000800 l *ABS* 00000000 __STACKSIZE__ 08003fc0 g F .text 00000034 ComInit -08004de8 g F .text 00000054 FlashWrite +08004e14 g F .text 00000054 FlashWrite 08003e40 g F .text 0000005e f_gets 080016fc g F .text 00000020 FLASH_Unlock -08004b9c g F .text 00000018 AssertFailure +08004bc8 g F .text 00000018 AssertFailure 0800260c g F .text 0000010a get_fat -08005210 g F .text 0000005c reset_handler +0800523c g F .text 0000005c reset_handler 08001910 g F .text 00000038 GPIO_PinAFConfig -080051cc g F .text 00000020 TimerUpdate +080051f8 g F .text 00000020 TimerUpdate 0800408c g F .text 00000010 XcpPacketTransmitted 08003ff4 g F .text 00000018 ComTask 08001b70 g F .text 0000000c SDIO_ClearFlag @@ -186,48 +187,50 @@ SYMBOL TABLE: 08004020 g F .text 00000010 ComSetConnectEntryState 08001aa8 g F .text 0000000c SDIO_SetPowerState 08003f8c g F .text 0000001c BootInit +08004618 g F .text 00000042 FileSrecVerifyChecksum 0800442c g F .text 00000020 BackDoorInit 08001ca8 g F .text 0000000c USART_GetFlagStatus 08004450 g F .text 00000002 CopService -08005d40 g .text 00000000 _etext +08005d6c g .text 00000000 _etext 080012e0 g F .text 000001b8 SD_WriteBlock 08003f5c g F .text 00000030 ff_wtoupper -08005274 g F .text 00000174 memcpy -080047d0 g F .text 000003cc FileTask -08005190 g F .text 00000010 TimerReset +080052a0 g F .text 00000174 memcpy +080047fc g F .text 000003cc FileTask +080051bc g F .text 00000010 TimerReset 08001534 g F .text 00000034 disk_initialize 08000c1c g F .text 000002e0 SD_GetCardInfo 08001b5c g F .text 00000014 SDIO_GetFlagStatus 08001c9c g F .text 0000000c USART_ReceiveData 08003fa8 g F .text 00000018 BootTask 080014e8 g F .text 0000002e SD_GetState -08004ee0 g F .text 00000050 FlashWriteChecksum +08004f0c g F .text 00000050 FlashWriteChecksum 08000efc g F .text 00000084 SD_EnableWideBusOperation 08001a18 g F .text 0000001c RCC_APB2PeriphClockCmd 08001af0 g F .text 0000000c SDIO_GetCommandResponse 08004010 g F .text 0000000e ComTransmitPacket 08001860 g F .text 000000a2 GPIO_Init 08001568 g F .text 00000028 disk_status +0800465c g F .text 000001a0 FileSrecParseLine 08001c70 g F .text 00000020 USART_Cmd 08001680 g F .text 00000074 disk_ioctl -0800479c g F .text 00000034 FileHandleFirmwareUpdateRequest +08004590 g F .text 00000034 FileHandleFirmwareUpdateRequest 08003204 g F .text 000000b0 gen_numname 08000280 g F .text 00000038 FileFirmwareUpdateCompletedHook 0800407c g F .text 00000010 XcpIsConnected 08003d70 g F .text 000000d0 f_unlink -0800515c g F .text 00000008 NvmInit -08004dd0 g F .text 00000018 FlashInit +08005188 g F .text 00000008 NvmInit +08004dfc g F .text 00000018 FlashInit 0800171c g F .text 00000010 FLASH_Lock 2000103c g .bss 00000000 _ebss 08003ea0 g F .text 00000038 f_putc 08003ed8 g F .text 00000036 f_puts -080051fc g F .text 00000014 UnusedISR +08005228 g F .text 00000014 UnusedISR 08001a9c g F .text 0000000c SDIO_ClockCmd 0800400c g F .text 00000002 ComFree 08001b18 g F .text 0000002c SDIO_DataConfig -08005030 g F .text 00000044 UartInit +0800505c g F .text 00000044 UartInit 08001948 g F .text 000000b4 RCC_GetClocksFreq -0800516c g F .text 00000008 NvmErase +08005198 g F .text 00000008 NvmErase 08001b7c g F .text 000000f4 USART_Init 20000020 g .bss 00000000 _bss 08003b50 g F .text 00000016 f_close @@ -236,46 +239,47 @@ SYMBOL TABLE: 0800172c g F .text 0000000c FLASH_ClearFlag 08001780 g F .text 00000034 FLASH_WaitForLastOperation 080036d8 g F .text 000001c4 f_read -08004f88 g F .text 00000040 FlashDone +08004fb4 g F .text 00000040 FlashDone 08000fb0 g F .text 00000174 SD_Init 08000188 g F .text 00000068 EntryFromProg 08000f80 g F .text 00000030 SD_SelectDeselect 08001ac4 g F .text 0000002c SDIO_SendCommand 080016f4 g F .text 00000008 get_fattime 08004060 g F .text 0000001c XcpInit -0800475c g F .text 0000002c FileInit +08004550 g F .text 0000002c FileInit 08001b44 g F .text 0000000c SDIO_ReadData -08004e3c g F .text 000000a4 FlashErase +08004e68 g F .text 000000a4 FlashErase 080002b8 g F .text 00000018 FileFirmwareUpdateErrorHook 08000324 g F .text 0000008c main 080017f0 g F .text 00000070 FLASH_EraseSector 08003a9c g F .text 000000b4 f_sync 08001498 g F .text 00000050 SD_SendStatus -0800517c g F .text 00000014 NvmDone +080045c4 g F .text 00000054 FileSrecGetLineType +080051a8 g F .text 00000014 NvmDone 0800350c g F .text 0000002c f_mount -08005074 g F .text 00000064 UartTransmitPacket -08005174 g F .text 00000008 NvmVerifyChecksum -08004bdc g F .text 00000024 CpuMemCopy +080050a0 g F .text 00000064 UartTransmitPacket +080051a0 g F .text 00000008 NvmVerifyChecksum +08004c08 g F .text 00000024 CpuMemCopy 08001afc g F .text 0000001c SDIO_GetResponse 08001cb4 g F .text 000000f8 SystemInit 080027c4 g F .text 0000012e put_fat 08003b68 g F .text 000001bc f_lseek -080050d8 g F .text 00000084 UartReceivePacket +08005104 g F .text 00000084 UartReceivePacket 0800024c g F .text 00000008 FileGetFirmwareFilenameHook 08001124 g F .text 000001bc SD_ReadBlock 20000000 g .data 00000000 _data 08003d24 g F .text 0000004c f_stat 0800444c g F .text 00000002 CopInit -08004c00 g F .text 00000008 CpuReset +08004c2c g F .text 00000008 CpuReset 080007d0 g F .text 0000002c SD_Detect -08005164 g F .text 00000008 NvmWrite -08004bb4 g F .text 00000028 CpuStartUserProgram +08005190 g F .text 00000008 NvmWrite +08004be0 g F .text 00000028 CpuStartUserProgram 080025ec g F .text 0000001e clust2sect 2000183c g .bss 00000000 _estack 08001c90 g F .text 0000000c USART_SendData -08004f30 g F .text 00000058 FlashVerifyChecksum +08004f5c g F .text 00000058 FlashVerifyChecksum 2000001c g .data 00000000 _edata -08004788 g F .text 00000014 FileIsIdle +0800457c g F .text 00000014 FileIsIdle 0800389c g F .text 00000200 f_write 08000000 g O .text 00000188 _vectab 08003538 g F .text 000001a0 f_open @@ -283,7 +287,7 @@ SYMBOL TABLE: 080002d0 g F .text 00000054 FileFirmwareUpdateLogHook 20000018 g O .data 00000004 __ctype_ptr__ 08004030 g F .text 00000008 ComIsConnected -08005c3c g O .text 00000101 _ctype_ +08005c68 g O .text 00000101 _ctype_ 08001a6c g F .text 00000030 SDIO_Init 08000204 g F .text 00000048 FileIsFirmwareUpdateRequestedHook 080007fc g F .text 00000270 SD_PowerON @@ -293,11 +297,11 @@ SYMBOL TABLE: 2000103c g .bss 00000000 _stack 08001a34 g F .text 0000001c RCC_APB2PeriphResetCmd 08003f10 g F .text 0000004c ff_convert -080051ec g F .text 00000010 TimerGet +08005218 g F .text 00000010 TimerGet 08001ab4 g F .text 00000010 SDIO_GetPowerState 08000a6c g F .text 000001b0 SD_InitializeCards 08001904 g F .text 0000000c GPIO_ReadInputDataBit -080051a0 g F .text 0000002c TimerInit +080051cc g F .text 0000002c TimerInit 08001b50 g F .text 0000000c SDIO_WriteData 08000254 g F .text 0000002c FileFirmwareUpdateStartedHook 08001a50 g F .text 0000001c SDIO_DeInit diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.srec b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.srec index 424b6153..da5f6251 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.srec +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.srec @@ -1,48 +1,48 @@ S024000062696E2F6F70656E62746C5F6F6C696D65785F73746D3332653430372E737265639F -S315080000003C18002011520008FD510008FD51000857 -S31508000010FD510008FD510008FD510008FD5100087A -S31508000020FD510008FD510008FD510008FD5100086A -S31508000030FD510008FD510008FD510008FD5100085A -S31508000040FD510008FD510008FD510008FD5100084A -S31508000050FD510008FD510008FD510008FD5100083A -S31508000060FD510008FD510008FD510008FD5100082A -S31508000070FD510008FD510008FD510008FD5100081A -S31508000080FD510008FD510008FD510008FD5100080A -S31508000090FD510008FD510008FD510008FD510008FA -S315080000A0FD510008FD510008FD510008FD510008EA -S315080000B0FD510008FD510008FD510008FD510008DA -S315080000C0FD510008FD510008FD510008FD510008CA -S315080000D0FD510008FD510008FD510008FD510008BA -S315080000E0FD510008FD510008FD510008FD510008AA -S315080000F0FD510008FD510008FD510008FD5100089A -S31508000100FD510008FD510008FD510008FD51000889 -S31508000110FD510008FD510008FD510008FD51000879 -S31508000120FD510008FD510008FD510008FD51000869 -S31508000130FD510008FD510008FD510008FD51000859 -S31508000140FD510008FD510008FD510008FD51000849 -S31508000150FD510008FD510008FD510008FD51000839 -S31508000160FD510008FD510008FD510008FD51000829 -S31508000170FD510008FD510008FD510008FD51000819 -S31508000180FD510008FD51000810B572B61848194906 +S315080000003C1800203D5200082952000829520008D1 +S3150800001029520008295200082952000829520008C6 +S3150800002029520008295200082952000829520008B6 +S3150800003029520008295200082952000829520008A6 +S315080000402952000829520008295200082952000896 +S315080000502952000829520008295200082952000886 +S315080000602952000829520008295200082952000876 +S315080000702952000829520008295200082952000866 +S315080000802952000829520008295200082952000856 +S315080000902952000829520008295200082952000846 +S315080000A02952000829520008295200082952000836 +S315080000B02952000829520008295200082952000826 +S315080000C02952000829520008295200082952000816 +S315080000D02952000829520008295200082952000806 +S315080000E029520008295200082952000829520008F6 +S315080000F029520008295200082952000829520008E6 +S3150800010029520008295200082952000829520008D5 +S3150800011029520008295200082952000829520008C5 +S3150800012029520008295200082952000829520008B5 +S3150800013029520008295200082952000829520008A5 +S315080001402952000829520008295200082952000895 +S315080001502952000829520008295200082952000885 +S315080001602952000829520008295200082952000875 +S315080001702952000829520008295200082952000865 +S31508000180295200082952000810B572B618481949AC S31508000190016019498D46124B124A9A4211D202F150 S315080001A00403114CE41A24F0030404F104044FF088 S315080001B0000310460D495A581A5003F10403A34286 S315080001C0F9D10E480E494FF000028842B8BF40F8F0 S315080001D0042BFFF6FAAF03F023FF00F0A3F810BDD7 -S315080001E01C000020000000201F000020405D0008C1 +S315080001E01C000020000000201F0000206C5D000895 S315080001F008ED00E0000000083C1800202000002060 S315080002003C10002000B589B04FF00003009301931D S315080002100293039304930593069307930A48694642 S3150800022003F080FD40B9009B4BB19DF8080080F0B3 S315080002301000C0F3001004E04FF0000001E04FF09A -S31508000240000009B000BD00BFE85300080048704729 -S31508000250E853000808B508484FF0000380F8243230 +S31508000240000009B000BD00BF1454000800487047FC +S315080002501454000808B508484FF0000380F8243203 S3150800026006494FF00A0203F067F920B94FF0010278 -S31508000270014B83F8242208BD2000002008540008FA +S31508000270014B83F8242208BD2000002034540008CE S3150800028038B50A4B93F82432012B02D1074803F0FC S315080002905FFC074D4FF040042846214601F004FD57 S315080002A00028F9D0034803F063FD38BD200000207C -S315080002B000140140E853000808B5044B93F82432AB +S315080002B0001401401454000808B5044B93F824327E S315080002C0012B02D1014803F043FC08BD20000020A1 S315080002D070B50646114B93F82432012B0BD10F4902 S315080002E003F0FAFD002806DA0C484FF0000380F800 @@ -347,13 +347,13 @@ S31508001580FE021A70014B187808BD00BF040000203F S315080015902DE9F043ADF5037D88461746C8B120E02E S315080015A04FF000094FF40075E619009502A84FEAB6 S315080015B046224B46FFF7B6FDB0B9FFF7ADFF012847 -S315080015C0FBD008EB442002A92A4603F053FE8CB947 +S315080015C0FBD008EB442002A92A4603F069FE8CB931 S315080015D00DE003F1FF34E4B2002BE1D14FF0010036 S315080015E00CE04FF0010009E04FF0010006E04FF073 S315080015F0000003E004F1FF34E4B2D5E70DF5037DFE S31508001600BDE8F0832DE9F043ADF5037D0F4690461E S31508001610E0B123E04FF400754FF0000902A807EB8C -S3150800162044212A4603F026FE04EB0806009502A884 +S3150800162044212A4603F03CFE04EB0806009502A86E S315080016304FEA46224B46FFF753FE08B1052810D15C S31508001640FFF76AFF0128FBD08CB90DE003F1FF34E0 S31508001650E4B2002BDED14FF001000CE04FF00100A0 @@ -714,7 +714,7 @@ S31508002C70D04620465946FFF7A1FE074600283FF4EE S31508002C805BAF10E04FF004070DE006F1FF365FFA80 S31508002C9086F8DDF80890ECE7049C00E0049CDDF873 S31508002CA00890D046E5E7384607B0BDE8F08F00BF84 -S31508002CB0AC5400082DE9F04F85B0824688460B785B +S31508002CB0D85400082DE9F04F85B0824688460B782F S31508002CC02F2B01D05C2B01D108F101084FF000032E S31508002CD0CAF8083098F800301F2B0AD850464FF02B S31508002CE00001FFF719FD02464FF00003CAF8143039 @@ -764,8 +764,8 @@ S31508002F90EEE64FF00004D846A8444FF00407E7E6EB S31508002FA009F1FF3936F819302E2B3FF417AF019B7C S31508002FB012E7019A0B2A7FF445AF39E74FF006026C S31508002FC007E0019B0B2B7FF43DAF31E747F0020783 -S31508002FD05BE7104605B0BDE8F08F00BF185400083F -S31508002FE02C540008245400082DE9F0410446C588ED +S31508002FD05BE7104605B0BDE8F08F00BF4454000813 +S31508002FE058540008505400082DE9F0410446C58895 S31508002FF0018C4FF6FF73994208BF2946FFF78CFBF1 S315080030000346E0B94FF0E5074FF001064FF0000818 S3150800301020682169FFF762FA034668B96269177082 @@ -791,7 +791,7 @@ S31508003140464602E0464600E0464620463946FFF730 S3150800315035FC054618B92169002986D175B14FF0A5 S31508003160000323610AE003F1FF33DEB2F246ECE71F S31508003170F2464646E9E74FF00405F0E7284603B06D -S31508003180BDE8F08FAC5400082DE9F04104460E4620 +S31508003180BDE8F08FD85400082DE9F04104460E46F4 S31508003190012926D98369994226D24FF000074FF0B4 S315080031A0010820463146FFF731FA0546F8B10128ED S315080031B020D0B0F1FF3F20D0204631463A46FFF7EF @@ -847,7 +847,7 @@ S315080034C01BE007F1FF371FFA87F8B8F1000F0DD098 S315080034D06EE706EB020E1EF801EC01F80E708E443C S315080034E08EF80170B2E70C2A9AD9B6E720682169E6 S315080034F0FEF7F4FF82460028C8D0504607B0BDE85C -S31508003500F08F00BF4FECC44EAC54000870B9094B9D +S31508003500F08F00BF4FECC44ED854000870B9094B71 S315080035101B6813B14FF000021A7011B14FF0000387 S315080035200B70044B19604FF0000070474FF00B000A S31508003530704700BF1C0500202DE9F0438FB00191AC @@ -1012,19 +1012,19 @@ S31508003F107F2820D911B9C72808D114E0FF2818D856 S31508003F20A0F180000C4B33F8100070470A4A4FF096 S31508003F30010332F8021F814207D003F101039BB245 S31508003F40802BF6D101E04FF0000303F18000C0B2E8 -S31508003F5070474FF0000070479C56000861280BD048 +S31508003F5070474FF000007047C856000861280BD01C S31508003F6008494FF0000202F1010231F8023F43B15D S31508003F708342F8D113B970474FF00002024B33F869 -S31508003F8012007047BC5400089C57000808B500F09A -S31508003F905DFA01F005F901F0E1F800F0DFFB00F049 +S31508003F8012007047E8540008C857000808B500F042 +S31508003F905DFA01F01BF901F0F7F800F0D9FA00F024 S31508003FA00FF800F043FA08BD08B500F051FA01F021 -S31508003FB00DF900F00DFC00F01DF800F015FA08BD2B +S31508003FB023F900F023FC00F01DF800F015FA08BDFF S31508003FC000B583B04FF0FF038DF804304FF00003BF -S31508003FD08DF8053000F044F801F02AF8044B1B78F8 +S31508003FD08DF8053000F044F801F040F8044B1B78E2 S31508003FE0012B02D101A800F059F803B000BD00BFAB -S31508003FF02005002008B5044801F06EF8012802D112 +S31508003FF02005002008B5044801F084F8012802D1FC S31508004000014800F04BF808BD24050020704700BFA2 -S3150800401008B5C9B201F02EF800F038F808BD00BF9F +S3150800401008B5C9B201F044F800F038F808BD00BF89 S315080040204FF00102014B1A70704700BF20050020AF S3150800403008B500F023F808BD4FF00002014B5A708E S31508004040704700BF64050020044B4FF0FE02DA708B @@ -1033,7 +1033,7 @@ S31508004060054B4FF000021A709A6483F84320A3F8B0 S3150800407044209A705A70704764050020024B1878DD S31508004080003018BF01207047640500204FF0000279 S31508004090014B83F8432070476405002038B5044671 -S315080040A00378FF2B22D100F06FFB20B94FF01000E8 +S315080040A00378FF2B22D100F069FA20B94FF01000EF S315080040B0FFF7CAFF81E1FFF7BFFFAF4B4FF00102E1 S315080040C01A704FF0FF01D9704FF0100119714FF0B7 S315080040D0000159714FF040009871D87119725A72DF @@ -1047,11 +1047,11 @@ S3150800414057015701570157015701570157015701A1 S3150800415057015701570157017900510036006E0083 S315080041605701570157019B005701AF00B400C5001E S3150800417042783F2A04D94FF02200FFF765FF1CE179 -S315080041807D4D05F10400A96C00F028FD4FF0FF03F2 +S315080041807D4D05F10400A96C00F03EFD4FF0FF03DC S31508004190EB706278AB6CD318AB64637803F10103F8 S315080041A0A5F8443009E143783F2B04D94FF02200A3 S315080041B0FFF74AFF01E141686F4DA96405F1040064 -S315080041C0627800F00BFD4FF0FF03EB706278AB6C82 +S315080041C0627800F021FD4FF0FF03EB706278AB6C6C S315080041D0D318AB64637803F10103A5F84430ECE027 S315080041E0654B4FF0FF02DA7042689A644FF001029D S315080041F0A3F84420E1E0604B4FF0FF02DA709B6CB5 @@ -1066,31 +1066,31 @@ S31508004270FF02DA704FF000021A71597859719A7173 S31508004280DA711A724FF00602A3F8442095E03A4C08 S315080042904FF000032370FFF7CFFE4FF0FF03E370E4 S315080042A04FF00103A4F8443087E0334B986C4FF085 -S315080042B03F0104F1010200F055FF20B94FF031002B +S315080042B03F0104F1010200F06BFF20B94FF0310015 S315080042C0FFF7C2FE79E02C4B4FF0FF02DA709A6CCA S315080042D002F13F029A644FF00102A3F844206CE011 S315080042E043783E2B04D94FF02200FFF7ADFE64E079 S315080042F0214B4FF0FF02DA704FF00102A3F8442079 -S31508004300417841B900F03AFF002856D14FF0310004 +S31508004300417841B900F050FF002856D14FF03100EE S31508004310FFF79AFE51E0184B986C04F1020200F080 -S3150800432021FF20B94FF03100FFF78EFE45E0124B12 +S3150800432037FF20B94FF03100FFF78EFE45E0124BFC S3150800433061789A6C8A189A643FE00F4B4FF0FF0237 S31508004340DA704FF000021A715A714FF040019971F4 S31508004350DA711A725A724FF00702A3F844202CE059 -S31508004360054B986C616800F001FF48B94FF03100C1 -S31508004370FFF76AFE21E000BF640500207C590008AB +S31508004360054B986C616800F017FF48B94FF03100AB +S31508004370FFF76AFE21E000BF64050020A85900087F S31508004380184B4FF0FF02DA704FF00102A3F84420F1 -S3150800439013E000F035FC134B4FF0FF02DA704FF0D4 +S3150800439013E000F04BFC134B4FF0FF02DA704FF0BE S315080043A00102A3F8442008E04FF03100FFF74CFE65 S315080043B003E04FF02000FFF747FE0A4B93F843301F S315080043C0012B03D14FF01000FFF73EFE054B4FF0CF S315080043D0010283F8432003F10300B3F84410FFF702 S315080043E017FE38BD6405002008B5FFF721FE012831 -S315080043F017D000F0C9F9A0B10A4B1B78012B10D1D0 -S3150800440000F0F4FE084B1B6803F13203984208D308 -S315080044104FF00002034B1A7000F0C0F908B900F01B -S31508004420C9FB08BDB0050020B405002008B54FF04B -S315080044300102044B1A7000F0D9FE034B1860FFF70F +S315080043F017D000F0C3F8A0B10A4B1B78012B10D1D7 +S3150800440000F00AFF084B1B6803F13203984208D3F1 +S315080044104FF00002034B1A7000F0BAF808B900F022 +S31508004420DFFB08BDB0050020B405002008B54FF035 +S315080044300102044B1A7000F0EFFE034B1860FFF7F9 S31508004440D3FF08BDB0050020B4050020704700BFA3 S31508004450704700BF00F00F03092802D903F137009F S31508004460704703F13000054B1B681B185B7803F097 @@ -1108,389 +1108,392 @@ S31508004510D2B2162A12D8A1F13A04E4B2062C10D95E S31508004520092A84BFA1F13702D2B202EB001000F0CB S31508004530FF0003F10103022BDFD104E04FF0000076 S3150800454001E04FF0000070BC704700BF1800002063 -S315080045502DE9F04F83B080461746894601B120B948 -S315080045607C484FF4167100F019FB98F800307A4A27 -S315080045701268D118497801F00301022908BF203BC7 -S31508004580532B40F0C38098F80130D218527802F0C5 -S315080045900402D2B2002A00F0BC80312B00F0C3809E -S315080045A0322B00F0C380332B00F0C3804FF0000598 -S315080045B0B7E02046FFF79AFF3018C6B205F1FF3577 -S315080045C0ADB204F10204012DF3D82046FFF78EFFA1 -S315080045D06FEA0606F6B2864240F09E80BAF1010FEF -S315080045E02FD0BAF1000F04D0BAF1020F40F097802D -S315080045F056E05846FFF77AFF4FEA0024C9F800400C -S3150800460008F10600FFF772FF2018C9F8000008F144 -S315080046100808019BA3F10305ADB2002F00F08180C5 -S315080046202EB2002E7DDD4FF000044046FFF75EFFF8 -S31508004630385508F1020804F10104A4B2B442F4DBC7 -S315080046406FE05846FFF752FF4FEA0044C9F80040AA -S3150800465008F10600FFF74AFF04EB0024C9F80040FA -S3150800466008F10800FFF742FF2018C9F8000008F112 -S315080046700A08019BA3F10405ADB2002F51D02EB252 -S31508004680002E4EDD4FF000044046FFF72FFF385549 -S3150800469008F1020804F10104A4B2A642F4DC40E0E1 -S315080046A05846FFF723FF4FEA0064C9F8004008F1AF -S315080046B00600FFF71BFF04EB0044C9F8004008F1A9 -S315080046C00800FFF713FF04EB0024C9F8004008F1BF -S315080046D00A00FFF70BFF2018C9F8000008F10C08BC -S315080046E0019BA3F10505ADB2DFB12EB2002E18DD90 -S315080046F04FF000044046FFF7F9FE385508F1020866 -S3150800470004F10104A4B2B442F4DB0AE04FF0000558 -S3150800471007E04FF0000504E04FF6FF7501E04FF0A3 -S31508004720000528B212E04FF0000A04E04FF0010A33 -S3150800473001E04FF0020A08F10200FFF7D7FE06462D -S31508004740019008F1040B05465C4632E703B0BDE864 -S31508004750F08F00BF845900081800002008B54FF0F4 -S315080047600000064B18700649FEF7D0FE20B1054832 -S315080047704FF09E0100F012FA08BD00BFF8050020B0 -S315080047800406002084590008034B1878D0F101006C -S3150800479038BF0020704700BFF805002008B5FFF7AE -S315080047A047FC012809D0094B1B784BB9FBF72AFDB2 -S315080047B0012808D1054B187008BD4FF0000008BD48 -S315080047C04FF0000008BD4FF0000008BDF8050020B6 -S315080047D070B5964B1B78002B00F0C481012B2BD1AA -S315080047E0FBF738FD9248FBF773FD9248FBF770FD1F -S315080047F0FBF72CFD014690484FF00102FEF79CFEA0 -S3150800480038B18E48FBF764FD4FF00100FBF754FD05 -S3150800481070BD8B48FBF75CFD8A48FBF759FD8A4853 -S31508004820FBF756FD894B4FF000021A605A604FF0AD -S3150800483002027E4B1A7070BD022B40F0BB80844D7D -S3150800484084484FF4807105F50D72FFF7F9FA95F96A -S315080048503A32002B0FDA7948FBF73AFD4FF002009F -S31508004860FBF72AFD05F50D70FFF772F94FF0000208 -S315080048706E4B1A7070BDD0B17649084601F5C07105 -S315080048804FF00002FFF764FE0446B0F1FF3F0ED179 -S315080048906A48FBF71DFD4FF00300FBF70DFD664860 -S315080048A0FFF756F94FF00002604B1A7070BD23B23D -S315080048B0002B17DD654B5B683BB9644B654AD2F83C -S315080048C080211A6024B25C600CE0624AD2F880212A -S315080048D05E4909688A423CBF5C490A6003FA84F368 -S315080048E05A4A53605A4BD3F83C22D3F840329A427C -S315080048F040F0388150484FF00001FFF735F970B1A4 -S315080049004E48FBF7E5FC4FF00400FBF7D5FC4A4898 -S31508004910FFF71EF94FF00002444B1A7070BD484865 -S31508004920FBF7D6FC4C48FBF7D3FC484D4B4C686864 -S315080049302146FFF7B7FD2046FBF7CAFC4848FBF7B8 -S31508004940C7FC2E684FEA16602146FFF799FDC6F3A5 -S31508004950074004F10201FFF793FDC6F3072004F1AF -S315080049600401FFF78DFDF0B204F10601FFF788FD9B -S315080049702046FBF7ADFC3B48FBF7AAFC28686968AC -S3150800498000F0F4FB70B92D48FBF7A2FC4FF00500C8 -S31508004990FBF792FC2848FFF7DBF84FF00002234BA1 -S315080049A01A7070BD2648FBF793FC4FF003021F4BA5 -S315080049B01A7070BD032B40F0D580254D25484FF45D -S315080049C0807105F50D72FFF73BFA95F93A32002B1F -S315080049D00FDA2548FBF77CFC4FF00200FBF76CFC6E -S315080049E005F50D70FFF7B4F84FF000020F4B1A707B -S315080049F070BD00283CD0174A104602F5C07102F572 -S31508004A008072FFF7A5FD0446B0F1FF3F30D1174885 -S31508004A10FBF75EFC4FF00300FBF74EFC0648FFF77A -S31508004A2097F84FF00002014B1A7070BDF805002088 -S31508004A309C590008C059000838080020E8590008A1 -S31508004A40F0590008F85900081C5A0008FC0500200F -S31508004A50040600205C0A00204C5A0008B80500200D -S31508004A60585A0008FC5A0008745A0008985A000850 -S31508004A7023B2002B46DD3C48FBF72AFC24B23B4D0B -S31508004A8020462946FFF70EFD2846FBF721FC384845 -S31508004A90FBF71EFC374E96F883012946FFF7F0FC14 -S31508004AA096F8820105F10201FFF7EAFC96F8810102 -S31508004AB005F10401FFF7E4FC96F8800105F106010B -S31508004AC0FFF7DEFC2846FBF703FC2B48FBF700FC48 -S31508004AD0D6F88001214606F5807200F043FB70B9CE -S31508004AE02648FBF7F5FB4FF00600FBF7E5FB2448E5 -S31508004AF0FFF72EF84FF00002224B1A7070BD2248BD -S31508004B00FBF7E6FB214BD3F83C22D3F840329A4216 -S31508004B1028D11F48FBF7DCFB00F030FB70B91748BB -S31508004B20FBF7D6FB4FF00700FBF7C6FB1448FFF769 -S31508004B300FF84FF00002134B1A7070BD1248FBF7BE -S31508004B40C7FB1448FBF7C4FB0D48FFF701F81248EA -S31508004B50FBF7BEFB4FF000020A4B1A70FBF790FBFF -S31508004B6000F028F870BD00BFBC5A0008B805002040 -S31508004B70CC5A00085C0A0020FC5A0008E8590008CC -S31508004B8038080020F8050020F0590008040600201F -S31508004B90E45A0008005B0008185B000808B5034BD8 -S31508004BA01860034B1960FFF753FCFCE7E00B002085 -S31508004BB0E40B002008B500F0DDFA50B1FFF726FA3D -S31508004BC000F0E6FA4FF40042024B1A60024B1B68EB -S31508004BD0984708BD08ED00E00480000870B5044653 -S31508004BE002F1FF36B6B252B100F101039E190D1A51 -S31508004BF0635D04F8013BFFF72BFCB442F8D170BDA6 -S31508004C0008B500F005FB08BDF8B507464FF00004E7 -S31508004C1025460D4EFFF71CFCA359BB420BD831198C -S31508004C2049685B189F4206D205EB4502064B03EB23 -S31508004C308202107AF8BD05F1010504F10C04782CFE -S31508004C40E8D14FF0FF00F8BD745B00082DE9F0418C -S31508004C5007460068FFF7D8FFFF2830D0FCF74EFD5F -S31508004C604FF0F300FCF762FDFCF766FD012818BF5C -S31508004C70002404D1FCF752FD4FF0000421E03E6801 -S31508004C8004EB06083B195D68FFF7E2FB4046294638 -S31508004C90FCF790FD08280AD1A359AB420AD104F1C2 -S31508004CA00404B4F5007FEAD14FF0010404E04FF0A4 -S31508004CB0000401E04FF00004FCF730FD01E04FF07E -S31508004CC000042046BDE8F08108B54FEAC1534FEA13 -S31508004CD0D3535BB903688B420BD040F8041B4FF4DF -S31508004CE00072FFF77BFF4FF0010008BD4FF0000090 -S31508004CF008BD4FF0010008BD38B504460D460C4BFB -S31508004D00984206D00B4B994205D0FFF79FFF18B97A -S31508004D100AE0094C00E0064C20462946FFF7D4FF76 -S31508004D20002808BF002401E04FF00004204638BDE3 -S31508004D30E80B002000800008EC0D00202DE9F84360 -S31508004D4006460C4617461D464FEA51294FEA492999 -S31508004D500368B3F1FF3F03D14946FFF7B5FF50B3E8 -S31508004D6033684B4505D030464946FFF7C5FF06462A -S31508004D7028B33368E41A341904F1040440F2FF181E -S31508004D8009F50079FFF764FB06F10403E31A4345C6 -S31508004D9007D930464946FFF7AFFF064698B100F1F6 -S31508004DA0040417F8013B04F8013B013DEAD14FF032 -S31508004DB00100BDE8F8834FF00000BDE8F8834FF026 -S31508004DC00000BDE8F8834FF00000BDE8F88300BF97 -S31508004DD04FF0FF33024A1360024A1360704700BF60 -S31508004DE0EC0D0020E80B002070B504460D4616466B -S31508004DF0FFF70AFFFF2814D004F1FF304019FFF728 -S31508004E0003FFFF2810D04FEA5422094BB3EB422F79 -S31508004E100CBF08480848214632462B46FFF78EFF46 -S31508004E2070BD4FF0000070BD4FF0000070BD00BFB0 -S31508004E3000800008E80B0020EC0D0020F8B50646B7 -S31508004E400D46FFF7E1FE044606F1FF304019FFF76D -S31508004E50DBFE0546FF2C3AD0FF283BD084422DD8EE -S31508004E60012C2ED90B282FD8FCF748FC4FF0F3005D -S31508004E70FCF75CFCFCF760FC012804D1FCF74EFC4F -S31508004E804FF00000F8BD154F4FF00206FFF7E0FAA5 -S31508004E9037F814003146FCF7ABFC082804D0FCF7B9 -S31508004EA03DFC4FF00000F8BD04F10104E4B2A54250 -S31508004EB0ECD2FCF733FC4FF00100F8BD4FF00000D0 -S31508004EC0F8BD4FF00000F8BD4FF00000F8BD4FF0F8 -S31508004ED00000F8BD4FF00000F8BD00BF445B0008B5 -S31508004EE000B583B0104B1B68B3F1FF3F18D00E4BCB -S31508004EF099685A688918DA6889181A6989185A6976 -S31508004F0089189A698A18D9695318C3F1000302AA3D -S31508004F1042F8043D05484FF00401FFF765FF01E03C -S31508004F204FF0010003B000BDE80B0020888100089F -S31508004F300E4B1868A3F104031B68C0180C4B1B68BA -S31508004F40C0180C4B1B68C0180B4B1B68C0180B4BC2 -S31508004F501B68C0180A4B1B68C0180A4B1B68C01888 -S31508004F60D0F1010038BF0020704700BF0480000858 -S31508004F70088000080C8000081080000814800008CB -S31508004F80188000088881000808B50D4B1B68B3F126 -S31508004F90FF3F03D00A48FFF759FE58B1094B1B6873 -S31508004FA0B3F1FF3F09D00748FFF750FE003018BF9E -S31508004FB0012008BD4FF0000008BD4FF0010008BDF4 -S31508004FC0E80B0020EC0D002010B5044608484FF009 -S31508004FD02001FCF769FE012806D10548FCF75EFEAC -S31508004FE020704FF0010010BD4FF0000010BD00BF4B -S31508004FF00014014038B504460C484FF08001FCF710 -S3150800500053FE78B109482146FCF742FE074D4FF09A -S31508005010800428462146FCF747FE0028F9D04FF0C1 -S31508005020010038BD4FF0000038BD00BF0014014034 -S3150800503010B584B04FF4614300934FF00003ADF808 -S315080050400430ADF80630ADF80830ADF80C304FF046 -S315080050500C03ADF80A30064C20466946FCF78EFD6F -S3150800506020464FF00101FCF703FE04B010BD00BF57 -S31508005070001401402DE9F04106460C46402904D9A2 -S3150800508014484FF07601FFF789FD2046FFF7B2FF77 -S31508005090012804D00F484FF07901FFF77FFD254618 -S315080050A0ACB14FF00004DFF82C804FF08107FFF712 -S315080050B0CFF9305DFFF79EFF012803D040463946F9 -S315080050C0FFF76CFD04F10104A3B2AB42EFD3BDE8D0 -S315080050D0F08100BFEC5B000810B504461B4B1B783B -S315080050E06BB91B48FFF770FF012825D14FF0010265 -S315080050F0164B1A704FF00000164B187010BD154B62 -S315080051001878154BC018FFF75FFF012817D1114B08 -S315080051101A7802F10102D2B21A700D4B1B7893422B -S3150800512010D120460C49FFF759FD4FF00002074BF6 -S315080051301A704FF0010010BD4FF0000010BD4FF07F -S31508005140000010BD4FF0000010BD00BFF10F002099 -S31508005150F40F0020F00F0020F50F002008B5FFF728 -S3150800516037FE08BD08B5FFF73FFE08BD08B5FFF7CF -S3150800517065FE08BD08B5FFF7DBFE08BD08B5FFF7F5 -S31508005180AFFE10B1FFF700FF08BD4FF0000008BDE5 -S315080051904FF00002014B1A60704700BF10E000E0B4 -S315080051A008B5FFF7F5FF064B064A5A604FF00002AE -S315080051B09A604FF005011960034B1A6008BD00BFDD -S315080051C010E000E03F90020038100020054B1B68F5 -S315080051D013F4803F04D0044B1A6802F101021A60E6 -S315080051E0704700BF10E000E03810002008B5FFF750 -S315080051F0EDFF014B186808BD3810002008B50348B4 -S315080052004FF03601FFF7CAFC08BD00BF105C000866 -S3150800521010B572B6114B124A9A4211D202F1040322 -S31508005220104CE41A24F0030404F104044FF00003BC -S3150800523010460D495A581A5003F10403A342F9D1EE -S315080052400A480B494FF000028842B8BF40F8042BC1 -S31508005250FFF6FAAFFBF766F810BD00BF1C0000208A -S31508005260000000201F000020405D000820000020EC -S315080052703C100020032A2DE9F00F09D82AB1002393 -S31508005280CC5CC45401339342FAD1BDE8F00F7047A1 -S31508005290830702440ED0441C4D1C15F8017C04F00B -S315080052A00306234601342946013504F8027C002EFC -S315080052B0F3D100E0034611F003046DD0D71A0D1B95 -S315080052C0032F2E6819DDC4F1040C4FEAC4081C1D0F -S315080052D04FEACC0C55F8047FC4EB02092346043187 -S315080052E00434B9F1030F26FA08FA07FA0CFB3E460E -S315080052F04BEA0A0744F8087CECDC9A42C5D9013324 -S315080053000131013211F8014C01330131934203F89E -S31508005310024CF7D1B9E70C684033403143F8404CAA -S3150800532051F83C4C43F83C4C51F8384C43F8384C4F -S3150800533051F8344C43F8344C51F8304C43F8304C5F -S3150800534051F82C4C43F82C4C51F8284C43F8284C6F -S3150800535051F8244C43F8244C51F8204C43F8204C7F -S3150800536051F81C4C43F81C4C51F8184C43F8184C8F -S3150800537051F8144C43F8144C51F8104C43F8104C9F -S3150800538051F80C4C43F80C4C51F8084C43F8084CAF -S3150800539051F8044C43F8044CD41A3F2CBBDC11E0FA -S315080053A00C681033103143F8104C51F80C4C43F884 -S315080053B00C4C51F8084C43F8084C51F8044C43F887 -S315080053C0044CD41A0F2CEBDC032C96DD1C1D0D1D8A -S315080053D055F8047C161B2346294604340435032E47 -S315080053E044F8087CF4DC88E72F64656D6F70726F8B -S315080053F0675F6F6C696D65785F73746D333265349A -S3150800540030372E73726563002F626F6F746C6F6727 -S315080054102E74787400000000222A3A3C3E3F7C7FB6 -S31508005420000000002B2C3B3D5B5D0000809A9041FC -S315080054308E418F804545454949498E8F9092924FB6 -S31508005440994F555559999A9B9C9D9E9F41494F55F1 -S31508005450A5A5A6A7A8A9AAABAC21AEAFB0B1B2B311 -S31508005460B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C376 -S31508005470C4C5C6C7C8C9CACBCCCDCECFD0D1D2D366 -S31508005480D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E356 -S31508005490E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F346 -S315080054A0F4F5F6F7F8F9FAFBFCFDFEFF010305072C -S315080054B0090E10121416181C1E0000006100620066 -S315080054C063006400650066006700680069006A009A -S315080054D06B006C006D006E006F007000710072004A -S315080054E073007400750076007700780079007A00FA -S315080054F0A100A200A300A500AC00AF00E000E100F7 -S31508005500E200E300E400E500E600E700E800E90061 -S31508005510EA00EB00EC00ED00EE00EF00F000F10011 -S31508005520F200F300F400F500F600F800F900FA00BE -S31508005530FB00FC00FD00FE00FF0001010301050160 -S31508005540070109010B010D010F01110113011501D5 -S31508005550170119011B011D011F0121012301250145 -S31508005560270129012B012D012F01310133013501B5 -S3150800557037013A013C013E0140014201440146011E -S3150800558048014B014D014F01510153015501570186 -S3150800559059015B015D015F016101630165016701F5 -S315080055A069016B016D016F01710173017501770165 -S315080055B07A017C017E019201B103B203B303B403FD -S315080055C0B503B603B703B803B903BA03BB03BC03F1 -S315080055D0BD03BE03BF03C003C103C303C403C5039E -S315080055E0C603C703C803C903CA0330043104320417 -S315080055F033043404350436043704380439043A04C9 -S315080056003B043C043D043E043F0440044104420478 -S3150800561043044404450446044704480449044A0428 -S315080056204B044C044D044E044F04510452045304D5 -S315080056305404550456045704580459045A045B0480 -S315080056405C045E045F047021712172217321742148 -S31508005650752176217721782179217A217B217C2170 -S315080056607D217E217F2141FF42FF43FF44FF45FF05 -S3150800567046FF47FF48FF49FF4AFF4BFF4CFF4DFFD8 -S315080056804EFF4FFF50FF51FF52FF53FF54FF55FF88 -S3150800569056FF57FF58FF59FF5AFF0000C700FC0086 -S315080056A0E900E200E400E000E500E700EA00EB00BC -S315080056B0E800EF00EE00EC00C400C500C900E600F3 -S315080056C0C600F400F600F200FB00F900FF00D60061 -S315080056D0DC00A200A300A500A7209201E100ED00CE -S315080056E0F300FA00F100D100AA00BA00BF001023A7 -S315080056F0AC00BD00BC00A100AB00BB009125922503 -S3150800570093250225242561256225562555256325D9 -S31508005710512557255D255C255B251025142534253F -S315080057202C251C2500253C255E255F255A25542554 -S3150800573069256625602550256C2567256825642515 -S31508005740652559255825522553256B256A2518257B -S315080057500C25882584258C2590258025B103DF0016 -S315080057609303C003A303C303B500C403A6039803A6 -S31508005770A903B4031E22C603B50329226122B10078 -S315080057806522642220232123F7004822B00019222B -S31508005790B7001A227F20B200A025A00041004200CF -S315080057A043004400450046004700480049004A00B7 -S315080057B04B004C004D004E004F0050005100520067 -S315080057C053005400550056005700580059005A0017 -S315080057D02100E0FFE1FFE5FFE2FFE3FFC000C100B3 -S315080057E0C200C300C400C500C600C700C800C9007F -S315080057F0CA00CB00CC00CD00CE00CF00D000D1002F -S31508005800D200D300D400D500D600D800D900DA00DB -S31508005810DB00DC00DD00DE00780100010201040186 -S31508005820060108010A010C010E01100112011401FA -S31508005830160118011A011C011E012001220124016A -S31508005840260128012A012C012E01300132013401DA -S31508005850360139013B013D013F0141014301450143 -S3150800586047014A014C014E015001520154015601AB -S3150800587058015A015C015E0160016201640166011A -S3150800588068016A016C016E0170017201740176018A -S3150800589079017B017D01910191039203930394039E -S315080058A0950396039703980399039A039B039C030E -S315080058B09D039E039F03A003A103A303A403A503BB -S315080058C0A603A703A803A903AA0310041104120434 -S315080058D013041404150416041704180419041A04E6 -S315080058E01B041C041D041E041F0420042104220496 -S315080058F023042404250426042704280429042A0446 -S315080059002B042C042D042E042F0401040204030482 -S315080059100404050406040704080409040A040B041D -S315080059200C040E040F0460216121622163216421A5 -S31508005930652166216721682169216A216B216C210D -S315080059406D216E216F2121FF22FF23FF24FF25FFF2 -S3150800595026FF27FF28FF29FF2AFF2BFF2CFF2DFFF5 -S315080059602EFF2FFF30FF31FF32FF33FF34FF35FFA5 -S3150800597036FF37FF38FF39FF3AFF00004F70656E74 -S31508005980424C54002E2E2F2E2E2F2E2E2F536F754F -S315080059907263652F66696C652E6300004669726DD1 -S315080059A077617265207570646174652072657175BA -S315080059B06573742064657465637465640A0D000014 -S315080059C04F70656E696E67206669726D776172657C -S315080059D02066696C6520666F722072656164696EFF -S315080059E0672E2E2E000000004552524F520A0D0017 -S315080059F04F4B0A0D000000005374617274696E679C -S31508005A00207468652070726F6772616D6D696E6764 -S31508005A102073657175656E63650A0D005061727352 -S31508005A20696E67206669726D776172652066696C52 -S31508005A306520746F206F627461696E206572617388 -S31508005A40652073697A652E2E2E00000045726173F3 -S31508005A50696E67200000000020627974657320660D -S31508005A60726F6D206D656D6F727920617420307864 -S31508005A700000000052656164696E67206C696E6596 -S31508005A802066726F6D2066696C652E2E2E45525201 -S31508005A904F520A0D00000000496E76616C69642059 -S31508005AA0636865636B73756D20666F756E642E2EFD -S31508005AB02E4552524F520A0D0000000050726F6771 -S31508005AC072616D6D696E672000000000206279744E -S31508005AD0657320746F206D656D6F7279206174200F -S31508005AE03078000057726974696E672070726F6744 -S31508005AF072616D20636865636B73756D2E2E2E005B -S31508005B00436C6F73696E67206669726D776172653B -S31508005B102066696C650A0D004669726D7761726563 -S31508005B202075706461746520737563636573736645 -S31508005B30756C6C7920636F6D706C657465640A0D9D -S31508005B4000000000000008001000180020002800CF -S31508005B503000380040004800500058008000880097 -S31508005B6090009800A000A800B000B800C000C800C7 -S31508005B70D000D800008000080040000002000000A5 -S31508005B8000C00008004000000300000000000108F3 -S31508005B9000000100040000000000020800000200E6 -S31508005BA005000000000004080000020006000000CE -S31508005BB000000608000002000700000000000808B0 -S31508005BC0000002000800000000000A0800000200A9 -S31508005BD00900000000000C08000002000A0000008E -S31508005BE000000E08000002000B0000002E2E2F2ECB -S31508005BF02E2F2E2E2F536F757263652F41524D43EC -S31508005C004D345F53544D33322F756172742E6300D1 -S31508005C102E2E2F2E2E2F2E2E2F536F757263652F35 -S31508005C2041524D434D345F53544D33322F4743430E -S31508005C302F766563746F72732E6300000020202030 -S31508005C40202020202020282828282820202020201E -S31508005C5020202020202020202020202020881010EE -S31508005C60101010101010101010101010100404044A -S31508005C700404040404040410101010101010414108 -S31508005C8041414141010101010101010101010101F6 -S31508005C90010101010101010110101010101042420A -S31508005CA042424242020202020202020202020202C6 -S31508005CB00202020202020202101010102000000066 -S31508005CC000000000000000000000000000000000C6 -S31508005CD000000000000000000000000000000000B6 -S31508005CE000000000000000000000000000000000A6 +S3150800455008B54FF00000064B18700649FEF7D6FF5F +S3150800456020B105484FF07C0100F02EFB08BD00BFC6 +S31508004570F805002004060020B0590008034B1878F7 +S31508004580D0F1010038BF0020704700BFF8050020B1 +S3150800459008B5FFF74DFD012809D0094B1B784BB923 +S315080045A0FBF730FE012808D1054B187008BD4FF0FF +S315080045B0000008BD4FF0000008BD4FF0000008BD20 +S315080045C0F80500200378134A1268D118497801F0D3 +S315080045D00301022908BF203B532B0FD1407812183C +S315080045E0537803F00403DBB25BB131280CD03228D0 +S315080045F00DD0332814BF0320022070474FF0030064 +S3150800460070474FF0030070474FF0000070474FF0B7 +S31508004610010070471800002070B5044600F102003A +S31508004620FFF764FF0646054604F104042046FFF733 +S315080046305DFF3018C6B205F1FF35ADB204F10204CC +S31508004640012DF3D82046FFF751FF6FEA0606F6B2AA +S31508004650864214BF0020012070BD00BF2DE9F0413D +S3150800466004461546884601B120B9634840F236210A +S3150800467000F0AAFA2046FFF7A5FF0646032800F031 +S31508004680B0802046FFF7C8FF002800F0AD80012E55 +S3150800469034D01EB1022E40F0AA8065E004F1020073 +S315080046A0FFF724FF074604F10400FFF71FFF4FEA50 +S315080046B00026C8F8006004F10600FFF717FF301857 +S315080046C0C8F8000004F10806A7F10307BFB2002DD9 +S315080046D000F08F800FFA87F8B8F1000F40F3898051 +S315080046E04FF000043046FFF701FF285506F1020691 +S315080046F004F10104A4B24445F4DB7AE004F10200B3 +S31508004700FFF7F4FE074604F10400FFF7EFFE4FEA51 +S315080047100046C8F8006004F10600FFF7E7FE06EB5E +S315080047200026C8F8006004F10800FFF7DFFE30181D +S31508004730C8F8000004F10A06A7F10407BFB2002D65 +S3150800474057D00FFA87F8B8F1000F52DD4FF0000482 +S315080047503046FFF7CBFE285506F1020604F10104A0 +S31508004760A4B24445F4DB44E004F10200FFF7BEFEC0 +S31508004770074604F10400FFF7B9FE4FEA0066C8F8D9 +S31508004780006004F10600FFF7B1FE06EB0046C8F824 +S31508004790006004F10800FFF7A9FE06EB0026C8F83A +S315080047A0006004F10A00FFF7A1FE3018C8F80000FF +S315080047B004F10C06A7F10507BFB2D5B10FFA87F8C1 +S315080047C0B8F1000F15DD4FF000043046FFF78EFEF6 +S315080047D0285506F1020604F10104A4B24445F4DBA7 +S315080047E007E04FF0000704E04FF6FF7701E04FF0CF +S315080047F0000738B2BDE8F081B059000870B5964B8D +S315080048001B78002B00F0C481012B2BD1FBF722FD6E +S315080048109248FBF75DFD9248FBF75AFDFBF716FD3C +S31508004820014690484FF00102FEF786FE38B18E48E1 +S31508004830FBF74EFD4FF00100FBF73EFD70BD8B48C0 +S31508004840FBF746FD8A48FBF743FD8A48FBF740FD20 +S31508004850894B4FF000021A605A604FF002027E4BF5 +S315080048601A7070BD022B40F0BB80844D84484FF40B +S31508004870807105F50D72FFF7E3FA95F93A32002BC8 +S315080048800FDA7948FBF724FD4FF00200FBF714FD19 +S3150800489005F50D70FFF75CF94FF000026E4B1A70C4 +S315080048A070BDD0B17649084601F5C0714FF00002D7 +S315080048B0FFF7D4FE0446B0F1FF3F0ED16A48FBF776 +S315080048C007FD4FF00300FBF7F7FC6648FFF740F9D2 +S315080048D04FF00002604B1A7070BD23B2002B17DD33 +S315080048E0654B5B683BB9644B654AD2F880211A6010 +S315080048F024B25C600CE0624AD2F880215E490968FD +S315080049008A423CBF5C490A6003FA84F35A4A5360F8 +S315080049105A4BD3F83C22D3F840329A4240F03881B9 +S3150800492050484FF00001FFF71FF970B14E48FBF7EA +S31508004930CFFC4FF00400FBF7BFFC4A48FFF708F925 +S315080049404FF00002444B1A7070BD4848FBF7C0FC94 +S315080049504C48FBF7BDFC484D4B4C68682146FFF7B1 +S31508004960A1FD2046FBF7B4FC4848FBF7B1FC2E68CE +S315080049704FEA16602146FFF783FDC6F3074004F1A8 +S315080049800201FFF77DFDC6F3072004F10401FFF7D6 +S3150800499077FDF0B204F10601FFF772FD2046FBF73A +S315080049A097FC3B48FBF794FC2868696800F0F4FB21 +S315080049B070B92D48FBF78CFC4FF00500FBF77CFC23 +S315080049C02848FFF7C5F84FF00002234B1A7070BD50 +S315080049D02648FBF77DFC4FF003021F4B1A7070BD8B +S315080049E0032B40F0D580254D25484FF4807105F5F9 +S315080049F00D72FFF725FA95F93A32002B0FDA25489A +S31508004A00FBF766FC4FF00200FBF756FC05F50D7048 +S31508004A10FFF79EF84FF000020F4B1A7070BD002882 +S31508004A203CD0174A104602F5C07102F58072FFF7AE +S31508004A3015FE0446B0F1FF3F30D11748FBF748FC96 +S31508004A404FF00300FBF738FC0648FFF781F84FF0F4 +S31508004A500002014B1A7070BDF8050020C8590008FD +S31508004A60EC59000838080020145A00081C5A000897 +S31508004A70245A0008485A0008FC05002004060020AD +S31508004A805C0A0020785A0008B8050020845A0008F5 +S31508004A90285B0008A05A0008C45A000823B2002B55 +S31508004AA046DD3C48FBF714FC24B23B4D204629461C +S31508004AB0FFF7F8FC2846FBF70BFC3848FBF708FC21 +S31508004AC0374E96F883012946FFF7DAFC96F88201F5 +S31508004AD005F10201FFF7D4FC96F8810105F10401FE +S31508004AE0FFF7CEFC96F8800105F10601FFF7C8FC32 +S31508004AF02846FBF7EDFB2B48FBF7EAFBD6F88001C7 +S31508004B00214606F5807200F043FB70B92648FBF78C +S31508004B10DFFB4FF00600FBF7CFFB2448FFF718F83A +S31508004B204FF00002224B1A7070BD2248FBF7D0FBEB +S31508004B30214BD3F83C22D3F840329A4228D11F4859 +S31508004B40FBF7C6FB00F030FB70B91748FBF7C0FB54 +S31508004B504FF00700FBF7B0FB1448FEF7F9FF4FF0DC +S31508004B600002134B1A7070BD1248FBF7B1FB1448CC +S31508004B70FBF7AEFB0D48FEF7EBFF1248FBF7A8FB69 +S31508004B804FF000020A4B1A70FBF77AFB00F028F880 +S31508004B9070BD00BFE85A0008B8050020F85A00089A +S31508004BA05C0A0020285B0008145A00083808002010 +S31508004BB0F80500201C5A000804060020105B0008AF +S31508004BC02C5B0008445B000808B5034B1860034BD0 +S31508004BD01960FFF73DFCFCE7E00B0020E40B002022 +S31508004BE008B500F0DDFA50B1FFF710FA00F0E6FA62 +S31508004BF04FF40042024B1A60024B1B68984708BDE7 +S31508004C0008ED00E00480000870B5044602F1FF369E +S31508004C10B6B252B100F101039E190D1A635D04F88C +S31508004C20013BFFF715FCB442F8D170BD08B500F09A +S31508004C3005FB08BDF8B507464FF0000425460D4E9E +S31508004C40FFF706FCA359BB420BD8311949685B1814 +S31508004C509F4206D205EB4502064B03EB8202107A09 +S31508004C60F8BD05F1010504F10C04782CE8D14FF0E4 +S31508004C70FF00F8BDA05B00082DE9F0410746006873 +S31508004C80FFF7D8FFFF2830D0FCF738FD4FF0F300C8 +S31508004C90FCF74CFDFCF750FD012818BF002404D191 +S31508004CA0FCF73CFD4FF0000421E03E6804EB0608E3 +S31508004CB03B195D68FFF7CCFB40462946FCF77AFDB1 +S31508004CC008280AD1A359AB420AD104F10404B4F561 +S31508004CD0007FEAD14FF0010404E04FF0000401E040 +S31508004CE04FF00004FCF71AFD01E04FF000042046DF +S31508004CF0BDE8F08108B54FEAC1534FEAD3535BB913 +S31508004D0003688B420BD040F8041B4FF40072FFF780 +S31508004D107BFF4FF0010008BD4FF0000008BD4FF0C3 +S31508004D20010008BD38B504460D460C4B984206D01E +S31508004D300B4B994205D0FFF79FFF18B90AE0094CBB +S31508004D4000E0064C20462946FFF7D4FF002808BF96 +S31508004D50002401E04FF00004204638BDE80B00208F +S31508004D6000800008EC0D00202DE9F84306460C46A5 +S31508004D7017461D464FEA51294FEA49290368B3F1F8 +S31508004D80FF3F03D14946FFF7B5FF50B333684B459C +S31508004D9005D030464946FFF7C5FF064628B33368AF +S31508004DA0E41A341904F1040440F2FF1809F50079ED +S31508004DB0FFF74EFB06F10403E31A434507D93046CD +S31508004DC04946FFF7AFFF064698B100F1040417F805 +S31508004DD0013B04F8013B013DEAD14FF00100BDE873 +S31508004DE0F8834FF00000BDE8F8834FF00000BDE8F7 +S31508004DF0F8834FF00000BDE8F88300BF4FF0FF339B +S31508004E00024A1360024A1360704700BFEC0D002087 +S31508004E10E80B002070B504460D461646FFF70AFF54 +S31508004E20FF2814D004F1FF304019FFF703FFFF28CD +S31508004E3010D04FEA5422094BB3EB422F0CBF084857 +S31508004E400848214632462B46FFF78EFF70BD4FF0C5 +S31508004E50000070BD4FF0000070BD00BF0080000864 +S31508004E60E80B0020EC0D0020F8B506460D46FFF7C6 +S31508004E70E1FE044606F1FF304019FFF7DBFE054662 +S31508004E80FF2C3AD0FF283BD084422DD8012C2ED9AE +S31508004E900B282FD8FCF732FC4FF0F300FCF746FC42 +S31508004EA0FCF74AFC012804D1FCF738FC4FF0000057 +S31508004EB0F8BD154F4FF00206FFF7CAFA37F8140087 +S31508004EC03146FCF795FC082804D0FCF727FC4FF080 +S31508004ED00000F8BD04F10104E4B2A542ECD2FCF7E7 +S31508004EE01DFC4FF00100F8BD4FF00000F8BD4FF073 +S31508004EF00000F8BD4FF00000F8BD4FF00000F8BD07 +S31508004F004FF00000F8BD00BF705B000800B583B025 +S31508004F10104B1B68B3F1FF3F18D00E4B99685A68BF +S31508004F208918DA6889181A6989185A6989189A6964 +S31508004F308A18D9695318C3F1000302AA42F8043D36 +S31508004F4005484FF00401FFF765FF01E04FF0010047 +S31508004F5003B000BDE80B0020888100080E4B1868D6 +S31508004F60A3F104031B68C0180C4B1B68C0180C4B34 +S31508004F701B68C0180B4B1B68C0180B4B1B68C01866 +S31508004F800A4B1B68C0180A4B1B68C018D0F10100F1 +S31508004F9038BF0020704700BF04800008088000085A +S31508004FA00C8000081080000814800008188000088B +S31508004FB08881000808B50D4B1B68B3F1FF3F03D085 +S31508004FC00A48FFF759FE58B1094B1B68B3F1FF3F72 +S31508004FD009D00748FFF750FE003018BF012008BD6A +S31508004FE04FF0000008BD4FF0010008BDE80B002097 +S31508004FF0EC0D002010B5044608484FF02001FCF7D8 +S3150800500053FE012806D10548FCF748FE20704FF0EC +S31508005010010010BD4FF0000010BD00BF0014014094 +S3150800502038B504460C484FF08001FCF73DFE78B1D0 +S3150800503009482146FCF72CFE074D4FF08004284608 +S315080050402146FCF731FE0028F9D04FF0010038BDA3 +S315080050504FF0000038BD00BF0014014010B584B001 +S315080050604FF4614300934FF00003ADF80430ADF8F8 +S315080050700630ADF80830ADF80C304FF00C03ADF83B +S315080050800A30064C20466946FCF778FD20464FF064 +S315080050900101FCF7EDFD04B010BD00BF001401408E +S315080050A02DE9F04106460C46402904D914484FF02C +S315080050B07601FFF789FD2046FFF7B2FF012804D0E5 +S315080050C00F484FF07901FFF77FFD2546ACB14FF049 +S315080050D00004DFF82C804FF08107FFF7B9F9305D3F +S315080050E0FFF79EFF012803D040463946FFF76CFDBF +S315080050F004F10104A3B2AB42EFD3BDE8F08100BFCF +S31508005100185C000810B504461B4B1B786BB91B4886 +S31508005110FFF770FF012825D14FF00102164B1A70D0 +S315080051204FF00000164B187010BD154B1878154B2C +S31508005130C018FFF75FFF012817D1114B1A7802F143 +S315080051400102D2B21A700D4B1B78934210D1204639 +S315080051500C49FFF759FD4FF00002074B1A704FF044 +S31508005160010010BD4FF0000010BD4FF0000010BD4B +S315080051704FF0000010BD00BF35100020F00F0020D2 +S3150800518034100020F10F002008B5FFF737FE08BDE0 +S3150800519008B5FFF73FFE08BD08B5FFF765FE08BD71 +S315080051A008B5FFF7DBFE08BD08B5FFF7AFFE10B17F +S315080051B0FFF700FF08BD4FF0000008BD4FF00002E2 +S315080051C0014B1A60704700BF10E000E008B5FFF712 +S315080051D0F5FF064B064A5A604FF000029A604FF0F8 +S315080051E005011960034B1A6008BD00BF10E000E016 +S315080051F03F90020038100020054B1B6813F4803FCF +S3150800520004D0044B1A6802F101021A60704700BF05 +S3150800521010E000E03810002008B5FFF7EDFF014B5D +S31508005220186808BD3810002008B503484FF0360145 +S31508005230FFF7CAFC08BD00BF3C5C000810B572B693 +S31508005240114B124A9A4211D202F10403104CE41A85 +S3150800525024F0030404F104044FF0000310460D493A +S315080052605A581A5003F10403A342F9D10A480B49C4 +S315080052704FF000028842B8BF40F8042BFFF6FAAF99 +S31508005280FBF750F810BD00BF1C00002000000020EE +S315080052901F0000206C5D0008200000203C10002044 +S315080052A0032A2DE9F00F09D82AB10023CC5CC4548F +S315080052B001339342FAD1BDE8F00F704783070244E1 +S315080052C00ED0441C4D1C15F8017C04F00306234639 +S315080052D001342946013504F8027C002EF3D100E09A +S315080052E0034611F003046DD0D71A0D1B032F2E6841 +S315080052F019DDC4F1040C4FEAC4081C1D4FEACC0C96 +S3150800530055F8047FC4EB0209234604310434B9F185 +S31508005310030F26FA08FA07FA0CFB3E464BEA0A0779 +S3150800532044F8087CECDC9A42C5D9013301310132D4 +S3150800533011F8014C01330131934203F8024CF7D1BD +S31508005340B9E70C684033403143F8404C51F83C4CBF +S3150800535043F83C4C51F8384C43F8384C51F8344C27 +S3150800536043F8344C51F8304C43F8304C51F82C4C37 +S3150800537043F82C4C51F8284C43F8284C51F8244C47 +S3150800538043F8244C51F8204C43F8204C51F81C4C57 +S3150800539043F81C4C51F8184C43F8184C51F8144C67 +S315080053A043F8144C51F8104C43F8104C51F80C4C77 +S315080053B043F80C4C51F8084C43F8084C51F8044C87 +S315080053C043F8044CD41A3F2CBBDC11E00C681033AC +S315080053D0103143F8104C51F80C4C43F80C4C51F86A +S315080053E0084C43F8084C51F8044C43F8044CD41ABA +S315080053F00F2CEBDC032C96DD1C1D0D1D55F8047CCB +S31508005400161B2346294604340435032E44F8087C23 +S31508005410F4DC88E72F64656D6F70726F675F6F6C79 +S31508005420696D65785F73746D3332653430372E7302 +S31508005430726563002F626F6F746C6F672E74787471 +S3150800544000000000222A3A3C3E3F7C7F0000000014 +S315080054502B2C3B3D5B5D0000809A90418E418F80EE +S315080054604545454949498E8F9092924F994F5555D2 +S3150800547059999A9B9C9D9E9F41494F55A5A5A6A7BC +S31508005480A8A9AAABAC21AEAFB0B1B2B3B4B5B6B7A2 +S31508005490B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C706 +S315080054A0C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7F6 +S315080054B0D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E6 +S315080054C0E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7D6 +S315080054D0F8F9FAFBFCFDFEFF01030507090E101299 +S315080054E01416181C1E0000006100620063006400A8 +S315080054F0650066006700680069006A006B006C005A +S315080055006D006E006F007000710072007300740009 +S31508005510750076007700780079007A00A100A2006D +S31508005520A300A500AC00AF00E000E100E200E30044 +S31508005530E400E500E600E700E800E900EA00EB0021 +S31508005540EC00ED00EE00EF00F000F100F200F300D1 +S31508005550F400F500F600F800F900FA00FB00FC007C +S31508005560FD00FE00FF000101030105010701090115 +S315080055700B010D010F011101130115011701190185 +S315080055801B011D011F0121012301250127012901F5 +S315080055902B012D012F0131013301350137013A0164 +S315080055A03C013E01400142014401460148014B01CC +S315080055B04D014F01510153015501570159015B0135 +S315080055C05D015F01610163016501670169016B01A5 +S315080055D06D016F0171017301750177017A017C0113 +S315080055E07E019201B103B203B303B403B503B60354 +S315080055F0B703B803B903BA03BB03BC03BD03BE03B1 +S31508005600BF03C003C103C303C403C503C603C7035B +S31508005610C803C903CA03300431043204330434040A +S31508005620350436043704380439043A043B043C0488 +S315080056303D043E043F044004410442044304440438 +S31508005640450446044704480449044A044B044C04E8 +S315080056504D044E044F045104520453045404550493 +S3150800566056045704580459045A045B045C045E043F +S315080056705F047021712172217321742175217621AD +S315080056807721782179217A217B217C217D217E2130 +S315080056907F2141FF42FF43FF44FF45FF46FF47FF87 +S315080056A048FF49FF4AFF4BFF4CFF4DFF4EFF4FFF98 +S315080056B050FF51FF52FF53FF54FF55FF56FF57FF48 +S315080056C058FF59FF5AFF0000C700FC00E900E20036 +S315080056D0E400E000E500E700EA00EB00E800EF0080 +S315080056E0EE00EC00C400C500C900E600C600F400E0 +S315080056F0F600F200FB00F900FF00D600DC00A2006D +S31508005700A300A500A7209201E100ED00F300FA002E +S31508005710F100D100AA00BA00BF001023AC00BD00FA +S31508005720BC00A100AB00BB0091259225932502255C +S315080057302425612562255625552563255125572596 +S315080057405D255C255B251025142534252C251C256F +S3150800575000253C255E255F255A255425692566259D +S31508005760602550256C2567256825642565255925F6 +S315080057705825522553256B256A2518250C25882575 +S3150800578084258C2590258025B103DF009303C0036B +S31508005790A303C303B500C403A6039803A903B4036C +S315080057A01E22C603B50329226122B100652264229E +S315080057B020232123F7004822B0001922B7001A2215 +S315080057C07F20B200A025A00041004200430044000B +S315080057D0450046004700480049004A004B004C0077 +S315080057E04D004E004F005000510052005300540027 +S315080057F0550056005700580059005A002100E0FF8E +S31508005800E1FFE5FFE2FFE3FFC000C100C200C300FD +S31508005810C400C500C600C700C800C900CA00CB003E +S31508005820CC00CD00CE00CF00D000D100D200D300EE +S31508005830D400D500D600D800D900DA00DB00DC0099 +S31508005840DD00DE00780100010201040106010801FD +S315080058500A010C010E0110011201140116011801AA +S315080058601A011C011E01200122012401260128011A +S315080058702A012C012E013001320134013601390189 +S315080058803B013D013F0141014301450147014A01F1 +S315080058904C014E01500152015401560158015A015A +S315080058A05C015E01600162016401660168016A01CA +S315080058B06C016E01700172017401760179017B0138 +S315080058C07D01910191039203930394039503960333 +S315080058D09703980399039A039B039C039D039E03CE +S315080058E09F03A003A103A303A403A503A603A70379 +S315080058F0A803A903AA031004110412041304140428 +S31508005900150416041704180419041A041B041C04A5 +S315080059101D041E041F042004210422042304240455 +S31508005920250426042704280429042A042B042C0405 +S315080059302D042E042F0401040204030404040504A0 +S3150800594006040704080409040A040B040C040E04DC +S315080059500F0460216121622163216421652166218A +S315080059606721682169216A216B216C216D216E21CD +S315080059706F2121FF22FF23FF24FF25FF26FF27FF94 +S3150800598028FF29FF2AFF2BFF2CFF2DFF2EFF2FFFB5 +S3150800599030FF31FF32FF33FF34FF35FF36FF37FF65 +S315080059A038FF39FF3AFF00004F70656E424C5400CD +S315080059B02E2E2F2E2E2F2E2E2F536F757263652F98 +S315080059C066696C652E6300004669726D776172655B +S315080059D020757064617465207265717565737420CD +S315080059E064657465637465640A0D00004F70656EBE +S315080059F0696E67206669726D776172652066696C83 +S31508005A006520666F722072656164696E672E2E2E38 +S31508005A10000000004552524F520A0D004F4B0A0D26 +S31508005A20000000005374617274696E6720746865BB +S31508005A302070726F6772616D6D696E67207365712C +S31508005A4075656E63650A0D0050617273696E67202D +S31508005A506669726D776172652066696C6520746F18 +S31508005A60206F627461696E2065726173652073695F +S31508005A707A652E2E2E00000045726173696E6720C6 +S31508005A80000000002062797465732066726F6D20CD +S31508005A906D656D6F727920617420307800000000A2 +S31508005AA052656164696E67206C696E652066726FFF +S31508005AB06D2066696C652E2E2E4552524F520A0D80 +S31508005AC000000000496E76616C696420636865634E +S31508005AD06B73756D20666F756E642E2E2E45525249 +S31508005AE04F520A0D0000000050726F6772616D6DAB +S31508005AF0696E67200000000020627974657320745F +S31508005B006F206D656D6F72792061742030780000A2 +S31508005B1057726974696E672070726F6772616D205B +S31508005B20636865636B73756D2E2E2E00436C6F73F9 +S31508005B30696E67206669726D776172652066696C41 +S31508005B40650A0D004669726D776172652075706425 +S31508005B50617465207375636365737366756C6C79B8 +S31508005B6020636F6D706C657465640A0D0000000033 +S31508005B700000080010001800200028003000380037 +S31508005B8040004800500058008000880090009800A7 +S31508005B90A000A800B000B800C000C800D000D80017 +S31508005BA000800008004000000200000000C0000855 +S31508005BB0004000000300000000000108000001008A +S31508005BC004000000000002080000020005000000B2 +S31508005BD00000040800000200060000000000060895 +S31508005BE0000002000700000000000808000002008C +S31508005BF00800000000000A08000002000900000072 +S31508005C0000000C08000002000A00000000000E0850 +S31508005C10000002000B0000002E2E2F2E2E2F2E2EF7 +S31508005C202F536F757263652F41524D434D345F5341 +S31508005C30544D33322F756172742E63002E2E2F2E1B +S31508005C402E2F2E2E2F536F757263652F41524D439B +S31508005C504D345F53544D33322F4743432F76656394 +S31508005C60746F72732E6300000020202020202020ED +S31508005C7020202828282828202020202020202020EE +S31508005C8020202020202020202088101010101010FE +S31508005C90101010101010101010040404040404044A +S31508005CA004040410101010101010414141414141E4 +S31508005CB001010101010101010101010101010101C6 +S31508005CC001010101101010101010424242424242D6 +S31508005CD00202020202020202020202020202020296 +S31508005CE0020202021010101020000000000000003E S31508005CF00000000000000000000000000000000096 S31508005D000000000000000000000000000000000085 S31508005D100000000000000000000000000000000075 S31508005D200000000000000000000000000000000065 S31508005D300000000000000000000000000000000055 -S31508005D400100000001000000000000000102030439 -S31108005D5001020304060708093C5C000871 +S31508005D400000000000000000000000000000000045 +S31508005D500000000000000000000000000000000035 +S31108005D6000000000000000000000000029 +S31508005D6C010000000100000000000000010203040D +S31108005D7C0102030406070809685C000819 S70508000000F2 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/blt_conf.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/blt_conf.h index 14710f65..d5b266a1 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/blt_conf.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/blt_conf.h @@ -61,6 +61,33 @@ /**************************************************************************************** * C O M M U N I C A T I O N I N T E R F A C E C O N F I G U R A T I O N ****************************************************************************************/ +/* The CAN communication interface is selected by setting the BOOT_COM_CAN_ENABLE + * configurable to 1. Configurable BOOT_COM_CAN_BAUDRATE selects the communication speed + * in bits/second. Two CAN messages are reserved for communication with the host. The + * message identifier for sending data from the target to the host is configured with + * BOOT_COM_CAN_TXMSG_ID. The one for receiving data from the host is configured with + * BOOT_COM_CAN_RXMSG_ID. The maximum amount of data bytes in a message for data + * transmission and reception is set through BOOT_COM_CAN_TX_MAX_DATA and + * BOOT_COM_CAN_RX_MAX_DATA, respectively. It is common for a microcontroller to have more + * than 1 CAN controller on board. The zero-based BOOT_COM_CAN_CHANNEL_INDEX selects the + * CAN controller channel. + * + */ +/** \brief Enable/disable CAN transport layer. */ +#define BOOT_COM_CAN_ENABLE (0) +/** \brief Configure the desired CAN baudrate. */ +#define BOOT_COM_CAN_BAUDRATE (500000) +/** \brief Configure CAN message ID target->host. */ +#define BOOT_COM_CAN_TX_MSG_ID (0x7E1) +/** \brief Configure number of bytes in the target->host CAN message. */ +#define BOOT_COM_CAN_TX_MAX_DATA (8) +/** \brief Configure CAN message ID host->target. */ +#define BOOT_COM_CAN_RX_MSG_ID (0x667) +/** \brief Configure number of bytes in the host->target CAN message. */ +#define BOOT_COM_CAN_RX_MAX_DATA (8) +/** \brief Select the desired CAN peripheral as a zero based index. */ +#define BOOT_COM_CAN_CHANNEL_INDEX (1) + /* The UART communication interface is selected by setting the BOOT_COM_UART_ENABLE * configurable to 1. Configurable BOOT_COM_UART_BAUDRATE selects the communication speed * in bits/second. The maximum amount of data bytes in a message for data transmission diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/ide/DemoBoot.project b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/ide/DemoBoot.project index da15e695..e1656684 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/ide/DemoBoot.project +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/ide/DemoBoot.project @@ -229,6 +229,16 @@ continue + + + + + + + + + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/main.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/main.c index 74e3697e..2f41b3b0 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/main.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/main.c @@ -79,6 +79,8 @@ static void Init(void) #elif (BOOT_FILE_SYS_ENABLE > 0) GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; +#elif (BOOT_COM_CAN_ENABLE > 0) + GPIO_InitTypeDef GPIO_InitStructure; #endif /* disable all interrupts to prevent possible jump back to the user program */ @@ -134,6 +136,24 @@ static void Init(void) /* enable UART */ USART_Cmd(USART6, ENABLE); #endif +#if (BOOT_COM_CAN_ENABLE > 0) + /* enable clocks for CAN2 transmitter and receiver pins */ + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); + /* select alternate function for the CAN2 pins */ + GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_CAN2); + GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_CAN2); + /* configure CAN2 RX and TX pins */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_Init(GPIOB, &GPIO_InitStructure); + /* enable CAN clock. Note that CAN2 shares reception filters with CAN1 so for CAN2 + * the CAN1 peripheral also needs to be enabled. + */ + RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2 | RCC_APB1Periph_CAN1, ENABLE); +#endif } /*** end of Init ***/ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/makefile b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/makefile index bbd0078e..82519436 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/makefile +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/makefile @@ -126,6 +126,8 @@ main.c \ ../../../Source/assert.h \ ../../../Source/plausibility.h \ ../../../Source/ARMCM4_STM32/types.h \ +../../../Source/ARMCM4_STM32/can.c \ +../../../Source/ARMCM4_STM32/can.h \ ../../../Source/ARMCM4_STM32/cpu.c \ ../../../Source/ARMCM4_STM32/cpu.h \ ../../../Source/ARMCM4_STM32/flash.c \ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/boot.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/boot.c index edaa0fbd..96988f60 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/boot.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/boot.c @@ -182,4 +182,184 @@ static unsigned char UartReceiveByte(unsigned char *data) #endif /* BOOT_COM_UART_ENABLE > 0 */ +#if (BOOT_COM_CAN_ENABLE > 0) +/**************************************************************************************** +* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E +****************************************************************************************/ + +/**************************************************************************************** +* Type definitions +****************************************************************************************/ +/** \brief Structure type for grouping CAN bus timing related information. */ +typedef struct t_can_bus_timing +{ + unsigned char tseg1; /**< CAN time segment 1 */ + unsigned char tseg2; /**< CAN time segment 2 */ +} tCanBusTiming; + + +/**************************************************************************************** +* Local constant declarations +****************************************************************************************/ +/** \brief CAN bittiming table for dynamically calculating the bittiming settings. + * \details According to the CAN protocol 1 bit-time can be made up of between 8..25 + * time quanta (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC + * always being 1. The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * + * 100%. This array contains possible and valid time quanta configurations with + * a sample point between 68..78%. + */ +static const tCanBusTiming canTiming[] = +{ /* TQ | TSEG1 | TSEG2 | SP */ + /* ------------------------- */ + { 5, 2 }, /* 8 | 5 | 2 | 75% */ + { 6, 2 }, /* 9 | 6 | 2 | 78% */ + { 6, 3 }, /* 10 | 6 | 3 | 70% */ + { 7, 3 }, /* 11 | 7 | 3 | 73% */ + { 8, 3 }, /* 12 | 8 | 3 | 75% */ + { 9, 3 }, /* 13 | 9 | 3 | 77% */ + { 9, 4 }, /* 14 | 9 | 4 | 71% */ + { 10, 4 }, /* 15 | 10 | 4 | 73% */ + { 11, 4 }, /* 16 | 11 | 4 | 75% */ + { 12, 4 }, /* 17 | 12 | 4 | 76% */ + { 12, 5 }, /* 18 | 12 | 5 | 72% */ + { 13, 5 }, /* 19 | 13 | 5 | 74% */ + { 14, 5 }, /* 20 | 14 | 5 | 75% */ + { 15, 5 }, /* 21 | 15 | 5 | 76% */ + { 15, 6 }, /* 22 | 15 | 6 | 73% */ + { 16, 6 }, /* 23 | 16 | 6 | 74% */ + { 16, 7 }, /* 24 | 16 | 7 | 71% */ + { 16, 8 } /* 25 | 16 | 8 | 68% */ +}; + + +/************************************************************************************//** +** \brief Search algorithm to match the desired baudrate to a possible bus +** timing configuration. +** \param baud The desired baudrate in kbps. Valid values are 10..1000. +** \param prescaler Pointer to where the value for the prescaler will be stored. +** \param tseg1 Pointer to where the value for TSEG2 will be stored. +** \param tseg2 Pointer to where the value for TSEG2 will be stored. +** \return 1 if the CAN bustiming register values were found, 0 otherwise. +** +****************************************************************************************/ +static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, + unsigned char *tseg1, unsigned char *tseg2) +{ + unsigned char cnt; + + /* loop through all possible time quanta configurations to find a match */ + for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) + { + if (((BOOT_CPU_SYSTEM_SPEED_KHZ/4) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) + { + /* compute the prescaler that goes with this TQ configuration */ + *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/4)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); + + /* make sure the prescaler is valid */ + if ( (*prescaler > 0) && (*prescaler <= 1024) ) + { + /* store the bustiming configuration */ + *tseg1 = canTiming[cnt].tseg1; + *tseg2 = canTiming[cnt].tseg2; + /* found a good bus timing configuration */ + return 1; + } + } + } + /* could not find a good bus timing configuration */ + return 0; +} /*** end of CanGetSpeedConfig ***/ + + +/************************************************************************************//** +** \brief Initializes the CAN communication interface. +** \return none. +** +****************************************************************************************/ +void BootComInit(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + CAN_InitTypeDef CAN_InitStructure; + CAN_FilterInitTypeDef CAN_FilterInitStructure; + unsigned short prescaler; + unsigned char tseg1, tseg2; + + /* enable clocks for CAN2 transmitter and receiver pins */ + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); + /* select alternate function for the CAN2 pins */ + GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_CAN2); + GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_CAN2); + /* configure CAN2 RX and TX pins */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_Init(GPIOB, &GPIO_InitStructure); + /* enable CAN clock. Note that CAN2 shares reception filters with CAN1 so for CAN2 + * the CAN1 peripheral also needs to be enabled. + */ + RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2 | RCC_APB1Periph_CAN1, ENABLE); + /* CAN register init */ + CAN_DeInit(CAN2); + CAN_StructInit(&CAN_InitStructure); + /* obtain the bittiming configuration for this baudrate */ + CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); + /* CAN controller init */ + CAN_InitStructure.CAN_TTCM = DISABLE; + CAN_InitStructure.CAN_ABOM = DISABLE; + CAN_InitStructure.CAN_AWUM = DISABLE; + CAN_InitStructure.CAN_NART = DISABLE; + CAN_InitStructure.CAN_RFLM = DISABLE; + CAN_InitStructure.CAN_TXFP = DISABLE; + CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; + /* CAN Baudrate init */ + CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; + CAN_InitStructure.CAN_BS1 = tseg1 - 1; + CAN_InitStructure.CAN_BS2 = tseg2 - 1; + CAN_InitStructure.CAN_Prescaler = prescaler; + CAN_Init(CAN2, &CAN_InitStructure); + /* CAN filter init - receive all messages */ + CAN_FilterInitStructure.CAN_FilterNumber = 14; + CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; + CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; + CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; + CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; + CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; + CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; + CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; + CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; + CAN_FilterInit(&CAN_FilterInitStructure); +} /*** end of BootComInit ***/ + + +/************************************************************************************//** +** \brief Receives the CONNECT request from the host, which indicates that the +** bootloader should be activated and, if so, activates it. +** \return none. +** +****************************************************************************************/ +void BootComCheckActivationRequest(void) +{ + CanRxMsg RxMessage; + + /* check if a new message was received */ + if (CAN_MessagePending(CAN2, CAN_FIFO0) > 0) + { + /* receive the message */ + CAN_Receive(CAN2, CAN_FIFO0, &RxMessage); + if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) + { + /* check if this was an XCP CONNECT command */ + if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) + { + /* connection request received so start the bootloader */ + BootActivate(); + } + } + } +} /*** end of BootComCheckActivationRequest ***/ +#endif /* BOOT_COM_CAN_ENABLE > 0 */ + + /*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out index 14eefae5..0d4d7a88 100644 Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out differ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.srec b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.srec index a1c6f9f5..f642a6cb 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.srec +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.srec @@ -1055,7 +1055,7 @@ S315080041B8022B44BF0B7803707047083A07D3B1E857 S315080041C80810083A40F8043B40F804CBF7D25307DE S315080041D8E4E7FF0010B5DFF8D00600210170DFF824 S315080041E8CC160020FDF7DEFB0400E4B2002C04D050 -S315080041F89E21DFF8BC0600F0F7FB10BDDFF8A8061D +S315080041F87C21DFF8BC0600F0F7FB10BDDFF8A8063F S315080042080078002801D1012000E00020704780B519 S3150800421800F02EFC012801D1002011E0DFF88806FD S315080042280078002801D000200AE000F025FC0128C3 @@ -1135,7 +1135,7 @@ S315080046B800F070F90500AE19A41C200000F06AF98C S315080046C8801906006D1EA41CADB2022DF5DAF6B2E5 S315080046D8F643200000F05EF9F6B2864201D00020C3 S315080046E800E0012070BD2DE9F84F82460C00150040 -S315080046F80027002C02D0BAF1000F04D14FF4167126 +S315080046F80027002C02D0BAF1000F04D140F2362167 S315080047086B4800F071F95046FFF7AEFF0600F6B29F S31508004718032E01D10020C4E05046FFF7C4FF002845 S3150800472802D15FF0FF30BCE0F6B2002E03D0022EAD diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/blt_conf.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/blt_conf.h index 9937b9a1..f07aad89 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/blt_conf.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/blt_conf.h @@ -63,6 +63,33 @@ /**************************************************************************************** * C O M M U N I C A T I O N I N T E R F A C E C O N F I G U R A T I O N ****************************************************************************************/ +/* The CAN communication interface is selected by setting the BOOT_COM_CAN_ENABLE + * configurable to 1. Configurable BOOT_COM_CAN_BAUDRATE selects the communication speed + * in bits/second. Two CAN messages are reserved for communication with the host. The + * message identifier for sending data from the target to the host is configured with + * BOOT_COM_CAN_TXMSG_ID. The one for receiving data from the host is configured with + * BOOT_COM_CAN_RXMSG_ID. The maximum amount of data bytes in a message for data + * transmission and reception is set through BOOT_COM_CAN_TX_MAX_DATA and + * BOOT_COM_CAN_RX_MAX_DATA, respectively. It is common for a microcontroller to have more + * than 1 CAN controller on board. The zero-based BOOT_COM_CAN_CHANNEL_INDEX selects the + * CAN controller channel. + * + */ +/** \brief Enable/disable CAN transport layer. */ +#define BOOT_COM_CAN_ENABLE (0) +/** \brief Configure the desired CAN baudrate. */ +#define BOOT_COM_CAN_BAUDRATE (500000) +/** \brief Configure CAN message ID target->host. */ +#define BOOT_COM_CAN_TX_MSG_ID (0x7E1) +/** \brief Configure number of bytes in the target->host CAN message. */ +#define BOOT_COM_CAN_TX_MAX_DATA (8) +/** \brief Configure CAN message ID host->target. */ +#define BOOT_COM_CAN_RX_MSG_ID (0x667) +/** \brief Configure number of bytes in the host->target CAN message. */ +#define BOOT_COM_CAN_RX_MAX_DATA (8) +/** \brief Select the desired CAN peripheral as a zero based index. */ +#define BOOT_COM_CAN_CHANNEL_INDEX (1) + /* The UART communication interface is selected by setting the BOOT_COM_UART_ENABLE * configurable to 1. Configurable BOOT_COM_UART_BAUDRATE selects the communication speed * in bits/second. The maximum amount of data bytes in a message for data transmission diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.dbgdt b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.dbgdt index 2c970dd9..0d886ade 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.dbgdt +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.dbgdt @@ -83,14 +83,14 @@ - TextEditor$WS_DIR$\..\main.c0000033290029000TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.c000003151940619406TextEditor$WS_DIR$\..\config.h000005754055405TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.c0000014564796479TextEditor$WS_DIR$\..\lib\fatfs\mmc.c000005972781627816TextEditor$WS_DIR$\..\..\..\..\Source\fatfs\src\ff.c000003114111111111111TextEditor$WS_DIR$\..\..\..\..\Source\xcp.c000002161156011560TextEditor$WS_DIR$\..\..\..\..\Source\boot.c000003327982798TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000008957995799TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c000009152115211TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.c000006341864186TextEditor$WS_DIR$\..\..\..\..\Source\file.c0000010859936018TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\uart.c0000014474897489TextEditor$WS_DIR$\..\..\..\..\Source\com.c0000013370857085TextEditor$WS_DIR$\..\hooks.c0000033916576166010100000010000001 + TextEditor$WS_DIR$\..\main.c0000033296329630TextEditor$WS_DIR$\..\blt_conf.h0000054338433840100000010000001 - iaridepm.enu1debuggergui.enu1-2-2741198-2-2200200104167198413104167737103-2-2741461-2-2200200104167198413241146737103-2-21981922-2-219242001002083198413104167198413 + iaridepm.enu1debuggergui.enu1-2-2741198-2-2200200104167198413104167737103-2-2741461-2-2200200104167198413241146737103-2-21981922-2-219242001002083198413104167198413 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.dni b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.dni index 13bcaec1..130e2c90 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.dni +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.dni @@ -9,7 +9,7 @@ TriggerName=main LimitSize=0 ByteLimit=50 [DebugChecksum] -Checksum=-471197012 +Checksum=1695986847 [Exceptions] StopOnUncaught=_ 0 StopOnThrow=_ 0 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt index f59ec3d6..dda105f8 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt @@ -12,20 +12,20 @@ - 203272727 + 338272727 - 20139537293 + 200Find-in-Files20139537293 - 19027326 + 19027326200Build FileFunctionLine200700100300 @@ -42,36 +42,20 @@ - 0 - - - TabID-3456-10024 - Build - Build - - - - TabID-19098-11164 - Find in Files - Find-in-Files - - - - - 0 + 0TabID-19870-1384BuildBuild0 - TextEditor$WS_DIR$\..\main.c0000000000100000010000001 + TextEditor$WS_DIR$\..\main.c0000033296329630TextEditor$WS_DIR$\..\blt_conf.h0000054338433840100000010000001 - iaridepm.enu1-2-2778277-2-2135163104328198056215611947752-2-2778374-2-212971631002318198056290572947752 + iaridepm.enu1-2-2963412-2-2200200104167198413215625957341-2-2963420-2-2200200104167198413219792957341 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep index 248481a4..1957ebee 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep @@ -2,7 +2,7 @@ 2 - 3754409461 + 2468415132 Debug @@ -73,19 +73,21 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_wwdg.h $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Source\system_stm32f4xx.c $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h - $PROJ_DIR$\..\config.h + $PROJ_DIR$\..\blt_conf.h $PROJ_DIR$\..\hooks.c $PROJ_DIR$\..\main.c - $TOOLKIT_DIR$\inc\c\string.h + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\cstart.s $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\vectors.c + $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.c + $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.h $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.h $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.c $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.h - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.c $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.h + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.c $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.h $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\types.h @@ -110,28 +112,28 @@ $PROJ_DIR$\..\..\..\..\Source\plausibility.h $PROJ_DIR$\..\..\..\..\Source\xcp.c $PROJ_DIR$\..\..\..\..\Source\xcp.h - $PROJ_DIR$\..\obj\stm32f4xx_usart.pbi - $PROJ_DIR$\..\obj\uart.pbi - $TOOLKIT_DIR$\inc\c\DLib_Threads.h - $PROJ_DIR$\..\obj\stm32f4xx_sdio.pbi - $PROJ_DIR$\..\obj\stm32f4xx_wwdg.pbi - $PROJ_DIR$\..\bin\openbtl_olimex_stm32e407.srec - $PROJ_DIR$\..\obj\stm32f4xx_pwr.pbi - $TOOLKIT_DIR$\inc\c\cmsis_iar.h - $PROJ_DIR$\..\obj\stm32f4xx_rcc.pbi - $PROJ_DIR$\..\obj\stm32f4xx_pwr.o - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h $PROJ_DIR$\..\obj\stm32f4xx_tim.o + $PROJ_DIR$\..\obj\uart.pbi $PROJ_DIR$\..\obj\stm32f4xx_usart.o + $PROJ_DIR$\..\obj\stm32f4xx_pwr.pbi + $PROJ_DIR$\..\bin\openbtl_olimex_stm32e407.srec + $PROJ_DIR$\..\obj\stm32f4xx_sdio.pbi + $TOOLKIT_DIR$\inc\c\cmsis_iar.h + $TOOLKIT_DIR$\inc\c\DLib_Threads.h + $PROJ_DIR$\..\obj\stm32f4xx_usart.pbi $PROJ_DIR$\..\obj\stm32f4xx_wwdg.o $PROJ_DIR$\..\obj\stm32f4xx_adc.pbi + $TOOLKIT_DIR$\inc\c\ycheck.h + $PROJ_DIR$\..\obj\stm32f4xx_pwr.o + $TOOLKIT_DIR$\inc\c\string.h + $PROJ_DIR$\..\obj\stm32f4xx_wwdg.pbi + $PROJ_DIR$\..\obj\stm32f4xx_rcc.pbi $PROJ_DIR$\..\obj\stm32f4xx_can.pbi $PROJ_DIR$\..\obj\stm32f4xx_crc.pbi $TOOLKIT_DIR$\inc\c\DLib_Defaults.h $TOOLKIT_DIR$\inc\c\stdint.h $PROJ_DIR$\..\obj\misc.pbi $PROJ_DIR$\..\obj\stm32f4xx_dac.pbi - $TOOLKIT_DIR$\inc\c\ycheck.h $TOOLKIT_DIR$\inc\c\DLib_Product.h $PROJ_DIR$\..\obj\stm32f4xx_exti.pbi $PROJ_DIR$\..\obj\stm32f4xx_iwdg.pbi @@ -227,7 +229,6 @@ $PROJ_DIR$\..\obj\stm32f4xx_cryp_des.lst $TOOLKIT_DIR$\lib\shb_l.a $PROJ_DIR$\..\obj\misc.lst - $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\memory.x $PROJ_DIR$\..\obj\stm32f4xx_syscfg.pbi $PROJ_DIR$\..\obj\stm32f4xx_hash_sha1.pbi $PROJ_DIR$\..\obj\stm32f4xx_cryp.lst @@ -235,6 +236,7 @@ $PROJ_DIR$\..\obj\stm32f4xx_adc.lst $PROJ_DIR$\..\obj\stm32f4xx_exti.lst $PROJ_DIR$\..\obj\stm32f4xx_dbgmcu.lst + $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\memory.x $PROJ_DIR$\..\obj\stm32f4xx_crc.lst $PROJ_DIR$\..\obj\stm32f4xx_dcmi.lst $PROJ_DIR$\..\obj\stm32f4xx_flash.lst @@ -280,7 +282,6 @@ $PROJ_DIR$\..\obj\stm32f4xx_rtc.pbi $PROJ_DIR$\..\obj\stm32f4xx_i2c.o $PROJ_DIR$\..\obj\stm32f4xx_syscfg.o - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c $PROJ_DIR$\..\obj\stm32f4xx_cryp_des.pbi $PROJ_DIR$\..\obj\stm32f4xx_cryp.pbi $PROJ_DIR$\..\obj\stm32f4xx_iwdg.o @@ -288,32 +289,44 @@ $PROJ_DIR$\..\obj\stm32f4xx_rcc.o $PROJ_DIR$\..\obj\stm32f4xx_flash.pbi $PROJ_DIR$\..\obj\stm32f4xx_rng.o + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c $PROJ_DIR$\..\obj\stm32f4xx_rtc.o $PROJ_DIR$\..\obj\stm32f4xx_sdio.o $PROJ_DIR$\..\obj\stm32f4xx_cryp_tdes.pbi $PROJ_DIR$\..\obj\stm32f4xx_spi.o - $PROJ_DIR$\..\blt_conf.h + $PROJ_DIR$\..\obj\can.pbi + $PROJ_DIR$\..\obj\can.o + $PROJ_DIR$\..\obj\can.lst + + [ROOT_NODE] + + + ILINK + 139 258 + + + $PROJ_DIR$\..\lib\fatfs\mmc.c - BICOMP - 262 + ICCARM + 260 263 - ICCARM - 258 261 + BICOMP + 264 - BICOMP - 70 125 151 121 136 126 152 106 130 114 85 88 8 4 122 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 119 117 153 124 138 128 154 113 132 70 87 90 8 4 125 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 70 125 151 121 136 126 152 106 130 114 85 88 8 4 122 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 119 117 153 124 138 128 154 113 132 70 87 90 8 4 125 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -321,22 +334,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\misc.c - BICOMP - 123 + ICCARM + 222 137 - ICCARM - 220 135 + BICOMP + 126 - BICOMP - 7 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 + ICCARM + 7 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 - ICCARM - 7 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 + BICOMP + 7 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 @@ -344,18 +357,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c - BICOMP - 118 + ICCARM + 227 145 - ICCARM - 226 143 + BICOMP + 116 ICCARM - 10 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 10 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -363,22 +376,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c - BICOMP - 119 + ICCARM + 219 147 - ICCARM - 217 145 + BICOMP + 122 - BICOMP - 12 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 12 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 12 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 12 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -386,22 +399,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c - BICOMP - 120 + ICCARM + 231 151 - ICCARM - 229 149 + BICOMP + 123 - BICOMP - 15 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 15 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 15 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 15 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -409,22 +422,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c - BICOMP - 276 + ICCARM + 225 148 - ICCARM - 224 146 + BICOMP + 277 - BICOMP - 17 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 17 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 17 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 17 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -432,22 +445,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c - BICOMP - 278 + ICCARM + 218 140 - ICCARM - 216 138 + BICOMP + 279 - BICOMP - 17 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 17 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 17 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 17 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -455,22 +468,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c - BICOMP - 275 + ICCARM + 220 141 - ICCARM - 218 139 + BICOMP + 276 - BICOMP - 17 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 17 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 17 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 17 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -478,54 +491,45 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c - BICOMP - 284 + ICCARM + 226 144 - ICCARM - 225 142 + BICOMP + 286 - BICOMP - 17 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 17 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 17 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 17 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - - [ROOT_NODE] - - - ILINK - 137 256 - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c - BICOMP - 124 + ICCARM + 236 155 - ICCARM - 234 153 + BICOMP + 127 - BICOMP - 22 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 22 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 22 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 22 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -533,22 +537,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c - BICOMP - 267 + ICCARM + 229 146 - ICCARM - 228 144 + BICOMP + 269 - BICOMP - 24 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 24 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 24 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 24 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -556,22 +560,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c - BICOMP - 150 + ICCARM + 232 156 - ICCARM - 230 154 + BICOMP + 152 - BICOMP - 26 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 26 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 26 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 26 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -579,22 +583,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c - BICOMP - 161 + ICCARM + 240 157 - ICCARM - 238 155 + BICOMP + 163 - BICOMP - 28 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 28 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 28 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 28 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -602,22 +606,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c - BICOMP - 127 + ICCARM + 228 158 - ICCARM - 227 156 + BICOMP + 129 - BICOMP - 30 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 30 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 30 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 30 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -625,22 +629,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c - BICOMP - 280 + ICCARM + 233 159 - ICCARM - 231 157 + BICOMP + 281 - BICOMP - 32 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 32 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 32 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 32 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -648,22 +652,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c - BICOMP - 129 + ICCARM + 234 160 - ICCARM - 232 158 + BICOMP + 131 - BICOMP - 34 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 34 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 34 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 34 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -671,22 +675,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c - BICOMP - 213 + ICCARM + 235 161 - ICCARM - 233 159 + BICOMP + 215 - BICOMP - 36 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 36 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 36 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 36 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -694,22 +698,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c - BICOMP - 214 + ICCARM + 237 162 - ICCARM - 235 160 + BICOMP + 216 - BICOMP - 38 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 38 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 38 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 38 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -717,22 +721,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c - BICOMP - 215 + ICCARM + 214 149 - ICCARM - 212 147 + BICOMP + 217 - BICOMP - 38 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 38 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 38 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 38 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -740,22 +744,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c - BICOMP - 223 + ICCARM + 239 150 - ICCARM - 237 148 + BICOMP + 224 - BICOMP - 38 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 38 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 38 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 38 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -763,22 +767,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c - BICOMP - 162 + ICCARM + 243 274 - ICCARM - 241 272 + BICOMP + 164 - BICOMP - 42 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 42 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 42 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 42 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 44 46 48 50 52 54 56 58 60 62 64 7 @@ -786,22 +790,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c - BICOMP - 128 + ICCARM + 241 278 - ICCARM - 239 277 + BICOMP + 130 - BICOMP - 44 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 44 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 44 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 44 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 46 48 50 52 54 56 58 60 62 64 7 @@ -809,22 +813,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c - BICOMP - 110 + ICCARM + 250 118 - ICCARM - 248 113 + BICOMP + 109 - BICOMP - 46 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 48 50 52 54 56 58 60 62 64 7 + ICCARM + 46 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 48 50 52 54 56 58 60 62 64 7 - ICCARM - 46 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 48 50 52 54 56 58 60 62 64 7 + BICOMP + 46 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 48 50 52 54 56 58 60 62 64 7 @@ -832,22 +836,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c - BICOMP - 112 + ICCARM + 251 280 - ICCARM - 249 279 + BICOMP + 121 - BICOMP - 48 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 50 52 54 56 58 60 62 64 7 + ICCARM + 48 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 50 52 54 56 58 60 62 64 7 - ICCARM - 48 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 50 52 54 56 58 60 62 64 7 + BICOMP + 48 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 50 52 54 56 58 60 62 64 7 @@ -855,22 +859,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c - BICOMP - 269 + ICCARM + 249 282 - ICCARM - 247 281 + BICOMP + 271 - BICOMP - 50 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 52 54 56 58 60 62 64 7 + ICCARM + 50 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 52 54 56 58 60 62 64 7 - ICCARM - 50 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 52 54 56 58 60 62 64 7 + BICOMP + 50 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 52 54 56 58 60 62 64 7 @@ -878,22 +882,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c - BICOMP - 271 + ICCARM + 252 284 - ICCARM - 250 282 + BICOMP + 273 - BICOMP - 52 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 54 56 58 60 62 64 7 + ICCARM + 52 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 54 56 58 60 62 64 7 - ICCARM - 52 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 54 56 58 60 62 64 7 + BICOMP + 52 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 54 56 58 60 62 64 7 @@ -901,22 +905,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c - BICOMP - 107 + ICCARM + 248 285 - ICCARM - 246 283 + BICOMP + 111 - BICOMP - 54 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 56 58 60 62 64 7 + ICCARM + 54 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 56 58 60 62 64 7 - ICCARM - 54 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 56 58 60 62 64 7 + BICOMP + 54 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 56 58 60 62 64 7 @@ -924,22 +928,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c - BICOMP - 270 + ICCARM + 254 287 - ICCARM - 252 285 + BICOMP + 272 - BICOMP - 56 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 58 60 62 64 7 + ICCARM + 56 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 58 60 62 64 7 - ICCARM - 56 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 58 60 62 64 7 + BICOMP + 56 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 58 60 62 64 7 @@ -947,22 +951,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c - BICOMP - 222 + ICCARM + 247 275 - ICCARM - 245 273 + BICOMP + 223 - BICOMP - 58 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 60 62 64 7 + ICCARM + 58 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 60 62 64 7 - ICCARM - 58 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 60 62 64 7 + BICOMP + 58 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 60 62 64 7 @@ -970,22 +974,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c - BICOMP - 268 + ICCARM + 256 106 - ICCARM - 254 115 + BICOMP + 270 - BICOMP - 60 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 62 64 7 + ICCARM + 60 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 62 64 7 - ICCARM - 60 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 62 64 7 + BICOMP + 60 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 62 64 7 @@ -993,22 +997,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c - BICOMP - 104 + ICCARM + 245 108 - ICCARM - 243 116 + BICOMP + 114 - BICOMP - 62 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 64 7 + ICCARM + 62 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 64 7 - ICCARM - 62 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 64 7 + BICOMP + 62 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 64 7 @@ -1016,22 +1020,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c - BICOMP - 108 + ICCARM + 242 115 - ICCARM - 240 117 + BICOMP + 120 - BICOMP - 64 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 7 + ICCARM + 64 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 7 - ICCARM - 64 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 7 + BICOMP + 64 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 7 @@ -1039,22 +1043,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Source\system_stm32f4xx.c - BICOMP - 141 + ICCARM + 244 142 - ICCARM - 242 140 + BICOMP + 143 - BICOMP - 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1062,22 +1066,22 @@ $PROJ_DIR$\..\hooks.c - BICOMP - 185 + ICCARM + 175 169 - ICCARM - 173 167 + BICOMP + 187 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1085,22 +1089,22 @@ $PROJ_DIR$\..\main.c - BICOMP - 186 + ICCARM + 178 168 - ICCARM - 176 166 + BICOMP + 188 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1109,7 +1113,7 @@ AARM - 187 + 189 @@ -1117,22 +1121,45 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\vectors.c - BICOMP - 181 + ICCARM + 210 201 - ICCARM - 208 199 + BICOMP + 183 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 + + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 + + + + + $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.c + ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + 290 289 + + + BICOMP + 288 + + + + + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 + + + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 @@ -1140,22 +1167,22 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c - BICOMP - 190 + ICCARM + 177 184 - ICCARM - 175 182 + BICOMP + 192 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 @@ -1163,45 +1190,22 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.c - BICOMP - 188 + ICCARM + 179 191 - ICCARM - 177 189 + BICOMP + 190 - - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - - - - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c - BICOMP - 263 - - - ICCARM - 257 264 - - - - - BICOMP - 86 88 2 85 260 125 151 121 136 126 152 106 - - - ICCARM - 86 88 2 85 260 125 151 121 136 126 152 106 + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1209,22 +1213,45 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.c - BICOMP - 203 + ICCARM + 211 208 - ICCARM - 209 206 + BICOMP + 205 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 + + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 + + + + + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c + ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + 259 266 + + + BICOMP + 265 + + + + + ICCARM + 88 90 2 87 262 117 153 124 138 128 154 113 + + + BICOMP + 88 90 2 87 262 117 153 124 138 128 154 113 @@ -1232,22 +1259,22 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.c - BICOMP - 178 + ICCARM + 213 195 - ICCARM - 211 193 + BICOMP + 180 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1255,22 +1282,22 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\uart.c - BICOMP - 105 + ICCARM + 257 238 - ICCARM - 255 236 + BICOMP + 107 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 106 1 111 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 8 4 125 117 153 124 138 128 154 113 1 112 136 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1278,22 +1305,22 @@ $PROJ_DIR$\..\..\..\..\Source\assert.c - BICOMP - 132 + ICCARM + 135 133 - ICCARM - 133 131 + BICOMP + 134 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 @@ -1301,22 +1328,22 @@ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c - BICOMP - 266 + ICCARM + 261 267 - ICCARM - 259 265 + BICOMP + 268 - BICOMP - 86 88 2 274 + ICCARM + 88 90 2 283 - ICCARM - 86 88 2 274 + BICOMP + 88 90 2 283 @@ -1324,22 +1351,22 @@ $PROJ_DIR$\..\..\..\..\Source\backdoor.c - BICOMP - 196 + ICCARM + 172 166 - ICCARM - 170 164 + BICOMP + 198 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 @@ -1347,22 +1374,22 @@ $PROJ_DIR$\..\..\..\..\Source\boot.c - BICOMP - 194 + ICCARM + 173 167 - ICCARM - 171 165 + BICOMP + 196 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 @@ -1370,22 +1397,22 @@ $PROJ_DIR$\..\..\..\..\Source\com.c - BICOMP - 180 + ICCARM + 176 170 - ICCARM - 174 168 + BICOMP + 182 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 84 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 86 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 84 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 86 @@ -1393,22 +1420,22 @@ $PROJ_DIR$\..\..\..\..\Source\cop.c - BICOMP - 197 + ICCARM + 174 193 - ICCARM - 172 191 + BICOMP + 199 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 @@ -1416,22 +1443,22 @@ $PROJ_DIR$\..\..\..\..\Source\file.c - BICOMP - 198 + ICCARM + 171 194 - ICCARM - 169 192 + BICOMP + 200 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 70 125 151 121 136 126 152 106 130 114 207 205 204 179 183 201 200 202 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 119 117 153 124 138 128 154 113 132 70 209 207 206 181 185 203 202 204 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 70 125 151 121 136 126 152 106 130 114 207 205 204 179 183 201 200 202 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 119 117 153 124 138 128 154 113 132 70 209 207 206 181 185 203 202 204 @@ -1439,22 +1466,22 @@ $PROJ_DIR$\..\..\..\..\Source\xcp.c - BICOMP - 184 + ICCARM + 212 197 - ICCARM - 210 195 + BICOMP + 186 - BICOMP - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + ICCARM + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 - ICCARM - 94 82 90 286 101 74 98 79 76 81 92 100 86 88 2 96 103 + BICOMP + 96 84 92 67 103 76 100 80 78 83 94 102 88 90 2 98 105 @@ -1463,17 +1490,17 @@ ILINK - 256 + 258 OBJCOPY - 109 + 110 ILINK - 221 131 164 165 168 191 182 187 264 192 189 167 166 135 261 206 143 145 149 146 138 139 142 153 144 154 155 156 157 158 159 160 147 148 272 277 113 279 281 282 283 285 273 115 116 117 140 193 236 265 199 195 219 251 253 244 + 230 133 166 167 289 170 193 184 189 266 194 191 169 168 137 263 208 145 147 151 148 140 141 144 155 146 156 157 158 159 160 161 162 149 150 274 278 118 280 282 284 285 287 275 106 108 115 142 195 238 267 201 197 221 253 255 246 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.ewp b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.ewp index ac861f8b..1834a24f 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.ewp +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.ewp @@ -2079,6 +2079,12 @@ $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\vectors.c + + $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.c + + + $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\can.h + $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/main.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/main.c index 2cc8341b..3a7977a9 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/main.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/main.c @@ -79,6 +79,8 @@ static void Init(void) #elif (BOOT_FILE_SYS_ENABLE > 0) GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; +#elif (BOOT_COM_CAN_ENABLE > 0) + GPIO_InitTypeDef GPIO_InitStructure; #endif /* disable all interrupts to prevent possible jump back to the user program */ @@ -134,6 +136,24 @@ static void Init(void) /* enable UART */ USART_Cmd(USART6, ENABLE); #endif +#if (BOOT_COM_CAN_ENABLE > 0) + /* enable clocks for CAN2 transmitter and receiver pins */ + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); + /* select alternate function for the CAN2 pins */ + GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_CAN2); + GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_CAN2); + /* configure CAN2 RX and TX pins */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_Init(GPIOB, &GPIO_InitStructure); + /* enable CAN clock. Note that CAN2 shares reception filters with CAN1 so for CAN2 + * the CAN1 peripheral also needs to be enabled. + */ + RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2 | RCC_APB1Periph_CAN1, ENABLE); +#endif } /*** end of Init ***/ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/bin/demoprog_olimex_stm32e407.out b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/bin/demoprog_olimex_stm32e407.out index 81800f58..7d7b57ea 100644 Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/bin/demoprog_olimex_stm32e407.out and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/bin/demoprog_olimex_stm32e407.out differ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/boot.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/boot.c index 5a3dc210..a375d3c9 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/boot.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/boot.c @@ -182,4 +182,184 @@ static unsigned char UartReceiveByte(unsigned char *data) #endif /* BOOT_COM_UART_ENABLE > 0 */ +#if (BOOT_COM_CAN_ENABLE > 0) +/**************************************************************************************** +* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E +****************************************************************************************/ + +/**************************************************************************************** +* Type definitions +****************************************************************************************/ +/** \brief Structure type for grouping CAN bus timing related information. */ +typedef struct t_can_bus_timing +{ + unsigned char tseg1; /**< CAN time segment 1 */ + unsigned char tseg2; /**< CAN time segment 2 */ +} tCanBusTiming; + + +/**************************************************************************************** +* Local constant declarations +****************************************************************************************/ +/** \brief CAN bittiming table for dynamically calculating the bittiming settings. + * \details According to the CAN protocol 1 bit-time can be made up of between 8..25 + * time quanta (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC + * always being 1. The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * + * 100%. This array contains possible and valid time quanta configurations with + * a sample point between 68..78%. + */ +static const tCanBusTiming canTiming[] = +{ /* TQ | TSEG1 | TSEG2 | SP */ + /* ------------------------- */ + { 5, 2 }, /* 8 | 5 | 2 | 75% */ + { 6, 2 }, /* 9 | 6 | 2 | 78% */ + { 6, 3 }, /* 10 | 6 | 3 | 70% */ + { 7, 3 }, /* 11 | 7 | 3 | 73% */ + { 8, 3 }, /* 12 | 8 | 3 | 75% */ + { 9, 3 }, /* 13 | 9 | 3 | 77% */ + { 9, 4 }, /* 14 | 9 | 4 | 71% */ + { 10, 4 }, /* 15 | 10 | 4 | 73% */ + { 11, 4 }, /* 16 | 11 | 4 | 75% */ + { 12, 4 }, /* 17 | 12 | 4 | 76% */ + { 12, 5 }, /* 18 | 12 | 5 | 72% */ + { 13, 5 }, /* 19 | 13 | 5 | 74% */ + { 14, 5 }, /* 20 | 14 | 5 | 75% */ + { 15, 5 }, /* 21 | 15 | 5 | 76% */ + { 15, 6 }, /* 22 | 15 | 6 | 73% */ + { 16, 6 }, /* 23 | 16 | 6 | 74% */ + { 16, 7 }, /* 24 | 16 | 7 | 71% */ + { 16, 8 } /* 25 | 16 | 8 | 68% */ +}; + + +/************************************************************************************//** +** \brief Search algorithm to match the desired baudrate to a possible bus +** timing configuration. +** \param baud The desired baudrate in kbps. Valid values are 10..1000. +** \param prescaler Pointer to where the value for the prescaler will be stored. +** \param tseg1 Pointer to where the value for TSEG2 will be stored. +** \param tseg2 Pointer to where the value for TSEG2 will be stored. +** \return 1 if the CAN bustiming register values were found, 0 otherwise. +** +****************************************************************************************/ +static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, + unsigned char *tseg1, unsigned char *tseg2) +{ + unsigned char cnt; + + /* loop through all possible time quanta configurations to find a match */ + for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) + { + if (((BOOT_CPU_SYSTEM_SPEED_KHZ/4) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) + { + /* compute the prescaler that goes with this TQ configuration */ + *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/4)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); + + /* make sure the prescaler is valid */ + if ( (*prescaler > 0) && (*prescaler <= 1024) ) + { + /* store the bustiming configuration */ + *tseg1 = canTiming[cnt].tseg1; + *tseg2 = canTiming[cnt].tseg2; + /* found a good bus timing configuration */ + return 1; + } + } + } + /* could not find a good bus timing configuration */ + return 0; +} /*** end of CanGetSpeedConfig ***/ + + +/************************************************************************************//** +** \brief Initializes the CAN communication interface. +** \return none. +** +****************************************************************************************/ +void BootComInit(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + CAN_InitTypeDef CAN_InitStructure; + CAN_FilterInitTypeDef CAN_FilterInitStructure; + unsigned short prescaler; + unsigned char tseg1, tseg2; + + /* enable clocks for CAN2 transmitter and receiver pins */ + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); + /* select alternate function for the CAN2 pins */ + GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_CAN2); + GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_CAN2); + /* configure CAN2 RX and TX pins */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_Init(GPIOB, &GPIO_InitStructure); + /* enable CAN clock. Note that CAN2 shares reception filters with CAN1 so for CAN2 + * the CAN1 peripheral also needs to be enabled. + */ + RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2 | RCC_APB1Periph_CAN1, ENABLE); + /* CAN register init */ + CAN_DeInit(CAN2); + CAN_StructInit(&CAN_InitStructure); + /* obtain the bittiming configuration for this baudrate */ + CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); + /* CAN controller init */ + CAN_InitStructure.CAN_TTCM = DISABLE; + CAN_InitStructure.CAN_ABOM = DISABLE; + CAN_InitStructure.CAN_AWUM = DISABLE; + CAN_InitStructure.CAN_NART = DISABLE; + CAN_InitStructure.CAN_RFLM = DISABLE; + CAN_InitStructure.CAN_TXFP = DISABLE; + CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; + /* CAN Baudrate init */ + CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; + CAN_InitStructure.CAN_BS1 = tseg1 - 1; + CAN_InitStructure.CAN_BS2 = tseg2 - 1; + CAN_InitStructure.CAN_Prescaler = prescaler; + CAN_Init(CAN2, &CAN_InitStructure); + /* CAN filter init - receive all messages */ + CAN_FilterInitStructure.CAN_FilterNumber = 14; + CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; + CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; + CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; + CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; + CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; + CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; + CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; + CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; + CAN_FilterInit(&CAN_FilterInitStructure); +} /*** end of BootComInit ***/ + + +/************************************************************************************//** +** \brief Receives the CONNECT request from the host, which indicates that the +** bootloader should be activated and, if so, activates it. +** \return none. +** +****************************************************************************************/ +void BootComCheckActivationRequest(void) +{ + CanRxMsg RxMessage; + + /* check if a new message was received */ + if (CAN_MessagePending(CAN2, CAN_FIFO0) > 0) + { + /* receive the message */ + CAN_Receive(CAN2, CAN_FIFO0, &RxMessage); + if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID) + { + /* check if this was an XCP CONNECT command */ + if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00)) + { + /* connection request received so start the bootloader */ + BootActivate(); + } + } + } +} /*** end of BootComCheckActivationRequest ***/ +#endif /* BOOT_COM_CAN_ENABLE > 0 */ + + /*********************************** end of boot.c *************************************/ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/settings/stm32f407.wsdt b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/settings/stm32f407.wsdt index 3b0ed735..c524e4e1 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/settings/stm32f407.wsdt +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/settings/stm32f407.wsdt @@ -12,12 +12,12 @@ - 181272727 + 305272727 20139537293 - + TabID-29163-19963 @@ -29,20 +29,20 @@ - 0TabID-19063-20767BuildBuild0 + 0TabID-19063-20767BuildBuild0 - TextEditor$WS_DIR$\..\main.c000003626272627TextEditor$WS_DIR$\..\led.c0000030225922591TextEditor$WS_DIR$\..\boot.c0000027721472140100000010000001 + TextEditor$WS_DIR$\..\main.c00000452856285600100000010000001 - iaridepm.enu1-2-2617255-2-2135163104328198056198609752126-2-21611296-2-212981631003091198056104328198056 + iaridepm.enu1-2-2765379-2-2200200104167198413198438760913-2-21981922-2-219242001002083198413104167198413 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/stm32f407.dep b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/stm32f407.dep index d1b6c1ce..58f00aae 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/stm32f407.dep +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/stm32f407.dep @@ -83,31 +83,16 @@ $PROJ_DIR$\..\timer.c $PROJ_DIR$\..\timer.h $PROJ_DIR$\..\vectors.c - $PROJ_DIR$\..\obj\stm32f4xx_rtc.pbi - $PROJ_DIR$\..\obj\stm32f4xx_usart.pbi - $TOOLKIT_DIR$\inc\c\DLib_Threads.h - $PROJ_DIR$\..\obj\stm32f4xx_rng.pbi - $PROJ_DIR$\..\obj\stm32f4xx_dbgmcu.pbi - $PROJ_DIR$\..\obj\stm32f4xx_tim.pbi - $PROJ_DIR$\..\obj\stm32f4xx_wwdg.pbi - $TOOLKIT_DIR$\inc\c\cmsis_iar.h - $PROJ_DIR$\..\obj\stm32f4xx_spi.pbi - $PROJ_DIR$\..\obj\stm32f4xx_i2c.o - $PROJ_DIR$\..\obj\stm32f4xx_syscfg.o - $PROJ_DIR$\..\obj\stm32f4xx_cryp_des.pbi - $PROJ_DIR$\..\obj\stm32f4xx_cryp.pbi - $PROJ_DIR$\..\obj\stm32f4xx_sdio.pbi - $PROJ_DIR$\..\obj\stm32f4xx_rng.o $PROJ_DIR$\..\obj\stm32f4xx_iwdg.o $PROJ_DIR$\..\obj\stm32f4xx_rcc.o $PROJ_DIR$\..\obj\stm32f4xx_flash.pbi - $PROJ_DIR$\..\obj\vectors.pbi - $PROJ_DIR$\..\obj\main.pbi - $PROJ_DIR$\..\obj\cstart.o $PROJ_DIR$\..\obj\timer.o - $PROJ_DIR$\..\obj\boot.pbi $PROJ_DIR$\..\obj\vectors.o + $PROJ_DIR$\..\obj\boot.pbi + $PROJ_DIR$\..\obj\cstart.o $PROJ_DIR$\..\obj\vectors.lst + $PROJ_DIR$\..\obj\main.pbi + $PROJ_DIR$\..\obj\vectors.pbi $PROJ_DIR$\..\obj\timer.lst $PROJ_DIR$\..\obj\stm32f4xx_hash_md5.lst $PROJ_DIR$\..\obj\stm32f4xx_gpio.pbi @@ -158,6 +143,21 @@ $PROJ_DIR$\..\obj\main.o $PROJ_DIR$\..\obj\boot.lst $PROJ_DIR$\..\obj\main.lst + $PROJ_DIR$\..\obj\stm32f4xx_rtc.pbi + $PROJ_DIR$\..\obj\stm32f4xx_usart.pbi + $TOOLKIT_DIR$\inc\c\DLib_Threads.h + $PROJ_DIR$\..\obj\stm32f4xx_tim.pbi + $PROJ_DIR$\..\obj\stm32f4xx_dbgmcu.pbi + $PROJ_DIR$\..\obj\stm32f4xx_i2c.o + $TOOLKIT_DIR$\inc\c\cmsis_iar.h + $PROJ_DIR$\..\obj\stm32f4xx_rng.pbi + $PROJ_DIR$\..\obj\stm32f4xx_spi.pbi + $PROJ_DIR$\..\obj\stm32f4xx_wwdg.pbi + $PROJ_DIR$\..\obj\stm32f4xx_syscfg.o + $PROJ_DIR$\..\obj\stm32f4xx_cryp_des.pbi + $PROJ_DIR$\..\obj\stm32f4xx_cryp.pbi + $PROJ_DIR$\..\obj\stm32f4xx_sdio.pbi + $PROJ_DIR$\..\obj\stm32f4xx_rng.o $PROJ_DIR$\..\obj\timer.pbi $PROJ_DIR$\..\obj\stm32f4xx_dac.lst $PROJ_DIR$\..\obj\stm32f4xx_hash.lst @@ -180,7 +180,6 @@ $TOOLKIT_DIR$\lib\m7M_tl.a $PROJ_DIR$\..\obj\stm32f4xx_tim.lst $PROJ_DIR$\..\obj\stm32f407.pbd - $PROJ_DIR$\..\..\Boot\config.h $PROJ_DIR$\..\obj\led.lst $PROJ_DIR$\..\obj\irq.lst $PROJ_DIR$\..\obj\demoprog_olimex_stm32e407.map @@ -224,22 +223,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\misc.c - BICOMP - 194 + ICCARM + 96 198 - ICCARM - 111 199 + BICOMP + 193 - BICOMP - 5 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 + ICCARM + 5 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 - ICCARM - 5 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 + BICOMP + 5 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 @@ -247,22 +246,18 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c - BICOMP - 197 + ICCARM + 101 109 - ICCARM - 116 124 + BICOMP + 196 - - BICOMP - 8 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 8 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + 8 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -270,18 +265,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c - BICOMP - 210 + ICCARM + 93 111 - ICCARM - 108 126 + BICOMP + 209 ICCARM - 10 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + 10 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + BICOMP + 10 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -289,22 +288,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c - BICOMP - 211 + ICCARM + 104 115 - ICCARM - 119 130 + BICOMP + 210 - BICOMP - 13 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 13 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 13 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 13 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -312,22 +311,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c - BICOMP - 89 + ICCARM + 99 112 - ICCARM - 114 127 + BICOMP + 149 - BICOMP - 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 15 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 15 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -335,22 +334,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c - BICOMP - 139 + ICCARM + 92 186 - ICCARM - 107 187 + BICOMP + 124 - BICOMP - 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 15 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 15 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -358,22 +357,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c - BICOMP - 88 + ICCARM + 94 187 - ICCARM - 109 188 + BICOMP + 148 - BICOMP - 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 15 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 15 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -381,22 +380,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c - BICOMP - 205 + ICCARM + 100 189 - ICCARM - 115 190 + BICOMP + 204 - BICOMP - 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 15 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 15 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -404,22 +403,160 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c - BICOMP - 195 + ICCARM + 153 119 - ICCARM - 153 134 + BICOMP + 194 - BICOMP - 20 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 20 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + BICOMP + 20 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c + ICCARM - 20 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + 103 110 + + + BICOMP + 141 + + + + + ICCARM + 22 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + BICOMP + 22 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c + + + ICCARM + 105 120 + + + BICOMP + 116 + + + + + ICCARM + 24 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + BICOMP + 24 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c + + + ICCARM + 156 121 + + + BICOMP + 131 + + + + + ICCARM + 26 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + BICOMP + 26 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c + + + ICCARM + 102 122 + + + BICOMP + 190 + + + + + ICCARM + 28 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + BICOMP + 28 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c + + + ICCARM + 106 123 + + + BICOMP + 79 + + + + + ICCARM + 30 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + BICOMP + 30 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c + + + ICCARM + 107 128 + + + BICOMP + 199 + + + + + ICCARM + 32 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + BICOMP + 32 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -428,168 +565,30 @@ ILINK - 179 177 + 178 176 - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c - - - BICOMP - 81 - - - ICCARM - 118 125 - - - - - BICOMP - 22 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - ICCARM - 22 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c - - - BICOMP - 131 - - - ICCARM - 120 135 - - - - - BICOMP - 24 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - ICCARM - 24 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c - - - BICOMP - 146 - - - ICCARM - 156 136 - - - - - BICOMP - 26 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - ICCARM - 26 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c - - - BICOMP - 191 - - - ICCARM - 117 137 - - - - - BICOMP - 28 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - ICCARM - 28 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c - - - BICOMP - 94 - - - ICCARM - 121 138 - - - - - BICOMP - 30 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - ICCARM - 30 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c - - - BICOMP - 200 - - - ICCARM - 122 143 - - - - - BICOMP - 32 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - ICCARM - 32 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c - BICOMP - 104 + ICCARM + 108 129 - ICCARM - 123 144 + BICOMP + 89 - BICOMP - 34 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 34 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 34 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 40 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 34 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -597,22 +596,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c - BICOMP - 105 + ICCARM + 154 130 - ICCARM - 154 145 + BICOMP + 90 - BICOMP - 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 36 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 36 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -620,22 +619,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c - BICOMP - 106 + ICCARM + 88 113 - ICCARM - 103 128 + BICOMP + 91 - BICOMP - 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 36 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 36 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -643,22 +642,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c - BICOMP - 113 + ICCARM + 155 114 - ICCARM - 155 129 + BICOMP + 98 - BICOMP - 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 36 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 36 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -666,22 +665,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c - BICOMP - 147 + ICCARM + 159 142 - ICCARM - 159 86 + BICOMP + 132 - BICOMP - 40 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 40 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 40 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 40 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 42 44 46 48 50 52 54 56 58 60 62 5 @@ -689,22 +688,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c - BICOMP - 206 + ICCARM + 157 77 - ICCARM - 157 92 + BICOMP + 205 - BICOMP - 42 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 42 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 42 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 42 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 44 46 48 50 52 54 56 58 60 62 5 @@ -712,22 +711,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c - BICOMP - 142 + ICCARM + 166 125 - ICCARM - 166 140 + BICOMP + 127 - BICOMP - 44 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 46 48 50 52 54 56 58 60 62 5 + ICCARM + 44 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 46 48 50 52 54 56 58 60 62 5 - ICCARM - 44 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 46 48 50 52 54 56 58 60 62 5 + BICOMP + 44 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 46 48 50 52 54 56 58 60 62 5 @@ -735,22 +734,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c - BICOMP - 141 + ICCARM + 167 78 - ICCARM - 167 93 + BICOMP + 126 - BICOMP - 46 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 48 50 52 54 56 58 60 62 5 + ICCARM + 46 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 48 50 52 54 56 58 60 62 5 - ICCARM - 46 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 48 50 52 54 56 58 60 62 5 + BICOMP + 46 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 48 50 52 54 56 58 60 62 5 @@ -758,22 +757,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c - BICOMP - 80 + ICCARM + 165 151 - ICCARM - 165 91 + BICOMP + 144 - BICOMP - 48 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 50 52 54 56 58 60 62 5 + ICCARM + 48 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 50 52 54 56 58 60 62 5 - ICCARM - 48 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 50 52 54 56 58 60 62 5 + BICOMP + 48 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 50 52 54 56 58 60 62 5 @@ -781,22 +780,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c - BICOMP - 77 + ICCARM + 168 200 - ICCARM - 168 201 + BICOMP + 137 - BICOMP - 50 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 52 54 56 58 60 62 5 + ICCARM + 50 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 52 54 56 58 60 62 5 - ICCARM - 50 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 52 54 56 58 60 62 5 + BICOMP + 50 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 52 54 56 58 60 62 5 @@ -804,22 +803,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c - BICOMP - 90 + ICCARM + 164 206 - ICCARM - 164 207 + BICOMP + 150 - BICOMP - 52 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 54 56 58 60 62 5 + ICCARM + 52 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 54 56 58 60 62 5 - ICCARM - 52 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 54 56 58 60 62 5 + BICOMP + 52 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 54 56 58 60 62 5 @@ -827,22 +826,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c - BICOMP - 85 + ICCARM + 170 201 - ICCARM - 170 202 + BICOMP + 145 - BICOMP - 54 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 56 58 60 62 5 + ICCARM + 54 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 56 58 60 62 5 - ICCARM - 54 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 56 58 60 62 5 + BICOMP + 54 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 56 58 60 62 5 @@ -850,22 +849,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c - BICOMP - 112 + ICCARM + 163 147 - ICCARM - 163 87 + BICOMP + 97 - BICOMP - 56 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 58 60 62 5 + ICCARM + 56 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 58 60 62 5 - ICCARM - 56 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 58 60 62 5 + BICOMP + 56 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 58 60 62 5 @@ -873,22 +872,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c - BICOMP - 82 + ICCARM + 172 203 - ICCARM - 172 204 + BICOMP + 140 - BICOMP - 58 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 60 62 5 + ICCARM + 58 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 60 62 5 - ICCARM - 58 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 60 62 5 + BICOMP + 58 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 60 62 5 @@ -896,22 +895,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c - BICOMP - 78 + ICCARM + 161 202 - ICCARM - 161 203 + BICOMP + 138 - BICOMP - 60 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 62 5 + ICCARM + 60 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 62 5 - ICCARM - 60 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 62 5 + BICOMP + 60 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 62 5 @@ -919,22 +918,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c - BICOMP - 83 + ICCARM + 158 195 - ICCARM - 158 196 + BICOMP + 146 - BICOMP - 62 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 5 + ICCARM + 62 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 5 - ICCARM - 62 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 5 + BICOMP + 62 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 5 @@ -942,22 +941,22 @@ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Source\system_stm32f4xx.c - BICOMP - 185 + ICCARM + 160 188 - ICCARM - 160 189 + BICOMP + 184 - BICOMP - 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + ICCARM + 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - ICCARM - 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + BICOMP + 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -965,22 +964,22 @@ $PROJ_DIR$\..\boot.c - BICOMP - 99 + ICCARM + 135 133 - ICCARM - 150 148 + BICOMP + 82 - BICOMP - 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + ICCARM + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 - ICCARM - 68 212 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + BICOMP + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 @@ -989,7 +988,7 @@ AARM - 97 + 83 @@ -997,22 +996,22 @@ $PROJ_DIR$\..\irq.c - BICOMP - 184 + ICCARM + 175 180 - ICCARM - 176 181 + BICOMP + 183 - BICOMP - 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + ICCARM + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 - ICCARM - 68 212 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + BICOMP + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 @@ -1020,18 +1019,22 @@ $PROJ_DIR$\..\led.c - BICOMP - 183 + ICCARM + 174 181 - ICCARM - 175 182 + BICOMP + 182 ICCARM - 68 212 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + BICOMP + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 @@ -1039,22 +1042,22 @@ $PROJ_DIR$\..\main.c - BICOMP - 96 + ICCARM + 136 134 - ICCARM - 151 149 + BICOMP + 85 - BICOMP - 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + ICCARM + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 - ICCARM - 68 212 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + BICOMP + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 @@ -1062,22 +1065,22 @@ $PROJ_DIR$\..\timer.c - BICOMP - 152 + ICCARM + 87 80 - ICCARM - 102 98 + BICOMP + 152 - BICOMP - 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + ICCARM + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 - ICCARM - 68 212 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + BICOMP + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 @@ -1085,22 +1088,22 @@ $PROJ_DIR$\..\vectors.c - BICOMP - 95 + ICCARM + 84 81 - ICCARM - 101 100 + BICOMP + 86 - BICOMP - 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + ICCARM + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 - ICCARM - 68 212 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + BICOMP + 68 211 6 0 208 192 117 197 185 191 118 139 3 143 207 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 @@ -1109,17 +1112,17 @@ ILINK - 177 + 176 OBJCOPY - 180 + 179 ILINK - 178 148 97 181 182 149 199 124 126 130 127 187 188 190 134 125 135 136 137 138 143 144 145 128 129 86 92 140 93 91 201 207 202 87 204 203 196 189 98 100 110 169 171 162 + 177 133 83 180 181 134 198 109 111 115 112 186 187 189 119 110 120 121 122 123 128 129 130 113 114 142 77 125 78 151 200 206 201 147 203 202 195 188 80 81 95 169 171 162 diff --git a/Target/Source/ARMCM3_STM32/can.c b/Target/Source/ARMCM3_STM32/can.c index 1bdd697f..0a5fd4d7 100644 --- a/Target/Source/ARMCM3_STM32/can.c +++ b/Target/Source/ARMCM3_STM32/can.c @@ -289,9 +289,6 @@ void CanInit(void) ****************************************************************************************/ void CanTransmitPacket(blt_int8u *data, blt_int8u len) { - blt_int8u byte_count; - blt_int8u mailbox; - /* make sure that transmit mailbox 0 is available */ ASSERT_RT((CANx->TSR&CAN_BIT_TME0) == CAN_BIT_TME0); /* store the 11-bit message identifier */ @@ -327,7 +324,6 @@ void CanTransmitPacket(blt_int8u *data, blt_int8u len) ****************************************************************************************/ blt_bool CanReceivePacket(blt_int8u *data) { - blt_int8u byte_count; blt_int32u rxMsgId; blt_bool result = BLT_FALSE; diff --git a/Target/Source/ARMCM4_STM32/can.c b/Target/Source/ARMCM4_STM32/can.c new file mode 100644 index 00000000..42eeb995 --- /dev/null +++ b/Target/Source/ARMCM4_STM32/can.c @@ -0,0 +1,388 @@ +/************************************************************************************//** +* \file Source\ARMCM4_STM32\can.c +* \brief Bootloader CAN communication interface source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT without being obliged to provide the source code for any +* proprietary components. The exception text is included at the bottom of the license +* file . +* +* \endinternal +****************************************************************************************/ + + +/**************************************************************************************** +* Include files +****************************************************************************************/ +#include "boot.h" /* bootloader generic header */ + + +#if (BOOT_COM_CAN_ENABLE > 0) +/**************************************************************************************** +* Type definitions +****************************************************************************************/ +/** \brief CAN transmission mailbox layout. */ +typedef struct +{ + volatile blt_int32u TIR; + volatile blt_int32u TDTR; + volatile blt_int32u TDLR; + volatile blt_int32u TDHR; +} tCanTxMailBox; + +/** \brief CAN reception FIFO mailbox layout. */ +typedef struct +{ + volatile blt_int32u RIR; + volatile blt_int32u RDTR; + volatile blt_int32u RDLR; + volatile blt_int32u RDHR; +} tCanRxFIFOMailBox; + +/** \brief CAN filter register layout. */ +typedef struct +{ + volatile blt_int32u FR1; + volatile blt_int32u FR2; +} tCanFilter; + +/** \brief CAN controller register layout. */ +typedef struct +{ + volatile blt_int32u MCR; + volatile blt_int32u MSR; + volatile blt_int32u TSR; + volatile blt_int32u RF0R; + volatile blt_int32u RF1R; + volatile blt_int32u IER; + volatile blt_int32u ESR; + volatile blt_int32u BTR; + blt_int32u RESERVED0[88]; + tCanTxMailBox sTxMailBox[3]; + tCanRxFIFOMailBox sFIFOMailBox[2]; + blt_int32u RESERVED1[12]; + volatile blt_int32u FMR; + volatile blt_int32u FM1R; + blt_int32u RESERVED2; + volatile blt_int32u FS1R; + blt_int32u RESERVED3; + volatile blt_int32u FFA1R; + blt_int32u RESERVED4; + volatile blt_int32u FA1R; + blt_int32u RESERVED5[8]; + tCanFilter sFilterRegister[28]; +} tCanRegs; + + +/**************************************************************************************** +* Macro definitions +****************************************************************************************/ +/** \brief Reset request bit. */ +#define CAN_BIT_RESET ((blt_int32u)0x00008000) +/** \brief Initialization request bit. */ +#define CAN_BIT_INRQ ((blt_int32u)0x00000001) +/** \brief Initialization acknowledge bit. */ +#define CAN_BIT_INAK ((blt_int32u)0x00000001) +/** \brief Sleep mode request bit. */ +#define CAN_BIT_SLEEP ((blt_int32u)0x00000002) +/** \brief Filter 0 selection bit. */ +#define CAN_BIT_FILTER0 ((blt_int32u)0x00000001) +/** \brief Filter 14 selection bit. */ +#define CAN_BIT_FILTER14 ((blt_int32u)0x00004000) +/** \brief Filter init mode bit. */ +#define CAN_BIT_FINIT ((blt_int32u)0x00000001) +/** \brief Transmit mailbox 0 empty bit. */ +#define CAN_BIT_TME0 ((blt_int32u)0x04000000) +/** \brief Transmit mailbox request bit. */ +#define CAN_BIT_TXRQ ((blt_int32u)0x00000001) +/** \brief Release FIFO 0 mailbox bit. */ +#define CAN_BIT_RFOM0 ((blt_int32u)0x00000020) + + +/**************************************************************************************** +* Register definitions +****************************************************************************************/ +#if (BOOT_COM_CAN_CHANNEL_INDEX == 0) +/** \brief Macro for accessing CAN1 controller registers. */ +#define CANx ((tCanRegs *) (blt_int32u)0x40006400) +#else +/** \brief Macro for accessing CAN2 controller registers. */ +#define CANx ((tCanRegs *) (blt_int32u)0x40006800) +#endif +/** \brief Macro for accessing CAN1 controller registers. */ +#define CAN1 ((tCanRegs *) (blt_int32u)0x40006400) + + +/**************************************************************************************** +* Type definitions +****************************************************************************************/ +/** \brief Structure type for grouping CAN bus timing related information. */ +typedef struct t_can_bus_timing +{ + blt_int8u tseg1; /**< CAN time segment 1 */ + blt_int8u tseg2; /**< CAN time segment 2 */ +} tCanBusTiming; + + +/**************************************************************************************** +* Local constant declarations +****************************************************************************************/ +/** \brief CAN bittiming table for dynamically calculating the bittiming settings. + * \details According to the CAN protocol 1 bit-time can be made up of between 8..25 + * time quanta (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC + * always being 1. The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * + * 100%. This array contains possible and valid time quanta configurations with + * a sample point between 68..78%. + */ +static const tCanBusTiming canTiming[] = +{ /* TQ | TSEG1 | TSEG2 | SP */ + /* ------------------------- */ + { 5, 2 }, /* 8 | 5 | 2 | 75% */ + { 6, 2 }, /* 9 | 6 | 2 | 78% */ + { 6, 3 }, /* 10 | 6 | 3 | 70% */ + { 7, 3 }, /* 11 | 7 | 3 | 73% */ + { 8, 3 }, /* 12 | 8 | 3 | 75% */ + { 9, 3 }, /* 13 | 9 | 3 | 77% */ + { 9, 4 }, /* 14 | 9 | 4 | 71% */ + { 10, 4 }, /* 15 | 10 | 4 | 73% */ + { 11, 4 }, /* 16 | 11 | 4 | 75% */ + { 12, 4 }, /* 17 | 12 | 4 | 76% */ + { 12, 5 }, /* 18 | 12 | 5 | 72% */ + { 13, 5 }, /* 19 | 13 | 5 | 74% */ + { 14, 5 }, /* 20 | 14 | 5 | 75% */ + { 15, 5 }, /* 21 | 15 | 5 | 76% */ + { 15, 6 }, /* 22 | 15 | 6 | 73% */ + { 16, 6 }, /* 23 | 16 | 6 | 74% */ + { 16, 7 }, /* 24 | 16 | 7 | 71% */ + { 16, 8 } /* 25 | 16 | 8 | 68% */ +}; + + +/************************************************************************************//** +** \brief Search algorithm to match the desired baudrate to a possible bus +** timing configuration. +** \param baud The desired baudrate in kbps. Valid values are 10..1000. +** \param prescaler Pointer to where the value for the prescaler will be stored. +** \param tseg1 Pointer to where the value for TSEG2 will be stored. +** \param tseg2 Pointer to where the value for TSEG2 will be stored. +** \return BLT_TRUE if the CAN bustiming register values were found, BLT_FALSE +** otherwise. +** +****************************************************************************************/ +static blt_bool CanGetSpeedConfig(blt_int16u baud, blt_int16u *prescaler, + blt_int8u *tseg1, blt_int8u *tseg2) +{ + blt_int8u cnt; + + /* loop through all possible time quanta configurations to find a match */ + for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++) + { + if (((BOOT_CPU_SYSTEM_SPEED_KHZ/4) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0) + { + /* compute the prescaler that goes with this TQ configuration */ + *prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/4)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1)); + + /* make sure the prescaler is valid */ + if ( (*prescaler > 0) && (*prescaler <= 1024) ) + { + /* store the bustiming configuration */ + *tseg1 = canTiming[cnt].tseg1; + *tseg2 = canTiming[cnt].tseg2; + /* found a good bus timing configuration */ + return BLT_TRUE; + } + } + } + /* could not find a good bus timing configuration */ + return BLT_FALSE; +} /*** end of CanGetSpeedConfig ***/ + + +/************************************************************************************//** +** \brief Initializes the CAN controller and synchronizes it to the CAN bus. +** \return none. +** +****************************************************************************************/ +void CanInit(void) +{ + blt_int16u prescaler; + blt_int8u tseg1, tseg2; + blt_bool result; + + /* the current implementation supports CAN1 and 2. throw an assertion error in case a + * different CAN channel is configured. + */ + ASSERT_CT((BOOT_COM_CAN_CHANNEL_INDEX == 0 || BOOT_COM_CAN_CHANNEL_INDEX == 1)); + + /* obtain bittiming configuration information */ + result = CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2); + ASSERT_RT(result == BLT_TRUE); + /* disable all can interrupt. this driver works in polling mode */ + CANx->IER = (blt_int32u)0; + /* set request to reset the can controller */ + CANx->MCR |= CAN_BIT_RESET ; + /* wait for acknowledge that the can controller was reset */ + while ((CANx->MCR & CAN_BIT_RESET) != 0) + { + /* keep the watchdog happy */ + CopService(); + } + /* exit from sleep mode, which is the default mode after reset */ + CANx->MCR &= ~CAN_BIT_SLEEP; + /* set request to enter initialisation mode */ + CANx->MCR |= CAN_BIT_INRQ ; + /* wait for acknowledge that initialization mode was entered */ + while ((CANx->MSR & CAN_BIT_INAK) == 0) + { + /* keep the watchdog happy */ + CopService(); + } + /* configure the bittming */ + CANx->BTR = (blt_int32u)((blt_int32u)(tseg1 - 1) << 16) | \ + (blt_int32u)((blt_int32u)(tseg2 - 1) << 20) | \ + (blt_int32u)(prescaler - 1); + /* set request to leave initialisation mode */ + CANx->MCR &= ~CAN_BIT_INRQ; + /* wait for acknowledge that initialization mode was exited */ + while ((CANx->MSR & CAN_BIT_INAK) != 0) + { + /* keep the watchdog happy */ + CopService(); + } + +#if (BOOT_COM_CAN_CHANNEL_INDEX == 0) + /* enter initialisation mode for the acceptance filter */ + CAN1->FMR |= CAN_BIT_FINIT; + /* deactivate filter 0 */ + CAN1->FA1R &= ~CAN_BIT_FILTER0; + /* 32-bit scale for the filter */ + CAN1->FS1R |= CAN_BIT_FILTER0; + /* open up the acceptance filter to receive all messages */ + CAN1->sFilterRegister[0].FR1 = 0; + CAN1->sFilterRegister[0].FR2 = 0; + /* select id/mask mode for the filter */ + CAN1->FM1R &= ~CAN_BIT_FILTER0; + /* FIFO 0 assignation for the filter */ + CAN1->FFA1R &= ~CAN_BIT_FILTER0; + /* filter activation */ + CAN1->FA1R |= CAN_BIT_FILTER0; + /* leave initialisation mode for the acceptance filter */ + CAN1->FMR &= ~CAN_BIT_FINIT; +#else + /* enter initialisation mode for the acceptance filter */ + CAN1->FMR |= CAN_BIT_FINIT; + /* deactivate filter 14 */ + CAN1->FA1R &= ~CAN_BIT_FILTER14; + /* 32-bit scale for the filter */ + CAN1->FS1R |= CAN_BIT_FILTER14; + /* open up the acceptance filter to receive all messages */ + CAN1->sFilterRegister[14].FR1 = 0; + CAN1->sFilterRegister[14].FR2 = 0; + /* select id/mask mode for the filter */ + CAN1->FM1R &= ~CAN_BIT_FILTER14; + /* FIFO 0 assignation for the filter */ + CAN1->FFA1R &= ~CAN_BIT_FILTER14; + /* filter activation */ + CAN1->FA1R |= CAN_BIT_FILTER14; + /* leave initialisation mode for the acceptance filter */ + CAN1->FMR &= ~CAN_BIT_FINIT; +#endif +} /*** end of CanInit ***/ + + +/************************************************************************************//** +** \brief Transmits a packet formatted for the communication interface. +** \param data Pointer to byte array with data that it to be transmitted. +** \param len Number of bytes that are to be transmitted. +** \return none. +** +****************************************************************************************/ +void CanTransmitPacket(blt_int8u *data, blt_int8u len) +{ + /* make sure that transmit mailbox 0 is available */ + ASSERT_RT((CANx->TSR&CAN_BIT_TME0) == CAN_BIT_TME0); + /* store the 11-bit message identifier */ + CANx->sTxMailBox[0].TIR &= CAN_BIT_TXRQ; + CANx->sTxMailBox[0].TIR |= ((blt_int32u)BOOT_COM_CAN_TX_MSG_ID << 21); + /* store the message date length code (DLC) */ + CANx->sTxMailBox[0].TDTR = len; + /* store the message data bytes */ + CANx->sTxMailBox[0].TDLR = (((blt_int32u)data[3] << 24) | \ + ((blt_int32u)data[2] << 16) | \ + ((blt_int32u)data[1] << 8) | \ + ((blt_int32u)data[0])); + CANx->sTxMailBox[0].TDHR = (((blt_int32u)data[7] << 24) | \ + ((blt_int32u)data[6] << 16) | \ + ((blt_int32u)data[5] << 8) | \ + ((blt_int32u)data[4])); + /* request the start of message transmission */ + CANx->sTxMailBox[0].TIR |= CAN_BIT_TXRQ; + /* wait for transmit completion */ + while ((CANx->TSR&CAN_BIT_TME0) == 0) + { + /* keep the watchdog happy */ + CopService(); + } +} /*** end of CanTransmitPacket ***/ + + +/************************************************************************************//** +** \brief Receives a communication interface packet if one is present. +** \param data Pointer to byte array where the data is to be stored. +** \return BLT_TRUE is a packet was received, BLT_FALSE otherwise. +** +****************************************************************************************/ +blt_bool CanReceivePacket(blt_int8u *data) +{ + blt_int32u rxMsgId; + blt_bool result = BLT_FALSE; + + /* check if a new message was received */ + if ((CANx->RF0R&(blt_int32u)0x00000003) > 0) + { + /* read out the message identifier */ + rxMsgId = (blt_int32u)0x000007FF & (CANx->sFIFOMailBox[0].RIR >> 21); + /* is this the packet identifier */ + if (rxMsgId == BOOT_COM_CAN_RX_MSG_ID) + { + result = BLT_TRUE; + /* store the received packet data */ + data[0] = (blt_int8u)0xFF & CANx->sFIFOMailBox[0].RDLR; + data[1] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDLR >> 8); + data[2] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDLR >> 16); + data[3] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDLR >> 24); + data[4] = (blt_int8u)0xFF & CANx->sFIFOMailBox[0].RDHR; + data[5] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDHR >> 8); + data[6] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDHR >> 16); + data[7] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDHR >> 24); + } + /* release FIFO0 */ + CANx->RF0R |= CAN_BIT_RFOM0; + } + return result; +} /*** end of CanReceivePacket ***/ +#endif /* BOOT_COM_CAN_ENABLE > 0 */ + + +/*********************************** end of can.c **************************************/ diff --git a/Target/Source/ARMCM4_STM32/can.h b/Target/Source/ARMCM4_STM32/can.h new file mode 100644 index 00000000..4853f7ef --- /dev/null +++ b/Target/Source/ARMCM4_STM32/can.h @@ -0,0 +1,47 @@ +/************************************************************************************//** +* \file Source\ARMCM4_STM32\can.h +* \brief Bootloader CAN communication interface header file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT without being obliged to provide the source code for any +* proprietary components. The exception text is included at the bottom of the license +* file . +* +* \endinternal +****************************************************************************************/ +#ifndef CAN_H +#define CAN_H + +#if (BOOT_COM_CAN_ENABLE > 0) +/**************************************************************************************** +* Function prototypes +****************************************************************************************/ +void CanInit(void); +void CanTransmitPacket(blt_int8u *data, blt_int8u len); +blt_bool CanReceivePacket(blt_int8u *data); +#endif /* BOOT_COM_CAN_ENABLE > 0 */ + + +#endif /* CAN_H */ +/*********************************** end of can.h **************************************/ diff --git a/Target/Source/boot.h b/Target/Source/boot.h index 3606af30..4a285064 100644 --- a/Target/Source/boot.h +++ b/Target/Source/boot.h @@ -41,7 +41,7 @@ /** \brief Minor version of the bootloader core. */ #define BOOT_VERSION_CORE_MINOR (96u) /** \brief Bufgix version of the bootloader core. */ -#define BOOT_VERSION_CORE_BUGFIX (0u) +#define BOOT_VERSION_CORE_BUGFIX (1u) /**************************************************************************************** diff --git a/Target/Source/file.c b/Target/Source/file.c index 0c4f7906..4f7d0afd 100644 --- a/Target/Source/file.c +++ b/Target/Source/file.c @@ -40,19 +40,6 @@ #if (BOOT_FILE_SYS_ENABLE > 0) -/**************************************************************************************** -* Defines -****************************************************************************************/ -/** \brief Maximum number of characters that can be on a line in the firmware file. */ -#define MAX_CHARS_PER_LINE (256) -/** \brief Maximum number of data bytes that can be on a line in the firmware file - * (S-record). - */ -#define MAX_DATA_BYTES_PER_LINE (MAX_CHARS_PER_LINE/2) -/** \brief Return code in case an invalid checksum was detected on an S-record line. */ -#define ERROR_SREC_INVALID_CHECKSUM (-1) - - /**************************************************************************************** * Type definitions ****************************************************************************************/ @@ -65,15 +52,6 @@ typedef enum FIRMWARE_UPDATE_STATE_PROGRAMMING /**< programming state */ } tFirmwareUpdateState; -/** \brief Enumeration for the different S-record line types. */ -typedef enum -{ - LINE_TYPE_S1, /**< 16-bit address line */ - LINE_TYPE_S2, /**< 24-bit address line */ - LINE_TYPE_S3, /**< 32-bit address line */ - LINE_TYPE_UNSUPPORTED /**< unsupported line */ -} tSrecLineType; - /** \brief Structure type with information for the memory erase opeartion. */ typedef struct { @@ -88,21 +66,9 @@ typedef struct FIL file; /**< file object for firmware file */ } tFatFsObjects; -/** \brief Structure type for grouping the parsing results of an S-record line. */ -typedef struct -{ - blt_char line[MAX_CHARS_PER_LINE]; /**< string buffer for the line chars */ - blt_int8u data[MAX_DATA_BYTES_PER_LINE]; /**< array for S1, S2 or S3 data bytes*/ - blt_addr address; /**< address on S1, S2 or S3 line */ -} tSrecLineParseObject; - - /**************************************************************************************** * Function prototypes ****************************************************************************************/ -static tSrecLineType SrecGetLineType(const blt_char *line); -static blt_bool SrecVerifyChecksum(const blt_char *line); -static blt_int16s SrecParseLine(const blt_char *line, blt_addr *address, blt_int8u *data); #if (BOOT_FILE_LOGGING_ENABLE > 0) static blt_char FileLibByteNibbleToChar(blt_int8u nibble); static blt_char *FileLibByteToHexString(blt_int8u byte_val, blt_char *destination); @@ -284,7 +250,7 @@ void FileTask(void) /* parse the S-Record line without copying the data values if the line is not empty */ if (read_line_ptr != BLT_NULL) { - parse_result = SrecParseLine(lineParseObject.line, &lineParseObject.address, BLT_NULL); + parse_result = FileSrecParseLine(lineParseObject.line, &lineParseObject.address, BLT_NULL); /* check parsing result */ if (parse_result == ERROR_SREC_INVALID_CHECKSUM) { @@ -399,7 +365,7 @@ void FileTask(void) /* parse the S-Record line if the line is not empty */ if (read_line_ptr != BLT_NULL) { - parse_result = SrecParseLine(lineParseObject.line, &lineParseObject.address, lineParseObject.data); + parse_result = FileSrecParseLine(lineParseObject.line, &lineParseObject.address, lineParseObject.data); /* check parsing result */ if (parse_result == ERROR_SREC_INVALID_CHECKSUM) { @@ -505,7 +471,7 @@ void FileTask(void) ** \return the S-Record line type. ** ****************************************************************************************/ -static tSrecLineType SrecGetLineType(const blt_char *line) +tSrecLineType FileSrecGetLineType(const blt_char *line) { /* check if the line starts with the 'S' character, followed by a digit */ if ( (toupper(line[0]) != 'S') || (isdigit(line[1]) == 0) ) @@ -528,7 +494,7 @@ static tSrecLineType SrecGetLineType(const blt_char *line) } /* still here so not a supported line type found */ return LINE_TYPE_UNSUPPORTED; -} /*** end of SrecGetLineType ***/ +} /*** end of FileSrecGetLineType ***/ /************************************************************************************//** @@ -538,7 +504,7 @@ static tSrecLineType SrecGetLineType(const blt_char *line) ** \return BLT_TRUE if the checksum is correct, BLT_FALSE otherwise. ** ****************************************************************************************/ -static blt_bool SrecVerifyChecksum(const blt_char *line) +blt_bool FileSrecVerifyChecksum(const blt_char *line) { blt_int16u bytes_on_line; blt_int8u checksum = 0; @@ -573,7 +539,7 @@ static blt_bool SrecVerifyChecksum(const blt_char *line) } /* still here so the checksum was correct */ return BLT_TRUE; -} /*** end of SrecVerifyChecksum ***/ +} /*** end of FileSrecVerifyChecksum ***/ /************************************************************************************//** @@ -589,7 +555,7 @@ static blt_bool SrecVerifyChecksum(const blt_char *line) ** in case the checksum validation failed. ** ****************************************************************************************/ -static blt_int16s SrecParseLine(const blt_char *line, blt_addr *address, blt_int8u *data) +blt_int16s FileSrecParseLine(const blt_char *line, blt_addr *address, blt_int8u *data) { tSrecLineType lineType; blt_int16s data_byte_count = 0; @@ -599,7 +565,7 @@ static blt_int16s SrecParseLine(const blt_char *line, blt_addr *address, blt_int /* check pointers and not that data can be a null pointer */ ASSERT_RT((address != BLT_NULL) && (line != BLT_NULL)); /* figure out what type of line we are dealing with */ - lineType = SrecGetLineType(line); + lineType = FileSrecGetLineType(line); /* make sure it is one that we can parse */ if (lineType == LINE_TYPE_UNSUPPORTED) { @@ -607,7 +573,7 @@ static blt_int16s SrecParseLine(const blt_char *line, blt_addr *address, blt_int return 0; } /* verify the checksum */ - if (SrecVerifyChecksum(line) == BLT_FALSE) + if (FileSrecVerifyChecksum(line) == BLT_FALSE) { /* error on data line encountered */ return ERROR_SREC_INVALID_CHECKSUM; @@ -704,7 +670,7 @@ static blt_int16s SrecParseLine(const blt_char *line, blt_addr *address, blt_int } return data_byte_count; -} /*** end of SrecParseLine ***/ +} /*** end of FileSrecParseLine ***/ #if (BOOT_FILE_LOGGING_ENABLE > 0) diff --git a/Target/Source/file.h b/Target/Source/file.h index 1f5e8303..96a47801 100644 --- a/Target/Source/file.h +++ b/Target/Source/file.h @@ -58,14 +58,48 @@ /** \brief Error code because the program's checksum could not be written to memory. */ #define FILE_ERROR_CANNOT_WRITE_CHECKSUM (7) +/** \brief Maximum number of characters that can be on a line in the firmware file. */ +#define MAX_CHARS_PER_LINE (256) +/** \brief Maximum number of data bytes that can be on a line in the firmware file + * (S-record). + */ +#define MAX_DATA_BYTES_PER_LINE (MAX_CHARS_PER_LINE/2) +/** \brief Return code in case an invalid checksum was detected on an S-record line. */ +#define ERROR_SREC_INVALID_CHECKSUM (-1) + + +/**************************************************************************************** +* Type definitions +****************************************************************************************/ +/** \brief Enumeration for the different S-record line types. */ +typedef enum +{ + LINE_TYPE_S1, /**< 16-bit address line */ + LINE_TYPE_S2, /**< 24-bit address line */ + LINE_TYPE_S3, /**< 32-bit address line */ + LINE_TYPE_UNSUPPORTED /**< unsupported line */ +} tSrecLineType; + +/** \brief Structure type for grouping the parsing results of an S-record line. */ +typedef struct +{ + blt_char line[MAX_CHARS_PER_LINE]; /**< string buffer for the line chars */ + blt_int8u data[MAX_DATA_BYTES_PER_LINE]; /**< array for S1, S2 or S3 data bytes*/ + blt_addr address; /**< address on S1, S2 or S3 line */ +} tSrecLineParseObject; + /**************************************************************************************** * Function prototypes ****************************************************************************************/ -void FileInit(void); -void FileTask(void); -blt_bool FileIsIdle(void); -blt_bool FileHandleFirmwareUpdateRequest(void); +void FileInit(void); +void FileTask(void); +blt_bool FileIsIdle(void); +blt_bool FileHandleFirmwareUpdateRequest(void); +/* functions for reading data from a Motorola S-record file. */ +tSrecLineType FileSrecGetLineType(const blt_char *line); +blt_bool FileSrecVerifyChecksum(const blt_char *line); +blt_int16s FileSrecParseLine(const blt_char *line, blt_addr *address, blt_int8u *data); #endif /* BOOT_FILE_SYS_ENABLE > 0 */