esp32: Don't put py/scheduler.o in iRAM, it's no longer needed.

ISR's no longer need to be in iRAM, and the ESP IDF provides an option to
specify that they are in iRAM if an application needs lower latency when
handling them.  But we don't use this feature for user interrupts: both
timer and gpio ISR routines are registered without the ESP_INTR_FLAG_IRAM
option, and so the scheduling code no longer needs to be in iRAM.
This commit is contained in:
Damien George 2019-01-27 16:15:47 +11:00
parent deb67569ff
commit e7ab475276
2 changed files with 1 additions and 2 deletions

View File

@ -108,7 +108,6 @@ SECTIONS
*spi_flash/spi_flash_rom_patch.o(.literal .text .literal.* .text.*) *spi_flash/spi_flash_rom_patch.o(.literal .text .literal.* .text.*)
*libgcov.a:(.literal .text .literal.* .text.*) *libgcov.a:(.literal .text .literal.* .text.*)
INCLUDE esp32.spiram.rom-functions-iram.ld INCLUDE esp32.spiram.rom-functions-iram.ld
*py/scheduler.o*(.literal .text .literal.* .text.*)
_iram_text_end = ABSOLUTE(.); _iram_text_end = ABSOLUTE(.);
_iram_end = ABSOLUTE(.); _iram_end = ABSOLUTE(.);
} > iram0_0_seg } > iram0_0_seg

View File

@ -112,7 +112,7 @@ void machine_pins_deinit(void) {
} }
} }
STATIC void IRAM_ATTR machine_pin_isr_handler(void *arg) { STATIC void machine_pin_isr_handler(void *arg) {
machine_pin_obj_t *self = arg; machine_pin_obj_t *self = arg;
mp_obj_t handler = MP_STATE_PORT(machine_pin_irq_handler)[self->id]; mp_obj_t handler = MP_STATE_PORT(machine_pin_irq_handler)[self->id];
mp_sched_schedule(handler, MP_OBJ_FROM_PTR(self)); mp_sched_schedule(handler, MP_OBJ_FROM_PTR(self));