mirror of
https://github.com/espruino/Espruino.git
synced 2025-12-08 19:06:15 +00:00
support 1MB boards
- add make flags FLASH_1MB and NO_FOTA - add SPI1 labels to ESP8266 - fix some compiler warnings
This commit is contained in:
parent
624d6f2c70
commit
2d50160436
@ -75,6 +75,8 @@
|
||||
Ensure it's possible to get a solid background when using 4x6 font
|
||||
Bangle.js: Add Bangle.showLauncher
|
||||
Add append optimisation for string '+', and don't append to flat/native/etc strings (fix #1746)
|
||||
ESP8266_4MB: add optional build flag FLASH_1MB for ESP8255 & ESP01s with 1MB flash
|
||||
ESP8266: add optional build flag NO_FOTA to remove flash over the air functionality
|
||||
|
||||
2v04 : Allow \1..\9 escape codes in RegExp
|
||||
ESP8266: reading storage is not working for boot from user2 (fix #1507)
|
||||
|
||||
9
Makefile
9
Makefile
@ -519,8 +519,13 @@ ifeq ($(USE_NET),1)
|
||||
INCLUDE += -I$(ROOT)/libs/network/esp8266
|
||||
SOURCES += \
|
||||
libs/network/esp8266/network_esp8266.c\
|
||||
libs/network/esp8266/pktbuf.c\
|
||||
libs/network/esp8266/ota.c
|
||||
libs/network/esp8266/pktbuf.c
|
||||
endif
|
||||
|
||||
ifndef NO_FOTA
|
||||
SOURCES += libs/network/esp8266/ota.c
|
||||
else
|
||||
DEFINES += -DNO_FOTA
|
||||
endif
|
||||
|
||||
ifdef USE_TELNET
|
||||
|
||||
@ -125,9 +125,9 @@ def get_pins():
|
||||
{ "name":"PD9", "sortingname":"D09", "port":"D", "num":"9", "functions":{}, "csv":{} },
|
||||
{ "name":"PD10", "sortingname":"D10", "port":"D", "num":"10", "functions":{}, "csv":{} },
|
||||
{ "name":"PD11", "sortingname":"D11", "port":"D", "num":"11", "functions":{}, "csv":{} },
|
||||
{ "name":"PD12", "sortingname":"D12", "port":"D", "num":"12", "functions":{}, "csv":{} },
|
||||
{ "name":"PD13", "sortingname":"D13", "port":"D", "num":"13", "functions":{}, "csv":{} },
|
||||
{ "name":"PD14", "sortingname":"D14", "port":"D", "num":"14", "functions":{}, "csv":{} },
|
||||
{ "name":"PD12", "sortingname":"D12", "port":"D", "num":"12", "functions":{"SPI1_MISO":0}, "csv":{} },
|
||||
{ "name":"PD13", "sortingname":"D13", "port":"D", "num":"13", "functions":{"SPI1_MOSI":0}, "csv":{} },
|
||||
{ "name":"PD14", "sortingname":"D14", "port":"D", "num":"14", "functions":{"SPI1_SCK":0}, "csv":{} },
|
||||
{ "name":"PD15", "sortingname":"D15", "port":"D", "num":"15", "functions":{}, "csv":{} },
|
||||
{ "name":"PD16", "sortingname":"D16", "port":"D", "num":"16", "functions":{}, "csv":{} },
|
||||
{ "name":"PA0", "sortingname":"A00", "port":"A", "num":"17", "functions":{ "ADC1_IN0":0 }, "csv":{} }
|
||||
|
||||
@ -14,6 +14,7 @@ OPTIMIZEFLAGS+=-Os -std=gnu11 -fgnu89-inline -Wl,--allow-multiple-definition
|
||||
endif
|
||||
|
||||
ET_FM ?= qio # Valid values are keep, qio, qout, dio, dout
|
||||
|
||||
ifdef FLASH_4MB
|
||||
ESP_FLASH_MAX ?= 831488 # max bin file: 940KB
|
||||
ESP_FLASH_SIZE ?= 6 # 6->4MB (1024KB+1024KB)
|
||||
@ -23,6 +24,7 @@ ET_FS ?= 4MB-c1 # 32Mbit (4MB) flash size in esptool flash comma
|
||||
ET_FF ?= 80m # 80Mhz flash speed in esptool flash command
|
||||
ET_BLANK ?= 0x3FE000 # where to flash blank.bin
|
||||
ET_DEFAULTS ?= 0x3FC000 # where to flash esp_init_data_default.bin to default SDK settings
|
||||
CFLAGS += -mforce-l32
|
||||
else ifdef 2MB
|
||||
ESP_FLASH_MAX ?= 479232 # max bin file: 468KB
|
||||
ESP_FLASH_SIZE ?= 3 # 3->2MB (512KB+512KB)
|
||||
@ -46,34 +48,43 @@ ESP_FLASH_MAX ?= 479232 # max bin file: 468KB
|
||||
ESP_FLASH_SIZE ?= 0 # 0->512KB
|
||||
ESP_FLASH_MODE ?= 0 # 0->QIO
|
||||
ESP_FLASH_FREQ_DIV ?= 0 # 0->40Mhz
|
||||
ET_FS ?= 4m # 4Mbit (512KB) flash size in esptool flash command
|
||||
ET_FS ?= 512KB # 4Mbit (512KB) flash size in esptool flash command
|
||||
ET_FF ?= 40m # 40Mhz flash speed in esptool flash command
|
||||
ET_BLANK ?= 0x7E000 # where to flash blank.bin
|
||||
ET_DEFAULTS ?= 0x7C000 # where to flash esp_init_data_default.bin to default SDK settings
|
||||
endif
|
||||
|
||||
FLASH_BAUD ?= 115200 # The flash baud rate
|
||||
|
||||
ifdef FLASH_1MB
|
||||
ESP_FLASH_MAX = 831488 # max bin file: 812KB
|
||||
ESP_FLASH_SIZE = 2 # 2->1MB (1024)
|
||||
ESP_FLASH_MODE = 0 # 0->QIO, 2->DIO
|
||||
ESP_FLASH_FREQ_DIV = 15 # 15->80Mhz
|
||||
ET_FS = 1MB # 8Mbit (1MB) flash size in esptool flash command
|
||||
ET_FF = 80m # 80Mhz flash speed in esptool flash command
|
||||
ET_FM = dout # Valid values are keep, qio, qout, dio, dout
|
||||
ET_BLANK = 0xFE000 # where to flash blank.bin
|
||||
ET_DEFAULTS = 0xFC000 # where to flash esp_init_data_default.bin to default SDK settings
|
||||
DEFINES += -DFLASH_1MB
|
||||
CFLAGS += -mforce-l32
|
||||
endif
|
||||
|
||||
FLASH_BAUD ?= 115200 # The flash baud rate
|
||||
|
||||
|
||||
# move os_printf strings into flash to save RAM space
|
||||
DEFINES += -DUSE_OPTIMIZE_PRINTF
|
||||
DEFINES += -D__ETS__ -DICACHE_FLASH -DXTENSA -DUSE_US_TIMER
|
||||
LIBS += -lc -lgcc -lhal -lphy -lpp -lnet80211 -llwip_536 -lwpa -lmain -lpwm -lcrypto
|
||||
CFLAGS+= -fno-builtin \
|
||||
LIBS += -lc -lgcc -lhal -lphy -lpp -lnet80211 -llwip_536 -lwpa -lmain -lpwm -lcrypto
|
||||
CFLAGS += -fno-builtin \
|
||||
-Wno-maybe-uninitialized -Wno-old-style-declaration -Wno-conversion -Wno-unused-variable \
|
||||
-Wno-unused-parameter -Wno-ignored-qualifiers -Wno-discarded-qualifiers -Wno-float-conversion \
|
||||
-Wno-unused-parameter -Wno-ignored-qualifiers \
|
||||
-Wno-parentheses -Wno-type-limits -Wno-unused-function -Wno-unused-value \
|
||||
-Wl,EL -Wl,--gc-sections -nostdlib -mlongcalls -mtext-section-literals \
|
||||
-fno-guess-branch-probability -freorder-blocks-and-partition -fno-cse-follow-jumps \
|
||||
-fno-tree-fre -fno-ipa-sra -fno-signed-zeros -fno-trapping-math -fassociative-math \
|
||||
-fno-caller-saves -fno-move-loop-invariants -fno-tree-tail-merge -fno-tree-copy-prop
|
||||
|
||||
# only use mfore-l32 if 4MB board for now
|
||||
ifdef FLASH_4MB
|
||||
CFLAGS += -mforce-l32
|
||||
endif
|
||||
|
||||
#
|
||||
# The Root of the ESP8266_SDK distributed by Espressif
|
||||
# This must be supplied as a Make environment variable.
|
||||
ifndef ESP8266_SDK_ROOT
|
||||
|
||||
@ -19,18 +19,23 @@ USER2_BIN = espruino_esp8266_user2.bin
|
||||
USER1_ELF = espruino_esp8266_user1.elf
|
||||
USER2_ELF = espruino_esp8266_user2.elf
|
||||
PARTIAL = espruino_esp8266_partial.o
|
||||
|
||||
ifdef FLASH_4MB
|
||||
ESP_COMBINED_SIZE = 4096
|
||||
ESP_FLASH_ADDONS = $(ET_DEFAULTS) $(INIT_DATA) $(ET_BLANK) $(BLANK)
|
||||
LD_SCRIPT1 = ./targets/esp8266/eagle.app.v6.new.2048.ld
|
||||
LD_SCRIPT2 = ./targets/esp8266/eagle.app.v6.new.2048.ld
|
||||
LD_RENAME = --rename-section .text=.irom.text --rename-section .literal=.irom.literal
|
||||
else
|
||||
ESP_COMBINED_SIZE = 512
|
||||
LD_SCRIPT1 = ./targets/esp8266/eagle.app.v6.new.1024.app1.ld
|
||||
LD_SCRIPT2 = ./targets/esp8266/eagle.app.v6.new.1024.app2.ld
|
||||
LD_RENAME = --rename-section .text=.irom.text --rename-section .literal=.irom.literal
|
||||
endif
|
||||
|
||||
ifdef FLASH_1MB
|
||||
ESP_COMBINED_SIZE = 1024
|
||||
endif
|
||||
|
||||
LD_RENAME = --rename-section .text=.irom.text --rename-section .literal=.irom.literal
|
||||
ESP_COMBINED = $(PROJ_NAME)_combined_$(ESP_COMBINED_SIZE).bin
|
||||
APPGEN_TOOL = $(ESP8266_SDK_ROOT)/tools/gen_appbin.py
|
||||
BOOTLOADER = $(ESP8266_SDK_ROOT)/bin/boot_v1.6.bin
|
||||
|
||||
@ -76,7 +76,7 @@ htmlFile = open('functions.html', 'w')
|
||||
def html(s): htmlFile.write(s+"\n");
|
||||
|
||||
def htmlify(d,current):
|
||||
d = markdown.markdown(d, extensions=['urlize'])
|
||||
d = markdown.markdown(d, extensions=['markdown_include.include'])
|
||||
# replace <code> with newlines with pre
|
||||
idx = d.find("<code>")
|
||||
end = d.find("</code>", idx)
|
||||
|
||||
@ -272,7 +272,7 @@ int jshGetCharToTransmit(
|
||||
IOEventFlags device // The device being looked at for a transmission.
|
||||
) {
|
||||
if (DEVICE_HAS_DEVICE_STATE(device)) {
|
||||
JshSerialDeviceState *deviceState = &jshSerialDeviceStates[TO_SERIAL_DEVICE_STATE(device)];
|
||||
JshSerialDeviceState *deviceState = (JshSerialDeviceState*) &jshSerialDeviceStates[TO_SERIAL_DEVICE_STATE(device)];
|
||||
if ((*deviceState)&SDS_XOFF_PENDING) {
|
||||
(*deviceState) = ((*deviceState)&(~SDS_XOFF_PENDING)) | SDS_XOFF_SENT;
|
||||
return 19/*XOFF*/;
|
||||
@ -675,7 +675,7 @@ void jshSetFlowControlXON(IOEventFlags device, bool hostShouldTransmit) {
|
||||
if (!hostShouldTransmit)
|
||||
jshSerialFlowControlWasSet = true;
|
||||
int devIdx = TO_SERIAL_DEVICE_STATE(device);
|
||||
JshSerialDeviceState *deviceState = &jshSerialDeviceStates[devIdx];
|
||||
JshSerialDeviceState *deviceState = (JshSerialDeviceState*) &jshSerialDeviceStates[devIdx];
|
||||
if ((*deviceState) & SDS_FLOW_CONTROL_XON_XOFF) {
|
||||
if (hostShouldTransmit) {
|
||||
if (((*deviceState)&(SDS_XOFF_SENT|SDS_XON_PENDING)) == SDS_XOFF_SENT) {
|
||||
@ -719,7 +719,7 @@ JsVar *jshGetDeviceObject(IOEventFlags device) {
|
||||
void jshSetFlowControlEnabled(IOEventFlags device, bool software, Pin pinCTS) {
|
||||
if (DEVICE_HAS_DEVICE_STATE(device)) {
|
||||
int devIdx = TO_SERIAL_DEVICE_STATE(device);
|
||||
JshSerialDeviceState *deviceState = &jshSerialDeviceStates[devIdx];
|
||||
JshSerialDeviceState *deviceState = (JshSerialDeviceState*) &jshSerialDeviceStates[devIdx];
|
||||
if (software)
|
||||
(*deviceState) |= SDS_FLOW_CONTROL_XON_XOFF;
|
||||
else
|
||||
@ -758,7 +758,7 @@ Pin jshGetEventDataPin(IOEventFlags channel) {
|
||||
void jshSetErrorHandlingEnabled(IOEventFlags device, bool errorHandling) {
|
||||
if (DEVICE_HAS_DEVICE_STATE(device)) {
|
||||
int devIdx = TO_SERIAL_DEVICE_STATE(device);
|
||||
JshSerialDeviceState *deviceState = &jshSerialDeviceStates[devIdx];
|
||||
JshSerialDeviceState *deviceState = (JshSerialDeviceState*) &jshSerialDeviceStates[devIdx];
|
||||
if (errorHandling)
|
||||
(*deviceState) |= SDS_ERROR_HANDLING;
|
||||
else
|
||||
@ -769,7 +769,7 @@ void jshSetErrorHandlingEnabled(IOEventFlags device, bool errorHandling) {
|
||||
bool jshGetErrorHandlingEnabled(IOEventFlags device) {
|
||||
if (DEVICE_HAS_DEVICE_STATE(device)) {
|
||||
int devIdx = TO_SERIAL_DEVICE_STATE(device);
|
||||
JshSerialDeviceState *deviceState = &jshSerialDeviceStates[devIdx];
|
||||
JshSerialDeviceState *deviceState = (JshSerialDeviceState*) &jshSerialDeviceStates[devIdx];
|
||||
return (SDS_ERROR_HANDLING & *deviceState)!=0;
|
||||
} else
|
||||
return false;
|
||||
|
||||
@ -499,8 +499,8 @@ JsVar *jsfReadFile(JsfFileName name, int offset, int length) {
|
||||
if (offset<0) offset=0;
|
||||
uint32_t fileLen = jsfGetFileSize(&header);
|
||||
if (length<=0) length=fileLen;
|
||||
if (offset>fileLen) offset=fileLen;
|
||||
if (offset+length>fileLen) length=fileLen-offset;
|
||||
if ((unsigned) offset>fileLen) offset=fileLen;
|
||||
if ((unsigned) offset+length>fileLen) length=fileLen-offset;
|
||||
if (length<=0) return jsvNewFromEmptyString();
|
||||
// now increment address by offset
|
||||
addr += offset;
|
||||
@ -655,9 +655,9 @@ int jsfLoadFromFlash_readcb(uint32_t *cbdata) {
|
||||
jsfcbData *data = (jsfcbData*)cbdata;
|
||||
|
||||
if (data->address >= data->endAddress) return -1; // at end
|
||||
if (data->byteCount==0 || data->bufferCnt>=data->byteCount) {
|
||||
if ( (unsigned) data->byteCount==0 || data->bufferCnt>= (unsigned) data->byteCount) {
|
||||
data->byteCount = data->endAddress - data->address;
|
||||
if (data->byteCount > sizeof(data->buffer))
|
||||
if ( (unsigned) data->byteCount > sizeof(data->buffer))
|
||||
data->byteCount = sizeof(data->buffer);
|
||||
jshFlashRead(data->buffer, data->address, data->byteCount);
|
||||
data->bufferCnt = 0;
|
||||
|
||||
@ -3865,7 +3865,7 @@ void jsvDefragment() {
|
||||
JsVarRef defragVars[DEFRAGVARS];
|
||||
memset(defragVars, 0, sizeof(defragVars));
|
||||
int defragVarIdx = 0;
|
||||
for (int i=0;i<jsvGetMemoryTotal();i++) {
|
||||
for (unsigned int i=0;i<jsvGetMemoryTotal();i++) {
|
||||
JsVarRef vr = i+1;
|
||||
JsVar *v = _jsvGetAddressOf(vr);
|
||||
if ((v->flags&JSV_VARTYPEMASK)!=JSV_UNUSED) {
|
||||
@ -3895,7 +3895,7 @@ void jsvDefragment() {
|
||||
*defragTo = *defragFrom;
|
||||
defragFrom->flags = JSV_UNUSED;
|
||||
// find references!
|
||||
for (int i=0;i<jsvGetMemoryTotal();i++) {
|
||||
for ( unsigned int i=0;i<jsvGetMemoryTotal();i++) {
|
||||
JsVarRef vr = i+1;
|
||||
JsVar *v = _jsvGetAddressOf(vr);
|
||||
if ((v->flags&JSV_VARTYPEMASK)!=JSV_UNUSED) {
|
||||
|
||||
@ -1125,7 +1125,7 @@ Show fragmentation.
|
||||
*/
|
||||
void jswrap_e_dumpFragmentation() {
|
||||
int l = 0;
|
||||
for (int i=0;i<jsvGetMemoryTotal();i++) {
|
||||
for ( unsigned i=0;i<jsvGetMemoryTotal();i++) {
|
||||
JsVar *v = _jsvGetAddressOf(i+1);
|
||||
if ((v->flags&JSV_VARTYPEMASK)==JSV_UNUSED) {
|
||||
jsiConsolePrint(" ");
|
||||
@ -1161,7 +1161,7 @@ to visualise where memory is used.
|
||||
void jswrap_e_dumpVariables() {
|
||||
int l = 0;
|
||||
jsiConsolePrintf("ref,size,name,links...\n");
|
||||
for (int i=0;i<jsvGetMemoryTotal();i++) {
|
||||
for ( unsigned i=0;i<jsvGetMemoryTotal();i++) {
|
||||
JsVarRef ref = i+1;
|
||||
JsVar *v = _jsvGetAddressOf(ref);
|
||||
if ((v->flags&JSV_VARTYPEMASK)==JSV_UNUSED) continue;
|
||||
|
||||
@ -353,14 +353,14 @@ JsVar *jswrap_storage_open(JsVar *name, JsVar *modeVar) {
|
||||
char buf[64];
|
||||
bool foundEnd = false;
|
||||
while (!foundEnd) {
|
||||
int l = STORAGEFILE_CHUNKSIZE-offset;
|
||||
unsigned int l = STORAGEFILE_CHUNKSIZE-offset;
|
||||
if (l<=0) {
|
||||
foundEnd = true;
|
||||
break;
|
||||
}
|
||||
if (l>sizeof(buf)) l=sizeof(buf);
|
||||
if ( l>sizeof(buf)) l=sizeof(buf);
|
||||
jshFlashRead(buf, addr+offset, l);
|
||||
for (int i=0;i<l;i++) {
|
||||
for (unsigned int i=0;i<l;i++) {
|
||||
if (buf[i]==(char)255) {
|
||||
l = i;
|
||||
foundEnd = true;
|
||||
@ -480,11 +480,11 @@ JsVar *jswrap_storagefile_read_internal(JsVar *f, int len) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
int l = len;
|
||||
unsigned int l = len;
|
||||
if (l>sizeof(buf)) l=sizeof(buf);
|
||||
if (l>remaining) l=remaining;
|
||||
if (l> (unsigned) remaining) l=remaining;
|
||||
jshFlashRead(buf, addr+offset, l);
|
||||
for (int i=0;i<l;i++) {
|
||||
for (unsigned int i=0;i<l;i++) {
|
||||
if (buf[i]==(char)255) {
|
||||
// end of file!
|
||||
l = i;
|
||||
@ -597,7 +597,7 @@ void jswrap_storagefile_write(JsVar *f, JsVar *_data) {
|
||||
jsvUnLock(data);
|
||||
return;
|
||||
}
|
||||
if (len<remaining) {
|
||||
if (len< (unsigned) remaining) {
|
||||
DBG("Write Append Chunk\n");
|
||||
// Great, it all fits in
|
||||
jswrap_flash_write(data, addr+offset);
|
||||
|
||||
@ -43,3 +43,16 @@ esptool.py --port [/dev/ttyUSB0|COM1] --baud 460800 write_flash \
|
||||
0x0000 "boot_v1.6.bin" 0x1000 espruino_esp8266_user1.bin \
|
||||
0x3FC000 esp_init_data_default.bin 0x3FE000 blank.bin
|
||||
|
||||
|
||||
Special hints for a broken device after flashing
|
||||
------------------------------------------------
|
||||
|
||||
newer ESP01 like ESP01s have 1MB flash size
|
||||
|
||||
try different --flash_mode values like dio or dout
|
||||
|
||||
try to use a combined file to flash like
|
||||
espruino_..._combined_512.bin or
|
||||
espruino_..._combined_4096.bin
|
||||
|
||||
|
||||
|
||||
@ -1411,6 +1411,8 @@ JsVar *jshFlashGetFree() {
|
||||
if (!jsFreeFlash) return 0;
|
||||
|
||||
uint32_t map = system_get_flash_size_map();
|
||||
extern uint16_t espFlashKB; // in user_main,c
|
||||
|
||||
if ( map == 6 ) {
|
||||
addFlashArea(jsFreeFlash, 0x200000, 0x100000);
|
||||
addFlashArea(jsFreeFlash, 0x300000, 0x40000);
|
||||
@ -1419,9 +1421,11 @@ JsVar *jshFlashGetFree() {
|
||||
addFlashArea(jsFreeFlash, 0x3C0000, 0x40000-0x5000);
|
||||
return jsFreeFlash;
|
||||
}
|
||||
|
||||
// there is no flash for running on 1MB flash without FOTA
|
||||
if ( map == 2 && espFlashKB == 1024 && strcmp(PC_BOARD_ID, "ESP8266_4MB") == 0)
|
||||
return jsFreeFlash;
|
||||
|
||||
// need 1MB of flash to have more space...
|
||||
extern uint16_t espFlashKB; // in user_main,c
|
||||
if (espFlashKB > 512) {
|
||||
addFlashArea(jsFreeFlash, 0x80000, 0x1000);
|
||||
if (espFlashKB > 1024) {
|
||||
|
||||
@ -236,7 +236,13 @@ JsVar *jswrap_ESP8266_getState() {
|
||||
uint32_t map = system_get_flash_size_map();
|
||||
extern char *flash_maps[]; // in user_main.c
|
||||
extern uint16_t flash_kb[]; // in user_main.c
|
||||
jsvObjectSetChildAndUnLock(esp8266State, "flashMap", jsvNewFromString(flash_maps[map]));
|
||||
extern char *flash_maps_alt[]; // in user_main.c
|
||||
|
||||
jsvObjectSetChildAndUnLock(esp8266State, "flashMap", jsvNewFromString(
|
||||
// ( map == 2 && flash_kb[map] == 1024 && is4MB ? flash_maps_alt[map] : flash_maps[map] )));
|
||||
( map == 2 && flash_kb[map] == 1024 && strcmp(PC_BOARD_ID, "ESP8266_4MB") == 0) ? flash_maps_alt[map] : flash_maps[map] ));
|
||||
// ( map == 2 && flash_kb[map] == 1024 ? flash_maps_alt[map] : flash_maps[map] )));
|
||||
|
||||
jsvObjectSetChildAndUnLock(esp8266State, "flashKB", jsvNewFromInteger(flash_kb[map]));
|
||||
|
||||
uint32_t fid = spi_flash_get_id();
|
||||
|
||||
@ -27,7 +27,6 @@ typedef long long int64_t;
|
||||
#include <jsinteractive.h>
|
||||
#include <jswrap_esp8266_network.h>
|
||||
#include <jswrap_esp8266.h>
|
||||
#include <ota.h>
|
||||
#include <log.h>
|
||||
#include "ESP8266_board.h"
|
||||
|
||||
@ -90,6 +89,10 @@ char *flash_maps[] = { // used in jswrap_ESP8266_network.c
|
||||
"512KB:256/256", "256KB", "1MB:512/512", "2MB:512/512", "4MB:512/512",
|
||||
"2MB:1024/1024", "4MB:1024/1024"
|
||||
};
|
||||
char *flash_maps_alt[] = { // used in jswrap_ESP8266_network.c
|
||||
"512KB:256/256", "256KB", "1MB:1024", "2MB:1024", "4MB:512/512",
|
||||
"2MB:1024/1024", "4MB:1024/1024"
|
||||
};
|
||||
uint16_t flash_kb[] = { // used in jswrap_ESP8266_network.c
|
||||
512, 256, 1024, 2048, 4096, 2048, 4096,
|
||||
};
|
||||
@ -122,8 +125,9 @@ void jshPrintBanner() {
|
||||
os_printf("Espruino "JS_VERSION"\nFlash map %s, manuf 0x%lx chip 0x%lx\n",
|
||||
flash_maps[map], (long unsigned int) (fid & 0xff), (long unsigned int)chip);
|
||||
jsiConsolePrintf(
|
||||
"Flash map %s, manuf 0x%x chip 0x%x\n",
|
||||
flash_maps[map], fid & 0xff, chip);
|
||||
"Flash map %s, manuf 0x%x chip 0x%x\n",
|
||||
(( map == 2 && flash_kb[map] == 1024 && strcmp(PC_BOARD_ID, "ESP8266_4MB") == 0) ? flash_maps_alt[map] : flash_maps[map]),
|
||||
fid & 0xff, chip);
|
||||
if ((chip == 0x4013 && map != 0) || (chip == 0x4016 && map != 4 && map != 6)) {
|
||||
jsiConsolePrint("WARNING: *** Your flash chip does not match your flash map ***\n");
|
||||
}
|
||||
@ -238,7 +242,11 @@ static void mainLoop() {
|
||||
*/
|
||||
static void initDone() {
|
||||
os_printf("> initDone\n");
|
||||
|
||||
#ifndef NO_FOTA
|
||||
#include <ota.h>
|
||||
otaInit(88);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
extern void gdbstub_init();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user