annotate Discovery/Inc/firmwareEraseProgram.h @ 1022:ca713e199f22 GasConsumption

Add model ID 0x44 for the OSTC5 to the 0x60 (HARDWARE2) endpoint. The OSTC4 stays at model ID 0x43. (mikeller)
author heinrichsweikamp
date Sun, 29 Jun 2025 13:45:56 +0200
parents 5924a2d1d3ba
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
2 /// -*- coding: UTF-8 -*-
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
3 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
4 /// \file Discovery/Inc/firmwareEraseProgram.h
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 /// \brief erase and program the STM32F4xx internal FLASH memory
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 /// \author heinrichs weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 /// \date 05-May-2015
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
8 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
9 /// $Id$
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 /// This program is free software: you can redistribute it and/or modify
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 /// it under the terms of the GNU General Public License as published by
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 /// the Free Software Foundation, either version 3 of the License, or
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16 /// (at your option) any later version.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
18 /// This program is distributed in the hope that it will be useful,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19 /// but WITHOUT ANY WARRANTY; without even the implied warranty of
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
21 /// GNU General Public License for more details.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
22 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
23 /// You should have received a copy of the GNU General Public License
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24 /// along with this program. If not, see <http://www.gnu.org/licenses/>.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25 //////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
26
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
27 /* Define to prevent recursive inclusion -------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28 #ifndef FIRMWARE_ERASE_PROGRAM_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 #define FIRMWARE_ERASE_PROGRAM_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31 #ifdef __cplusplus
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32 extern "C" {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 #endif
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35 /* Includes ------------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36 #include "stm32f4xx_hal.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 /* Exported variables --------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39 /* Exported types ------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 #define HARDWAREDATA_ADDRESS (0x08000000 + 0x0000A040)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 /* Exported functions --------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43
1017
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
44 typedef struct
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
45 {
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
46 // 8 bytes
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
47 uint16_t primarySerial;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
48 uint8_t primaryLicence;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
49 uint8_t revision8bit;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
50 uint8_t production_year;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
51 uint8_t production_month;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
52 uint8_t production_day;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
53 uint8_t production_bluetooth_name_set;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54
1017
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
55 // 44 bytes
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
56 char production_info[44];
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
57
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
58 // 8 bytes
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
59 uint16_t secondarySerial;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
60 uint8_t secondaryLicence;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
61 uint8_t secondaryReason8bit;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
62 uint8_t secondary_year;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
63 uint8_t secondary_month;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
64 uint8_t secondary_day;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
65 uint8_t secondary_bluetooth_name_set;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
66
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
67 // 4 bytes
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
68 char secondary_info[4];
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
69 } SHardwareData;
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
70
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
71
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
72 uint32_t CalcFletcher32(uint32_t startAddr, uint32_t endAddr);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74 uint8_t firmware_eraseFlashMemory(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75 uint8_t firmware_programFlashMemory(uint8_t *pBuffer1, uint32_t length1);//, uint8_t *pBuffer2, uint32_t length2)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76
1017
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
77 uint8_t bootloader_eraseFlashMemory(void);
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
78 uint8_t bootloader_programFlashMemory(uint8_t *pBuffer1, uint32_t length1, SHardwareData* pHwInfo);
5924a2d1d3ba Prepare custom block update function:
Ideenmodellierer
parents: 38
diff changeset
79
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
80 uint8_t firmware2_variable_upperpart_eraseFlashMemory(uint32_t length, uint32_t offset);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
81 uint8_t firmware2_variable_upperpart_programFlashMemory(uint32_t length, uint32_t offset, uint8_t *pBuffer1, uint32_t pBuffer1Size, uint8_t *pBuffer2);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
82
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
83 uint8_t hardware_programmProductionData(uint8_t *buffer52); // uint16_t serial, uint16_t revision, uint8_t year, uint8_t month, uint8_t day, uint8_t sub, uint8_t *info[48]
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
84 uint8_t hardware_programmSecondarySerial(uint8_t *buffer12); // uint16_t serial, uint16_t reason, uint8_t year, uint8_t month, uint8_t day, uint8_t sub
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
85 uint8_t hardware_programmPrimaryBluetoothNameSet(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
86 uint8_t hardware_programmSecondaryBluetoothNameSet(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
87
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
88 #endif // FIRMWARE_ERASE_PROGRAM_H