esp8266: Add MP_FASTCODE modifier to put a function to iRAM.

It can be used in the following manner:

void MP_FASTCODE(foo)(int arg) { ... }
This commit is contained in:
Paul Sokolovsky 2016-10-19 00:20:10 +03:00
parent 462748de0c
commit 9514d847fe
2 changed files with 4 additions and 1 deletions

View File

@ -202,7 +202,8 @@ SECTIONS
*(.entry.text)
*(.init.literal)
*(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.literal .text .literal.* .text.* .iram0.literal .iram0.text .iram0.text.*.literal .iram0.text.*)
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)

View File

@ -182,4 +182,6 @@ extern const struct _mp_obj_module_t onewire_module;
#define MICROPY_HW_MCU_NAME "ESP8266"
#define MICROPY_PY_SYS_PLATFORM "esp8266"
#define MP_FASTCODE(n) __attribute__((section(".iram0.text." #n))) n
#define _assert(expr) ((expr) ? (void)0 : __assert_func(__FILE__, __LINE__, __func__, #expr))