From 7c5eac69104d37ba397ba1324d9faf00ab80ea23 Mon Sep 17 00:00:00 2001 From: Frank Voorburg Date: Wed, 25 Nov 2020 11:28:05 +0000 Subject: [PATCH] Refs #778, #981. Corrected the demo bootloader C-startup, fixed a warning in the flash driver and added the S-record for the demo bootloader. git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@814 5dc33758-31d5-4daf-9ae8-b24bf3d40d73 --- .../Boot/bin/openblt_stm32f746.axf | Bin 2574116 -> 2574156 bytes .../Boot/bin/openblt_stm32f746.srec | 1282 +++++++++++++++++ .../Boot/ide/stm32f746.uvoptx | 4 +- .../Boot/ide/stm32f746.uvprojx | 4 +- .../Boot/startup_stm32f746xx.s | 5 +- Target/Source/ARMCM7_STM32H7/flash.c | 2 +- 6 files changed, 1288 insertions(+), 9 deletions(-) create mode 100644 Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/bin/openblt_stm32f746.srec diff --git a/Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/bin/openblt_stm32f746.axf b/Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/bin/openblt_stm32f746.axf index 192366cea3394cbdcb81f362cb85fca6978a00ec..e091649ac762d61646e8a2a354afeeb19ae7d55a 100644 GIT binary patch delta 26860 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 App - 1 + 0 0 0 0 @@ -1275,7 +1275,7 @@ Core - 1 + 0 0 0 0 diff --git a/Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/ide/stm32f746.uvprojx b/Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/ide/stm32f746.uvprojx index fe092ed5..88b43ec2 100644 --- a/Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/ide/stm32f746.uvprojx +++ b/Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/ide/stm32f746.uvprojx @@ -80,9 +80,9 @@ 0 - 0 + 1 0 - + fromelf --m32 --output=..\bin\openblt_stm32f746.srec ..\bin\openblt_stm32f746.axf 0 0 diff --git a/Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/startup_stm32f746xx.s b/Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/startup_stm32f746xx.s index d934242d..d8aa6fc7 100644 --- a/Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/startup_stm32f746xx.s +++ b/Target/Demo/ARMCM7_STM32F7_Nucleo_F746ZG_Keil/Boot/startup_stm32f746xx.s @@ -67,6 +67,7 @@ __heap_limit ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY + IMPORT SysTick_Handler EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size @@ -244,10 +245,6 @@ PendSV_Handler PROC EXPORT PendSV_Handler [WEAK] B . ENDP -SysTick_Handler PROC - EXPORT SysTick_Handler [WEAK] - B . - ENDP Default_Handler PROC diff --git a/Target/Source/ARMCM7_STM32H7/flash.c b/Target/Source/ARMCM7_STM32H7/flash.c index 5c8a432d..c2a20e71 100644 --- a/Target/Source/ARMCM7_STM32H7/flash.c +++ b/Target/Source/ARMCM7_STM32H7/flash.c @@ -758,7 +758,7 @@ static blt_bool FlashWriteBlock(tFlashBlockInfo *block) /* compare the byte value located in flash with the one that was supposed to * be programmed there */ - if (((volatile blt_int8u *)prog_addr)[byte_idx] != prog_data[byte_idx]) + if (((blt_int8u *)prog_addr)[byte_idx] != prog_data[byte_idx]) { /* byte value in flash is not as expected, so a programming error must have * happened