Skip to content

Commit 4e88d79

Browse files
committed
Thonny causing crash emitglue.c:199:
1 parent 8bb369c commit 4e88d79

File tree

5 files changed

+295
-17
lines changed

5 files changed

+295
-17
lines changed

ports/espressif/boards/adafruit_feather_esp32_v2/sdkconfig

Lines changed: 266 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
1+
# Automatically generated file. DO NOT EDIT.
22
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
33
#
44
# Bootloader config
@@ -12,6 +12,9 @@ CONFIG_BOOTLOADER_LOG_LEVEL=0
1212
# Serial flasher config
1313
#
1414
# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set
15+
# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
16+
# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
17+
# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
1518
# end of Serial flasher config
1619

1720
#
@@ -24,23 +27,283 @@ CONFIG_PARTITION_TABLE_FILENAME="esp-idf-config/partitions-8MB-no-uf2.csv"
2427
#
2528
# Compiler options
2629
#
27-
# CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS is not set
30+
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
31+
# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
32+
CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
2833
# end of Compiler options
2934

3035
#
3136
# Component config
3237
#
38+
#
39+
# Bluetooth
40+
#
41+
# CONFIG_BT_ENABLED is not set
42+
# end of Bluetooth
43+
44+
#
45+
# Driver configurations
46+
#
47+
#
48+
# TWAI configuration
49+
#
50+
# CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC is not set
51+
# CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST is not set
52+
# CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID is not set
53+
# CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT is not set
54+
# end of TWAI configuration
55+
56+
#
57+
# UART configuration
58+
#
59+
CONFIG_UART_ISR_IN_IRAM=y
60+
# end of UART configuration
61+
62+
#
63+
# RTCIO configuration
64+
#
65+
# CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC is not set
66+
# end of RTCIO configuration
67+
68+
#
69+
# GPIO Configuration
70+
#
71+
# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set
72+
# end of GPIO Configuration
73+
74+
# end of Driver configurations
75+
76+
#
77+
# eFuse Bit Manager
78+
#
79+
# CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set
80+
CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y
81+
# CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set
82+
CONFIG_EFUSE_MAX_BLK_LEN=192
83+
# end of eFuse Bit Manager
84+
85+
#
86+
# ESP-TLS
87+
#
88+
# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set
89+
# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set
90+
# end of ESP-TLS
91+
3392
#
3493
# ESP32-specific
3594
#
95+
CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y
3696
CONFIG_ESP32_SPIRAM_SUPPORT=y
37-
CONFIG_UART_ISR_IN_IRAM=y
97+
#
98+
# SPI RAM config
99+
#
100+
CONFIG_SPIRAM_TYPE_AUTO=y
101+
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
102+
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
103+
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
104+
CONFIG_SPIRAM_SIZE=-1
105+
CONFIG_SPIRAM_SPEED_40M=y
106+
CONFIG_SPIRAM=y
107+
CONFIG_SPIRAM_BOOT_INIT=y
108+
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
109+
# CONFIG_SPIRAM_USE_MEMMAP is not set
110+
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
111+
CONFIG_SPIRAM_USE_MALLOC=y
112+
CONFIG_SPIRAM_MEMTEST=y
113+
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384
114+
# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set
115+
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
116+
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
117+
# CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY is not set
118+
CONFIG_SPIRAM_CACHE_WORKAROUND=y
119+
#
120+
# SPIRAM cache workaround debugging
121+
#
122+
CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_MEMW=y
123+
# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_DUPLDST is not set
124+
# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_NOPS is not set
125+
# end of SPIRAM cache workaround debugging
126+
127+
#
128+
# SPIRAM workaround libraries placement
129+
#
130+
CONFIG_SPIRAM_CACHE_LIBJMP_IN_IRAM=y
131+
CONFIG_SPIRAM_CACHE_LIBMATH_IN_IRAM=y
132+
CONFIG_SPIRAM_CACHE_LIBNUMPARSER_IN_IRAM=y
133+
CONFIG_SPIRAM_CACHE_LIBIO_IN_IRAM=y
134+
CONFIG_SPIRAM_CACHE_LIBTIME_IN_IRAM=y
135+
CONFIG_SPIRAM_CACHE_LIBCHAR_IN_IRAM=y
136+
CONFIG_SPIRAM_CACHE_LIBMEM_IN_IRAM=y
137+
CONFIG_SPIRAM_CACHE_LIBSTR_IN_IRAM=y
138+
CONFIG_SPIRAM_CACHE_LIBRAND_IN_IRAM=y
139+
CONFIG_SPIRAM_CACHE_LIBENV_IN_IRAM=y
140+
CONFIG_SPIRAM_CACHE_LIBFILE_IN_IRAM=y
141+
CONFIG_SPIRAM_CACHE_LIBMISC_IN_IRAM=y
142+
# end of SPIRAM workaround libraries placement
143+
144+
CONFIG_SPIRAM_BANKSWITCH_ENABLE=y
145+
CONFIG_SPIRAM_BANKSWITCH_RESERVE=8
146+
# CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY is not set
147+
#
148+
# PSRAM clock and cs IO for ESP32-DOWD
149+
#
150+
CONFIG_D0WD_PSRAM_CLK_IO=17
151+
CONFIG_D0WD_PSRAM_CS_IO=16
152+
# end of PSRAM clock and cs IO for ESP32-DOWD
153+
154+
#
155+
# PSRAM clock and cs IO for ESP32-D2WD
156+
#
157+
CONFIG_D2WD_PSRAM_CLK_IO=9
158+
CONFIG_D2WD_PSRAM_CS_IO=10
159+
# end of PSRAM clock and cs IO for ESP32-D2WD
160+
161+
#
162+
# PSRAM clock and cs IO for ESP32-PICO
163+
#
164+
CONFIG_PICO_PSRAM_CS_IO=10
165+
# end of PSRAM clock and cs IO for ESP32-PICO
166+
167+
# CONFIG_SPIRAM_CUSTOM_SPIWP_SD3_PIN is not set
168+
CONFIG_SPIRAM_SPIWP_SD3_PIN=7
169+
# CONFIG_SPIRAM_2T_MODE is not set
170+
# end of SPI RAM config
171+
38172
# end of ESP32-specific
39173

174+
#
175+
# ADC-Calibration
176+
#
177+
CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y
178+
CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y
179+
CONFIG_ADC_CAL_LUT_ENABLE=y
180+
# end of ADC-Calibration
181+
182+
#
183+
# Common ESP-related
184+
#
185+
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
186+
# end of Common ESP-related
187+
188+
#
189+
# Ethernet
190+
#
191+
# CONFIG_ETH_USE_ESP32_EMAC is not set
192+
# end of Ethernet
193+
194+
#
195+
# PHY
196+
#
197+
CONFIG_ESP_PHY_REDUCE_TX_POWER=y
198+
# end of PHY
199+
200+
#
201+
# ESP System Settings
202+
#
203+
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
204+
# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
205+
CONFIG_ESP_CONSOLE_UART_CUSTOM=y
206+
# CONFIG_ESP_CONSOLE_NONE is not set
207+
CONFIG_ESP_CONSOLE_UART=y
208+
CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y
209+
# CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1 is not set
210+
CONFIG_ESP_CONSOLE_UART_NUM=0
211+
CONFIG_ESP_CONSOLE_UART_TX_GPIO=8
212+
CONFIG_ESP_CONSOLE_UART_RX_GPIO=7
213+
CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
214+
# CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set
215+
# end of ESP System Settings
216+
217+
#
218+
# High resolution timer (esp_timer)
219+
#
220+
# CONFIG_ESP_TIMER_IMPL_FRC2 is not set
221+
CONFIG_ESP_TIMER_IMPL_TG0_LAC=y
222+
# end of High resolution timer (esp_timer)
223+
224+
#
225+
# Wi-Fi
226+
#
227+
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
228+
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
229+
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16
230+
CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=32
231+
# CONFIG_ESP32_WIFI_AMSDU_TX_ENABLED is not set
232+
# end of Wi-Fi
233+
234+
#
235+
# FreeRTOS
236+
#
237+
# CONFIG_FREERTOS_FPU_IN_ISR is not set
238+
# end of FreeRTOS
239+
240+
#
241+
# Hardware Abstraction Layer (HAL) and Low Level (LL)
242+
#
243+
# CONFIG_HAL_ASSERTION_ENABLE is not set
244+
CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2
245+
# end of Hardware Abstraction Layer (HAL) and Low Level (LL)
246+
40247
#
41248
# LWIP
42249
#
43250
CONFIG_LWIP_LOCAL_HOSTNAME="Adafruit-Feather-ESP32-V2"
44251
# end of LWIP
45252

253+
#
254+
# mbedTLS
255+
#
256+
# CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC is not set
257+
# end of mbedTLS
258+
259+
#
260+
# Supplicant
261+
#
262+
# CONFIG_WPA_MBO_SUPPORT is not set
263+
# CONFIG_WPA_DPP_SUPPORT is not set
264+
# end of Supplicant
265+
46266
# end of Component config
267+
268+
#
269+
# Deprecated options for backward compatibility
270+
#
271+
CONFIG_LOG_BOOTLOADER_LEVEL_NONE=y
272+
# CONFIG_LOG_BOOTLOADER_LEVEL_INFO is not set
273+
CONFIG_LOG_BOOTLOADER_LEVEL=0
274+
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
275+
# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
276+
CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2
277+
CONFIG_SPIRAM_SUPPORT=y
278+
# CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST is not set
279+
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
280+
# CONFIG_ULP_COPROC_ENABLED is not set
281+
CONFIG_ULP_COPROC_RESERVE_MEM=0
282+
CONFIG_BROWNOUT_DET=y
283+
CONFIG_BROWNOUT_DET_LVL_SEL_0=y
284+
# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
285+
# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
286+
# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
287+
# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
288+
# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
289+
# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
290+
# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set
291+
CONFIG_BROWNOUT_DET_LVL=0
292+
# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set
293+
# CONFIG_NO_BLOBS is not set
294+
# CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
295+
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
296+
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
297+
CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4
298+
CONFIG_ESP32S2_PANIC_PRINT_HALT=y
299+
# CONFIG_ESP32S2_PANIC_SILENT_REBOOT is not set
300+
CONFIG_CONSOLE_UART_CUSTOM=y
301+
# CONFIG_ESP_CONSOLE_UART_NONE is not set
302+
CONFIG_CONSOLE_UART=y
303+
CONFIG_CONSOLE_UART_CUSTOM_NUM_0=y
304+
# CONFIG_CONSOLE_UART_CUSTOM_NUM_1 is not set
305+
CONFIG_CONSOLE_UART_NUM=0
306+
CONFIG_CONSOLE_UART_TX_GPIO=8
307+
CONFIG_CONSOLE_UART_RX_GPIO=7
308+
CONFIG_CONSOLE_UART_BAUDRATE=115200
309+
# end of Deprecated options for backward compatibility

ports/espressif/common-hal/busio/UART.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
#include "supervisor/shared/translate/translate.h"
4242
#include "supervisor/shared/tick.h"
4343

44-
uint8_t never_reset_uart_mask = 0;
44+
static uint8_t never_reset_uart_mask = 0;
4545

4646
static void uart_event_task(void *param) {
4747
busio_uart_obj_t *self = param;
@@ -74,13 +74,13 @@ static void uart_event_task(void *param) {
7474

7575
void uart_reset(void) {
7676
for (uart_port_t num = 0; num < UART_NUM_MAX; num++) {
77-
// Ignore the UART used by the IDF.
7877
#ifdef CONFIG_ESP_CONSOLE_UART_NUM
78+
// Do not reset the UART used by the IDF for logging.
7979
if (num == CONFIG_ESP_CONSOLE_UART_NUM) {
8080
continue;
8181
}
8282
#endif
83-
if (uart_is_driver_installed(num) && !(never_reset_uart_mask & 1 << num)) {
83+
if (uart_is_driver_installed(num) && !(never_reset_uart_mask & (1 << num))) {
8484
uart_driver_delete(num);
8585
}
8686
}

ports/espressif/supervisor/port.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,17 @@ safe_mode_t port_init(void) {
166166
#define DEBUG (0)
167167
#endif
168168

169+
#define pin_GPIOn(n) pin_GPIO##n
170+
#define pin_GPIOn_EXPAND(x) pin_GPIOn(x)
171+
172+
#ifdef CONFIG_CONSOLE_UART_TX_GPIO
173+
common_hal_never_reset_pin(&pin_GPIOn_EXPAND(CONFIG_CONSOLE_UART_TX_GPIO));
174+
#endif
175+
176+
#ifdef CONFIG_CONSOLE_UART_RX_GPIO
177+
common_hal_never_reset_pin(&pin_GPIOn_EXPAND(CONFIG_CONSOLE_UART_RX_GPIO));
178+
#endif
179+
169180
#if DEBUG
170181
// debug UART
171182
#ifdef CONFIG_IDF_TARGET_ESP32C3

py/circuitpy_mpconfig.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,10 @@ typedef long mp_off_t;
297297
#define BOARD_UART_ROOT_POINTER mp_obj_t board_uart_bus;
298298
#endif
299299

300+
#if MICROPY_PY_ASYNC_AWAIT && !CIRCUITPY_TRACEBACK
301+
#error CIRCUITPY_ASYNCIO requires CIRCUITPY_TRACEBACK
302+
#endif
303+
300304
#if defined(CIRCUITPY_CONSOLE_UART_RX) || defined(CIRCUITPY_CONSOLE_UART_TX)
301305
#if !(defined(CIRCUITPY_CONSOLE_UART_RX) && defined(CIRCUITPY_CONSOLE_UART_TX))
302306
#error Both CIRCUITPY_CONSOLE_UART_RX and CIRCUITPY_CONSOLE_UART_TX must be defined if one is defined.

supervisor/shared/workflow.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,17 @@
4747
static background_callback_t workflow_background_cb;
4848

4949
static void supervisor_workflow_update_status_bar(void) {
50-
// Neighboring "" "" are concatenated by the compiler. Without this separation, the hex code
51-
// doesn't get terminated after two following characters and the value is invalid.
52-
// This is the OSC command to set the title and the icon text. It can be up to 255 characters
53-
// but some may be cut off.
54-
serial_write("\x1b" "]0;");
55-
serial_write("🐍 ");
56-
#if CIRCUITPY_WEB_WORKFLOW
57-
supervisor_web_workflow_status();
58-
#endif
59-
// Send string terminator
60-
serial_write("\x1b" "\\");
50+
// // Neighboring "" "" are concatenated by the compiler. Without this separation, the hex code
51+
// // doesn't get terminated after two following characters and the value is invalid.
52+
// // This is the OSC command to set the title and the icon text. It can be up to 255 characters
53+
// // but some may be cut off.
54+
// serial_write("\x1b" "]0;");
55+
// serial_write("🐍 ");
56+
// #if CIRCUITPY_WEB_WORKFLOW
57+
// supervisor_web_workflow_status();
58+
// #endif
59+
// // Send string terminator
60+
// serial_write("\x1b" "\\");
6161
}
6262

6363
static void workflow_background(void *data) {

0 commit comments

Comments
 (0)