Skip to content

Commit 986b7f2

Browse files
authored
Merge pull request #27 from qtoggle/some-sdk-fixes
Some SDK fixes
2 parents 0023163 + 5eeb0e4 commit 986b7f2

37 files changed

+232
-1535
lines changed

Makefile

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ DEBUG_FLAGS ?= flashcfg httpclient httpserver ota pingwdt sleep rtc tcpserver de
66
DEBUG_IP ?= # 192.168.0.1
77
DEBUG_PORT ?= 48879
88

9-
GDB ?= false
109
OTA ?= true
1110
SSL ?= false
1211
SLEEP ?= false
@@ -105,21 +104,16 @@ SRC_DRIVERS_DIR = src/drivers
105104
SRC_EXTRA_PORT_DRIVERS_DIR = src/extra
106105
SRC_EXTERNAL_PORT_DRIVERS_DIR = $(EXTERNAL_PORT_DRIVERS_DIR)
107106
SRC_EXTERNAL_DRIVERS_DIR = $(EXTERNAL_DRIVERS_DIR)
108-
GDB_DIR = gdbstub
109107
BUILD_DIR = build
110108

111-
INC = $(SRC_MAIN_DIR) $(SDK_BASE)/include $(GDB_DIR)
109+
INC = $(SRC_MAIN_DIR) $(SDK_BASE)/include
112110
LIB = c gcc hal pp phy net80211 lwip wpa crypto upgrade m main
113111
CFLAGS = -Wpointer-arith -Wall -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals \
114112
-ffunction-sections -fdata-sections -mforce-l32 -Wmissing-prototypes -fno-builtin-printf \
115113
-fno-guess-branch-probability -freorder-blocks-and-partition -fno-cse-follow-jumps \
116-
-D__ets__ -DICACHE_FLASH -DUSE_OPTIMIZE_PRINTF \
117-
-DFLASH_CONFIG_ADDR=$(FLASH_CONFIG_ADDR)
118-
LDFLAGS = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static -L$(SDK_BASE)/lib -Wl,--gc-sections
119-
120-
ifeq ($(GDB),true)
121-
DEBUG = true
122-
endif
114+
-D__ets__ -DICACHE_FLASH -DUSE_OPTIMIZE_PRINTF -DFLASH_CONFIG_ADDR=$(FLASH_CONFIG_ADDR) \
115+
-Os -O2
116+
LDFLAGS = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static -L$(SDK_BASE)/lib -Wl,--gc-sections -Os -O2
123117

124118
ifneq ($(DEBUG),true)
125119
CFLAGS += -Werror
@@ -188,7 +182,6 @@ SRC_DRIVERS_FILES = $(wildcard $(SRC_DRIVERS_DIR)/*.c)
188182
SRC_EXTERNAL_DRIVERS_FILES = $(wildcard $(SRC_EXTERNAL_DRIVERS_DIR)/*.c)
189183
SRC_EXTRA_PORT_DRIVERS_FILES = $(foreach p,$(EXTRA_PORT_DRIVERS),$(SRC_EXTRA_PORT_DRIVERS_DIR)/$(p).c)
190184
SRC_EXTERNAL_PORT_DRIVERS_FILES = $(foreach p,$(EXTERNAL_PORT_DRIVERS),$(SRC_EXTERNAL_PORT_DRIVERS_DIR)/$(p).c)
191-
SRC_GDB_FILES = $(wildcard $(GDB_DIR)/*.c)
192185

193186
OBJ_FILES = $(SRC_MAIN_FILES:$(SRC_MAIN_DIR)/%.c=$(BUILD_DIR)/%.o) \
194187
$(SRC_ESPGOODIES_FILES:$(SRC_MAIN_DIR)/%.c=$(BUILD_DIR)/%.o) \
@@ -197,17 +190,7 @@ OBJ_FILES = $(SRC_MAIN_FILES:$(SRC_MAIN_DIR)/%.c=$(BUILD_DIR)/%.o) \
197190
$(SRC_EXTERNAL_DRIVERS_FILES:$(SRC_EXTERNAL_DRIVERS_DIR)/%.c=$(BUILD_DIR)/external/drivers/%.o) \
198191
$(SRC_EXTRA_PORT_DRIVERS_FILES:$(SRC_MAIN_DIR)/%.c=$(BUILD_DIR)/%.o) \
199192
$(SRC_EXTERNAL_PORT_DRIVERS_FILES:$(SRC_EXTERNAL_PORT_DRIVERS_DIR)/%.c=$(BUILD_DIR)/external/ports/%.o)
200-
VPATH = $(SRC_MAIN_DIR) $(GDB_DIR)
201-
202-
ifeq ($(GDB),true)
203-
CFLAGS += -g -ggdb -Og -D_GDB -fPIE -fPIC
204-
LDFLAGS += -g -ggdb -Og -fPIE -fPIC
205-
ASFLAGS += -g -ggdb -Og -fPIE -fPIC -mlongcalls
206-
OBJ_FILES += $(BUILD_DIR)/gdbstub.o $(BUILD_DIR)/gdbstub-entry.o
207-
else
208-
CFLAGS += -Os -O2
209-
LDLAGS += -Os -O2
210-
endif
193+
VPATH = $(SRC_MAIN_DIR)
211194

212195
ifneq ($(EXTRA_PORT_DRIVERS),)
213196
INCLUDE_EXTRA_PORT_DRIVERS = $(foreach p,$(EXTRA_PORT_DRIVERS),-include $(SRC_EXTRA_PORT_DRIVERS_DIR)/$(p).h)
@@ -339,10 +322,6 @@ $(BUILD_DIR)/external/drivers/%.o: $(SRC_EXTERNAL_DRIVERS_DIR)/%.c
339322
@$(MD) -p $(@D)
340323
$(Q) $(CC) $(INC) $(CFLAGS) -c $< -o $@
341324

342-
$(BUILD_DIR)/gdbstub-entry.o: $(GDB_DIR)/gdbstub-entry.S
343-
$(vecho) "AS $<"
344-
$(Q) $(CC) $(ASFLAGS) -c -o $@ $<
345-
346325
$(BUILD_DIR)/$(APP).a: $(OBJ_FILES)
347326
$(vecho) "AR $@"
348327
$(Q) $(AR) cru $@ $^

builder/Dockerfile

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,11 @@ ADD https://qtoggle.s3.amazonaws.com/various/xtensa-lx106-elf.tar.xz /opt
2626
RUN cd /opt && tar xvf xtensa-lx106-elf.tar.xz && rm xtensa-lx106-elf.tar.xz
2727

2828
# esp8266 sdk
29+
ADD fix-sdk.sh /opt
2930
RUN git clone https://github.com/espressif/ESP8266_NONOS_SDK.git /opt/esp-nonos-sdk && \
3031
cd /opt/esp-nonos-sdk && \
31-
git checkout 1848ef1 && \
32-
ln -s /opt/esp-nonos-sdk/bin/boot_v1.7.bin /opt/esp-nonos-sdk/bin/boot.bin && \
33-
ln -s /opt/esp-nonos-sdk/bin/esp_init_data_default_v08.bin /opt/esp-nonos-sdk/bin/esp_init_data_default.bin && \
34-
sed -ri 's/ESP_SDK_VERSION_NUMBER\s+0x020200/ESP_SDK_VERSION_NUMBER 0x020202/' /opt/esp-nonos-sdk/include/version.h && \
35-
sed -ri 's/ESP_SDK_VERSION_PATCH\s+0/ESP_SDK_VERSION_PATCH 2/' /opt/esp-nonos-sdk/include/version.h && \
36-
sed -ri 's/ESP_SDK_VERSION_STRING\s+"2.2.0"/ESP_SDK_VERSION_STRING "2.2.x-git1848ef1"/' /opt/esp-nonos-sdk/include/version.h && \
32+
git checkout a0b1311 && \
33+
/opt/fix-sdk.sh . && \
3734
rm -rf .git
3835

3936
ENV PATH="/opt/xtensa-lx106-elf/bin:${PATH}"

builder/fix-sdk.sh

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#!/bin/bash
2+
3+
function show_usage() {
4+
echo "Usage: $0 <SDK_BASE>"
5+
echo "Applies various fixes to an existing ESP8266 non-OS SDK."
6+
}
7+
8+
SDK_BASE="$1"
9+
10+
if [[ -z "${SDK_BASE}" ]]; then
11+
show_usage
12+
exit 1
13+
fi
14+
15+
if ! grep ' int16;' ${SDK_BASE}/include/c_types.h &>/dev/null; then
16+
echo "Adding int16 to include/c_types.h"
17+
sed -ri 's/(typedef signed short\s+sint16;)/\1\ntypedef signed short int16;/' \
18+
${SDK_BASE}/include/c_types.h
19+
fi
20+
21+
if ! grep ' int64;' ${SDK_BASE}/include/c_types.h &>/dev/null; then
22+
echo "Adding int64 to include/c_types.h"
23+
sed -ri 's/(typedef signed long long\s+sint64;)/\1\ntypedef signed long long int64;/' \
24+
${SDK_BASE}/include/c_types.h
25+
fi
26+
27+
if ! grep 'ets_vsnprintf' ${SDK_BASE}/include/osapi.h &>/dev/null; then
28+
echo "Adding ets_vsnprintf to include/osapi.h"
29+
sed -ri 's/(#include <string.h>)/\1\n#include <stdarg.h>/' ${SDK_BASE}/include/osapi.h
30+
sed -ri 's/(int ets_snprintf.*)/\1\nint ets_vsnprintf(char *str, size_t size, const char *format, va_list args) __attribute__ ((format (printf, 3, 0)));/' \
31+
${SDK_BASE}/include/osapi.h
32+
sed -ri 's/(#define os_snprintf\(.*)/\1\n\n#define os_vsnprintf ets_vsnprintf/' ${SDK_BASE}/include/osapi.h
33+
fi
34+
35+
if grep 'ets_intr_lock' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld &>/dev/null; then
36+
echo "Removing ets_intr_lock from ld/eagle.rom.addr.v6.ld"
37+
grep -v 'ets_intr_lock' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld > ${SDK_BASE}/ld/eagle.rom.addr.v6.ld.bak
38+
mv ${SDK_BASE}/ld/eagle.rom.addr.v6.ld.bak ${SDK_BASE}/ld/eagle.rom.addr.v6.ld
39+
fi
40+
41+
if grep 'ets_intr_unlock' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld &>/dev/null; then
42+
echo "Removing ets_intr_unlock from ld/eagle.rom.addr.v6.ld"
43+
grep -v 'ets_intr_unlock' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld > ${SDK_BASE}/ld/eagle.rom.addr.v6.ld.bak
44+
mv ${SDK_BASE}/ld/eagle.rom.addr.v6.ld.bak ${SDK_BASE}/ld/eagle.rom.addr.v6.ld
45+
fi
46+
47+
if ! grep 'ets_post_rom' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld &>/dev/null; then
48+
echo "Renaming ets_post to ets_post_rom in ld/eagle.rom.addr.v6.ld"
49+
sed -ri 's/ets_post/ets_post_rom/' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld
50+
fi
51+
52+
if ! [[ -f ${SDK_BASE}/bin/boot.bin ]]; then
53+
echo "Symlinking bin/boot.bin to bin/boot_v1.7.bin"
54+
ln -s boot_v1.7.bin ${SDK_BASE}/bin/boot.bin
55+
fi
56+
57+
if ! [[ -f ${SDK_BASE}/bin/esp_init_data_default.bin ]]; then
58+
echo "Symlinking bin/esp_init_data_default.bin to bin/esp_init_data_default_v08.bin"
59+
ln -s esp_init_data_default_v08.bin ${SDK_BASE}/bin/esp_init_data_default.bin
60+
fi
61+
62+
if grep '0x020200' ${SDK_BASE}/include/version.h &>/dev/null; then
63+
echo "Patching version to 2.2.2 in include/version.h"
64+
sed -ri 's/ESP_SDK_VERSION_NUMBER\s+0x020200/ESP_SDK_VERSION_NUMBER 0x020202/' ${SDK_BASE}/include/version.h
65+
sed -ri 's/ESP_SDK_VERSION_PATCH\s+0/ESP_SDK_VERSION_PATCH 2/' ${SDK_BASE}/include/version.h
66+
version=$(cd ${SDK_BASE} && git describe --tags 2>/dev/null)
67+
if [[ -n "${version}" ]]; then
68+
echo "Setting version string to $version in include/version.h"
69+
sed -ri 's/ESP_SDK_VERSION_STRING\s+"2.2.0"/ESP_SDK_VERSION_STRING "'${version}'"/' ${SDK_BASE}/include/version.h
70+
fi
71+
fi
72+
73+
echo "Done"

gdbstub/License

Lines changed: 0 additions & 24 deletions
This file was deleted.

gdbstub/Makefile

Lines changed: 0 additions & 45 deletions
This file was deleted.

gdbstub/README.md

Lines changed: 0 additions & 69 deletions
This file was deleted.

gdbstub/gdbcmds

Lines changed: 0 additions & 6 deletions
This file was deleted.

gdbstub/gdbstub-cfg.h

Lines changed: 0 additions & 64 deletions
This file was deleted.

0 commit comments

Comments
 (0)