File tree Expand file tree Collapse file tree 2 files changed +3
-41
lines changed
ext_mod/lcd_bus/esp32_include Expand file tree Collapse file tree 2 files changed +3
-41
lines changed Original file line number Diff line number Diff line change 33
33
#include "py/obj.h"
34
34
#include "py/objarray.h"
35
35
36
-
37
- #if CONFIG_IDF_TARGET_ESP32S3
38
- #define RGB_LCD_BUS_NEEDS_SEPARATE_RESTART_LINK 1
39
- #endif
40
-
41
36
typedef struct {
42
37
esp_lcd_panel_t base ; // Base class of generic lcd panel
43
38
int panel_id ; // LCD panel ID
52
47
esp_pm_lock_handle_t pm_lock ; // Power management lock
53
48
size_t num_dma_nodes ; // Number of DMA descriptors that used to carry the frame buffer
54
49
gdma_channel_handle_t dma_chan ; // DMA channel handle
55
- gdma_link_list_handle_t dma_fb_links [RGB_LCD_PANEL_MAX_FB_NUM ]; // DMA link lists for multiple frame buffers
50
+ gdma_link_list_handle_t dma_fb_links [3 ]; // DMA link lists for multiple frame buffers
56
51
gdma_link_list_handle_t dma_bb_link ; // DMA link list for bounce buffer
57
- #if RGB_LCD_BUS_NEEDS_SEPARATE_RESTART_LINK
52
+ #if CONFIG_IDF_TARGET_ESP32S3
58
53
gdma_link_list_handle_t dma_restart_link ; // DMA link list for restarting the DMA
59
54
#endif
60
55
uint8_t * fbs [3 ]; // Frame buffers
Original file line number Diff line number Diff line change @@ -131,40 +131,7 @@ static void machine_timer_isr(void *self_in)
131
131
{
132
132
machine_timer_obj_t * self = self_in ;
133
133
134
- volatile uint32_t sp = (uint32_t )esp_cpu_get_sp ();
135
-
136
- void * old_state = mp_thread_get_state ();
137
-
138
- mp_state_thread_t ts ;
139
- mp_thread_set_state (& ts );
140
- mp_stack_set_top ((void * )sp );
141
- mp_stack_set_limit (CONFIG_FREERTOS_IDLE_TASK_STACKSIZE - 1024 );
142
- mp_locals_set (mp_state_ctx .thread .dict_locals );
143
- mp_globals_set (mp_state_ctx .thread .dict_globals );
144
-
145
- mp_sched_lock ();
146
- gc_lock ();
147
-
148
- nlr_buf_t nlr ;
149
- if (nlr_push (& nlr ) == 0 ) {
150
- mp_obj_t args [1 ];
151
- args [0 ] = MP_OBJ_FROM_PTR (self );
152
-
153
- mp_call_function_n_kw (self -> callback , 1 , 0 , args );
154
- nlr_pop ();
155
- } else {
156
- ets_printf ("Uncaught exception in IRQ callback handler!\n" );
157
- mp_obj_print_exception (& mp_plat_print , MP_OBJ_FROM_PTR (nlr .ret_val ));
158
- }
159
-
160
- if (self -> repeat ) {
161
- self -> period_time = esp_timer_get_time ();
162
- }
163
-
164
- gc_unlock ();
165
- mp_sched_unlock ();
166
-
167
- mp_thread_set_state (old_state );
134
+ mp_sched_schedule (self -> callback , self );
168
135
mp_hal_wake_main_task_from_isr ();
169
136
}
170
137
You can’t perform that action at this time.
0 commit comments