1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-21 10:26:06 +03:00

Save 16 bytes RAM by placing esp8266_gpioToFn (core_esp8266_wiring_digital.cpp) array in PROGMEM (#6703)

* Save 16 bytes RAM by placing the array in PROGMEM.

* Reduce runtime computation at expense of switching from uint8_t[16] to uint32_t*[16]
This commit is contained in:
Dirk O. Kaar 2019-11-05 16:37:15 +01:00 committed by Develo
parent 60c8975feb
commit d14419efa2
2 changed files with 3 additions and 3 deletions

View File

@ -30,7 +30,7 @@
extern "C" { extern "C" {
uint8_t esp8266_gpioToFn[16] = {0x34, 0x18, 0x38, 0x14, 0x3C, 0x40, 0x1C, 0x20, 0x24, 0x28, 0x2C, 0x30, 0x04, 0x08, 0x0C, 0x10}; volatile uint32_t* const esp8266_gpioToFn[16] PROGMEM = { &GPF0, &GPF1, &GPF2, &GPF3, &GPF4, &GPF5, &GPF6, &GPF7, &GPF8, &GPF9, &GPF10, &GPF11, &GPF12, &GPF13, &GPF14, &GPF15 };
extern void __pinMode(uint8_t pin, uint8_t mode) { extern void __pinMode(uint8_t pin, uint8_t mode) {
if(pin < 16){ if(pin < 16){

View File

@ -102,8 +102,8 @@
#define GPF14 ESP8266_REG(0x80C) #define GPF14 ESP8266_REG(0x80C)
#define GPF15 ESP8266_REG(0x810) #define GPF15 ESP8266_REG(0x810)
extern uint8_t esp8266_gpioToFn[16]; extern volatile uint32_t* const esp8266_gpioToFn[16];
#define GPF(p) ESP8266_REG(0x800 + esp8266_gpioToFn[(p & 0xF)]) #define GPF(p) (*esp8266_gpioToFn[(p & 0xF)])
//GPIO (0-15) PIN Function Bits //GPIO (0-15) PIN Function Bits
#define GPFSOE 0 //Sleep OE #define GPFSOE 0 //Sleep OE