Skip to content

Commit 4c5e752

Browse files
committed
Fix NVM by clearing FLASH_FLAG_PGPERR
1 parent 661c20d commit 4c5e752

File tree

6 files changed

+26
-24
lines changed

6 files changed

+26
-24
lines changed

ports/stm/boards/thunderpack_v11/mpconfigboard.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2424
* THE SOFTWARE.
2525
*/
26-
#define MICROPY_HW_BOARD_NAME "THUNDERPACK"
26+
#define MICROPY_HW_BOARD_NAME "THUNDERPACK_v11"
2727
#define MICROPY_HW_MCU_NAME "STM32F411CE"
2828

2929
// Non-volatile memory config

ports/stm/boards/thunderpack_v12/mpconfigboard.h

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,33 +27,31 @@
2727
#define MICROPY_HW_MCU_NAME "STM32F411CE"
2828

2929
// Non-volatile memory config
30-
#define CIRCUITPY_INTERNAL_NVM_SIZE (0x4000)
31-
#define CIRCUITPY_INTERNAL_NVM_START_ADDR (0x0800C000)
32-
#define CIRCUITPY_INTERNAL_NVM_SECTOR FLASH_SECTOR_3
33-
#define NVM_BYTEARRAY_BUFFER_SIZE 512
30+
#define CIRCUITPY_INTERNAL_NVM_SIZE (0x4000)
31+
#define CIRCUITPY_INTERNAL_NVM_START_ADDR (0x0800C000)
32+
#define CIRCUITPY_INTERNAL_NVM_SECTOR FLASH_SECTOR_3
33+
#define NVM_BYTEARRAY_BUFFER_SIZE 512
3434

3535
// Flash config
36-
#define FLASH_SIZE (0x80000)
37-
#define FLASH_PAGE_SIZE (0x4000)
38-
#define BOARD_FLASH_SIZE (FLASH_SIZE - CIRCUITPY_INTERNAL_NVM_SIZE- 0x2000 - 0xC000)
36+
#define FLASH_SIZE (0x80000)
37+
#define FLASH_PAGE_SIZE (0x4000)
38+
#define BOARD_FLASH_SIZE (FLASH_SIZE - CIRCUITPY_INTERNAL_NVM_SIZE- 0x2000 - 0xC000)
3939
#define INTERNAL_FLASH_FILESYSTEM_SIZE 0x8000
40-
#define INTERNAL_FLASH_FILESYSTEM_START_ADDR 0x08004000
4140

4241
// On-board flash
4342
#define SPI_FLASH_MOSI_PIN (&pin_PB15)
4443
#define SPI_FLASH_MISO_PIN (&pin_PB14)
4544
#define SPI_FLASH_SCK_PIN (&pin_PB13)
4645
#define SPI_FLASH_CS_PIN (&pin_PB12)
4746

47+
#define HSE_VALUE ((uint32_t)24000000U)
48+
#define BOARD_OVERWRITE_SWD (1)
49+
#define BOARD_NO_VBUS_SENSE (1)
50+
#define BOARD_HAS_LOW_SPEED_CRYSTAL (0)
51+
4852
// Status LEDs
4953
#define MICROPY_HW_APA102_MOSI (&pin_PB08)
5054
#define MICROPY_HW_APA102_SCK (&pin_PB00)
51-
5255
// I2C
5356
#define DEFAULT_I2C_BUS_SCL (&pin_PB06)
5457
#define DEFAULT_I2C_BUS_SDA (&pin_PB07)
55-
56-
// General config
57-
#define BOARD_OSC_DIV (24)
58-
#define BOARD_OVERWRITE_SWD (1)
59-
#define BOARD_NO_VBUS_SENSE (1)

ports/stm/boards/thunderpack_v12/mpconfigboard.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
1111
EXTERNAL_FLASH_DEVICES = GD25Q16C
1212

1313
CIRCUITPY_NVM = 1
14+
CIRCUITPY_BLEIO_HCI = 0
1415

1516
MCU_SERIES = F4
1617
MCU_VARIANT = STM32F411xE

ports/stm/common-hal/microcontroller/Pin.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
#ifdef MICROPY_HW_NEOPIXEL
3636
bool neopixel_in_use;
3737
#endif
38-
#ifdef MICROPY_HW_APA102_MOSI
38+
#if defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK)
3939
bool apa102_sck_in_use;
4040
bool apa102_mosi_in_use;
4141
#endif
@@ -70,7 +70,7 @@ void reset_all_pins(void) {
7070
#ifdef MICROPY_HW_NEOPIXEL
7171
neopixel_in_use = false;
7272
#endif
73-
#ifdef MICROPY_HW_APA102_MOSI
73+
#if defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK)
7474
apa102_sck_in_use = false;
7575
apa102_mosi_in_use = false;
7676
#endif
@@ -97,8 +97,11 @@ void reset_pin_number(uint8_t pin_port, uint8_t pin_number) {
9797
return;
9898
}
9999
#endif
100-
#ifdef MICROPY_HW_APA102_MOSI
101-
if ((pin_port == MICROPY_HW_APA102_MOSI->port && pin_number == MICROPY_HW_APA102_MOSI->number) || (pin_port == MICROPY_HW_APA102_SCK->port && pin_number == MICROPY_HW_APA102_MOSI->number))
100+
#if defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK)
101+
if (
102+
(pin_port == MICROPY_HW_APA102_MOSI->port && pin_number == MICROPY_HW_APA102_MOSI->number)
103+
|| (pin_port == MICROPY_HW_APA102_SCK->port && pin_number == MICROPY_HW_APA102_MOSI->number)
104+
)
102105
{
103106
apa102_mosi_in_use = false;
104107
apa102_sck_in_use = false;
@@ -140,7 +143,7 @@ bool common_hal_mcu_pin_is_free(const mcu_pin_obj_t *pin) {
140143
return !neopixel_in_use;
141144
}
142145
#endif
143-
#ifdef MICROPY_HW_APA102_MOSI
146+
#if defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK)
144147
if (pin == MICROPY_HW_APA102_MOSI)
145148
{
146149
return !apa102_mosi_in_use;
@@ -173,7 +176,7 @@ void common_hal_mcu_pin_claim(const mcu_pin_obj_t* pin) {
173176
neopixel_in_use = true;
174177
}
175178
#endif
176-
#ifdef MICROPY_HW_APA102_MOSI
179+
#if defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK)
177180
if (pin == MICROPY_HW_APA102_MOSI)
178181
{
179182
apa102_mosi_in_use = true;

ports/stm/common-hal/nvm/ByteArray.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ bool common_hal_nvm_bytearray_set_bytes(nvm_bytearray_obj_t *self,
4848

4949
// Erase flash sector
5050
HAL_FLASH_Unlock();
51-
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGSERR );
51+
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR );
5252
FLASH_Erase_Sector(CIRCUITPY_INTERNAL_NVM_SECTOR, VOLTAGE_RANGE_3);
5353

5454
// Write bytes to flash

ports/stm/supervisor/internal_flash.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@
4242
#ifdef STM32F411xE
4343
#define STM32_FLASH_SIZE 0x80000 //512KiB
4444
#ifndef INTERNAL_FLASH_FILESYSTEM_SIZE
45-
#define INTERNAL_FLASH_FILESYSTEM_SIZE 0xC000 //48KiB
45+
#define INTERNAL_FLASH_FILESYSTEM_SIZE 0xC000 //48KiB
4646
#endif
4747
#ifndef INTERNAL_FLASH_FILESYSTEM_START_ADDR
48-
#define INTERNAL_FLASH_FILESYSTEM_START_ADDR 0x08004000
48+
#define INTERNAL_FLASH_FILESYSTEM_START_ADDR 0x08004000
4949
#endif
5050
#endif
5151

0 commit comments

Comments
 (0)