Mercurial > public > ostc4
comparison BootLoader/Src/base_bootlader.c @ 25:97eafbcb81a9
FIX move bootloader SFirmwareData at fixed address 0x0800A000
author | jdg@air |
---|---|
date | Wed, 03 Jan 2018 01:40:59 +0100 |
parents | e65d01b6a17e |
children | ea1003f63e44 |
comparison
equal
deleted
inserted
replaced
24:4de447ee5d1b | 25:97eafbcb81a9 |
---|---|
189 * | 189 * |
190 ****************************************************************************** | 190 ****************************************************************************** |
191 */ | 191 */ |
192 | 192 |
193 /* Includes ------------------------------------------------------------------*/ | 193 /* Includes ------------------------------------------------------------------*/ |
194 #include "stdio.h" | 194 #include "base_bootloader.h" |
195 #include <string.h> // for memcopy | 195 |
196 | 196 // From Bootloader/Inc: |
197 #include "tInfoBootloader.h" | |
198 | |
199 // ? | |
200 #include "externLogbookFlash.h" | |
201 #include "firmwareEraseProgram.h" | |
202 #include "firmwareJumpToApplication.h" | |
203 | |
204 // From Common/Inc: | |
205 #include "FirmwareData.h" | |
206 | |
207 // From Common/Drivers: | |
197 #include "stm32f4xx_hal.h" | 208 #include "stm32f4xx_hal.h" |
198 #include "stm32f4xx_hal_rcc.h" | 209 #include "stm32f4xx_hal_rcc.h" |
199 #include "stm32f4xx_hal_flash_ex.h" | 210 #include "stm32f4xx_hal_flash_ex.h" |
200 #include "stm32f4xx_hal_wwdg.h" | 211 #include "stm32f4xx_hal_wwdg.h" |
201 | 212 |
202 #include "ostc.h" | 213 // From Discovery/Inc (shall be shared...) |
203 #include "base_bootloader.h" | 214 #include "data_exchange_main.h" |
204 #include "display.h" | 215 #include "display.h" |
205 #include "gfx_engine.h" | 216 #include "gfx_engine.h" |
206 #include "externLogbookFlash.h" | 217 #include "ostc.h" |
207 #include "tComm.h" | 218 #include "tComm.h" |
208 #include "tStructure.h" | 219 #include "tStructure.h" |
209 #include "tInfoBootloader.h" | 220 |
210 | 221 // From AC6 support: |
211 #include "firmwareEraseProgram.h" | 222 #include <stdio.h> |
212 #include "firmwareJumpToApplication.h" | 223 #include <string.h> // for memcopy |
213 | |
214 #include "data_exchange_main.h" | |
215 | 224 |
216 /** @addtogroup OSTC 4 | 225 /** @addtogroup OSTC 4 |
217 * @{ | 226 * @{ |
218 */ | 227 */ |
219 | 228 |
223 #define WRITE_READ_ADDR ((uint32_t)0x0000) | 232 #define WRITE_READ_ADDR ((uint32_t)0x0000) |
224 #define REFRESH_COUNT ((uint32_t)0x0569) /* SDRAM refresh counter (90Mhz SD clock) */ | 233 #define REFRESH_COUNT ((uint32_t)0x0569) /* SDRAM refresh counter (90Mhz SD clock) */ |
225 | 234 |
226 /* Private macro -------------------------------------------------------------*/ | 235 /* Private macro -------------------------------------------------------------*/ |
227 /* Private variables ---------------------------------------------------------*/ | 236 /* Private variables ---------------------------------------------------------*/ |
228 uint8_t returnFromCommCleanUpRequest = 0; | 237 uint8_t returnFromCommCleanUpRequest = 0; |
229 | 238 |
230 const SFirmwareData FirmwareData __attribute__((at(0x08000000 + 0x0000A000))) = { | 239 const SFirmwareData bootloader_FirmwareData __attribute__(( section(".bootloader_firmware_data") )) = |
231 .firmwareVersion16to32bit.ub.first = 1, | 240 { |
232 .firmwareVersion16to32bit.ub.second = 0, | 241 .versionFirst = 1, |
233 .firmwareVersion16to32bit.ub.third = 1, | 242 .versionSecond = 0, |
234 .firmwareVersion16to32bit.ub.betaFlag = 1, | 243 .versionThird = 1, |
244 .versionBeta = 1, | |
235 | 245 |
236 /* 4 bytes with trailing 0 */ | 246 /* 4 bytes with trailing 0 */ |
237 .signature = "cw", | 247 .signature = "cw", |
238 | 248 |
239 .release_year = 16, | 249 .release_year = 16, |
240 .release_month = 4, | 250 .release_month = 4, |
241 .release_day = 8, | 251 .release_day = 8, |
242 .release_sub = 0, | 252 .release_sub = 0, |
243 | 253 |
244 /* max 48 with trailing 0 */ | 254 /* max 48 with trailing 0 */ |
245 //release_info ="12345678901234567890123456789012345678901" | |
246 .release_info ="tComm with all", | 255 .release_info ="tComm with all", |
247 | 256 |
248 /* for safety reasons and coming functions*/ | 257 /* for safety reasons and coming functions*/ |
249 .dummy[0] = 0, | 258 .magic[0] = FIRMWARE_MAGIC_FIRST, |
250 .dummy[1] = 0, | 259 .magic[1] = FIRMWARE_MAGIC_SECOND, |
251 .dummy[2] = 0xEE, /* the magic byte */ | 260 .magic[2] = FIRMWARE_MAGIC_FIRMWARE, /* the magic byte */ |
252 .dummy[3] = 0xFF | 261 .magic[3] = FIRMWARE_MAGIC_END |
253 }; | 262 }; |
254 | 263 |
255 | 264 |
256 const SHardwareData HardwareData __attribute__((at(HARDWAREDATA_ADDRESS))) = { | 265 const SHardwareData HardwareData __attribute__((at(HARDWAREDATA_ADDRESS))) = { |
257 | 266 |
280 .secondary_bluetooth_name_set = 0xFF, | 289 .secondary_bluetooth_name_set = 0xFF, |
281 .secondary_info = {0xFF,0xFF,0xFF,0xFF} | 290 .secondary_info = {0xFF,0xFF,0xFF,0xFF} |
282 }; | 291 }; |
283 | 292 |
284 | 293 |
285 RTC_HandleTypeDef RtcHandle; | 294 RTC_HandleTypeDef RtcHandle; |
286 TIM_HandleTypeDef TimHandle; /* used in stm32f4xx_it.c too */ | 295 TIM_HandleTypeDef TimHandle; /* used in stm32f4xx_it.c too */ |
287 TIM_HandleTypeDef TimBacklightHandle; /* used in stm32f4xx_it.c too */ | 296 TIM_HandleTypeDef TimBacklightHandle; /* used in stm32f4xx_it.c too */ |
288 | 297 |
289 uint32_t time_before; | 298 uint32_t time_before; |
290 uint32_t time_between; | 299 uint32_t time_between; |