Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 5 additions & 26 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ DEBUG_FLAGS ?= flashcfg httpclient httpserver ota pingwdt sleep rtc tcpserver de
DEBUG_IP ?= # 192.168.0.1
DEBUG_PORT ?= 48879

GDB ?= false
OTA ?= true
SSL ?= false
SLEEP ?= false
Expand Down Expand Up @@ -105,21 +104,16 @@ SRC_DRIVERS_DIR = src/drivers
SRC_EXTRA_PORT_DRIVERS_DIR = src/extra
SRC_EXTERNAL_PORT_DRIVERS_DIR = $(EXTERNAL_PORT_DRIVERS_DIR)
SRC_EXTERNAL_DRIVERS_DIR = $(EXTERNAL_DRIVERS_DIR)
GDB_DIR = gdbstub
BUILD_DIR = build

INC = $(SRC_MAIN_DIR) $(SDK_BASE)/include $(GDB_DIR)
INC = $(SRC_MAIN_DIR) $(SDK_BASE)/include
LIB = c gcc hal pp phy net80211 lwip wpa crypto upgrade m main
CFLAGS = -Wpointer-arith -Wall -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals \
-ffunction-sections -fdata-sections -mforce-l32 -Wmissing-prototypes -fno-builtin-printf \
-fno-guess-branch-probability -freorder-blocks-and-partition -fno-cse-follow-jumps \
-D__ets__ -DICACHE_FLASH -DUSE_OPTIMIZE_PRINTF \
-DFLASH_CONFIG_ADDR=$(FLASH_CONFIG_ADDR)
LDFLAGS = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static -L$(SDK_BASE)/lib -Wl,--gc-sections

ifeq ($(GDB),true)
DEBUG = true
endif
-D__ets__ -DICACHE_FLASH -DUSE_OPTIMIZE_PRINTF -DFLASH_CONFIG_ADDR=$(FLASH_CONFIG_ADDR) \
-Os -O2
LDFLAGS = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static -L$(SDK_BASE)/lib -Wl,--gc-sections -Os -O2

ifneq ($(DEBUG),true)
CFLAGS += -Werror
Expand Down Expand Up @@ -188,7 +182,6 @@ SRC_DRIVERS_FILES = $(wildcard $(SRC_DRIVERS_DIR)/*.c)
SRC_EXTERNAL_DRIVERS_FILES = $(wildcard $(SRC_EXTERNAL_DRIVERS_DIR)/*.c)
SRC_EXTRA_PORT_DRIVERS_FILES = $(foreach p,$(EXTRA_PORT_DRIVERS),$(SRC_EXTRA_PORT_DRIVERS_DIR)/$(p).c)
SRC_EXTERNAL_PORT_DRIVERS_FILES = $(foreach p,$(EXTERNAL_PORT_DRIVERS),$(SRC_EXTERNAL_PORT_DRIVERS_DIR)/$(p).c)
SRC_GDB_FILES = $(wildcard $(GDB_DIR)/*.c)

OBJ_FILES = $(SRC_MAIN_FILES:$(SRC_MAIN_DIR)/%.c=$(BUILD_DIR)/%.o) \
$(SRC_ESPGOODIES_FILES:$(SRC_MAIN_DIR)/%.c=$(BUILD_DIR)/%.o) \
Expand All @@ -197,17 +190,7 @@ OBJ_FILES = $(SRC_MAIN_FILES:$(SRC_MAIN_DIR)/%.c=$(BUILD_DIR)/%.o) \
$(SRC_EXTERNAL_DRIVERS_FILES:$(SRC_EXTERNAL_DRIVERS_DIR)/%.c=$(BUILD_DIR)/external/drivers/%.o) \
$(SRC_EXTRA_PORT_DRIVERS_FILES:$(SRC_MAIN_DIR)/%.c=$(BUILD_DIR)/%.o) \
$(SRC_EXTERNAL_PORT_DRIVERS_FILES:$(SRC_EXTERNAL_PORT_DRIVERS_DIR)/%.c=$(BUILD_DIR)/external/ports/%.o)
VPATH = $(SRC_MAIN_DIR) $(GDB_DIR)

ifeq ($(GDB),true)
CFLAGS += -g -ggdb -Og -D_GDB -fPIE -fPIC
LDFLAGS += -g -ggdb -Og -fPIE -fPIC
ASFLAGS += -g -ggdb -Og -fPIE -fPIC -mlongcalls
OBJ_FILES += $(BUILD_DIR)/gdbstub.o $(BUILD_DIR)/gdbstub-entry.o
else
CFLAGS += -Os -O2
LDLAGS += -Os -O2
endif
VPATH = $(SRC_MAIN_DIR)

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

$(BUILD_DIR)/gdbstub-entry.o: $(GDB_DIR)/gdbstub-entry.S
$(vecho) "AS $<"
$(Q) $(CC) $(ASFLAGS) -c -o $@ $<

$(BUILD_DIR)/$(APP).a: $(OBJ_FILES)
$(vecho) "AR $@"
$(Q) $(AR) cru $@ $^
Expand Down
9 changes: 3 additions & 6 deletions builder/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,11 @@ ADD https://qtoggle.s3.amazonaws.com/various/xtensa-lx106-elf.tar.xz /opt
RUN cd /opt && tar xvf xtensa-lx106-elf.tar.xz && rm xtensa-lx106-elf.tar.xz

# esp8266 sdk
ADD fix-sdk.sh /opt
RUN git clone https://github.com/espressif/ESP8266_NONOS_SDK.git /opt/esp-nonos-sdk && \
cd /opt/esp-nonos-sdk && \
git checkout 1848ef1 && \
ln -s /opt/esp-nonos-sdk/bin/boot_v1.7.bin /opt/esp-nonos-sdk/bin/boot.bin && \
ln -s /opt/esp-nonos-sdk/bin/esp_init_data_default_v08.bin /opt/esp-nonos-sdk/bin/esp_init_data_default.bin && \
sed -ri 's/ESP_SDK_VERSION_NUMBER\s+0x020200/ESP_SDK_VERSION_NUMBER 0x020202/' /opt/esp-nonos-sdk/include/version.h && \
sed -ri 's/ESP_SDK_VERSION_PATCH\s+0/ESP_SDK_VERSION_PATCH 2/' /opt/esp-nonos-sdk/include/version.h && \
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 && \
git checkout a0b1311 && \
/opt/fix-sdk.sh . && \
rm -rf .git

ENV PATH="/opt/xtensa-lx106-elf/bin:${PATH}"
Expand Down
73 changes: 73 additions & 0 deletions builder/fix-sdk.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#!/bin/bash

function show_usage() {
echo "Usage: $0 <SDK_BASE>"
echo "Applies various fixes to an existing ESP8266 non-OS SDK."
}

SDK_BASE="$1"

if [[ -z "${SDK_BASE}" ]]; then
show_usage
exit 1
fi

if ! grep ' int16;' ${SDK_BASE}/include/c_types.h &>/dev/null; then
echo "Adding int16 to include/c_types.h"
sed -ri 's/(typedef signed short\s+sint16;)/\1\ntypedef signed short int16;/' \
${SDK_BASE}/include/c_types.h
fi

if ! grep ' int64;' ${SDK_BASE}/include/c_types.h &>/dev/null; then
echo "Adding int64 to include/c_types.h"
sed -ri 's/(typedef signed long long\s+sint64;)/\1\ntypedef signed long long int64;/' \
${SDK_BASE}/include/c_types.h
fi

if ! grep 'ets_vsnprintf' ${SDK_BASE}/include/osapi.h &>/dev/null; then
echo "Adding ets_vsnprintf to include/osapi.h"
sed -ri 's/(#include <string.h>)/\1\n#include <stdarg.h>/' ${SDK_BASE}/include/osapi.h
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)));/' \
${SDK_BASE}/include/osapi.h
sed -ri 's/(#define os_snprintf\(.*)/\1\n\n#define os_vsnprintf ets_vsnprintf/' ${SDK_BASE}/include/osapi.h
fi

if grep 'ets_intr_lock' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld &>/dev/null; then
echo "Removing ets_intr_lock from ld/eagle.rom.addr.v6.ld"
grep -v 'ets_intr_lock' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld > ${SDK_BASE}/ld/eagle.rom.addr.v6.ld.bak
mv ${SDK_BASE}/ld/eagle.rom.addr.v6.ld.bak ${SDK_BASE}/ld/eagle.rom.addr.v6.ld
fi

if grep 'ets_intr_unlock' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld &>/dev/null; then
echo "Removing ets_intr_unlock from ld/eagle.rom.addr.v6.ld"
grep -v 'ets_intr_unlock' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld > ${SDK_BASE}/ld/eagle.rom.addr.v6.ld.bak
mv ${SDK_BASE}/ld/eagle.rom.addr.v6.ld.bak ${SDK_BASE}/ld/eagle.rom.addr.v6.ld
fi

if ! grep 'ets_post_rom' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld &>/dev/null; then
echo "Renaming ets_post to ets_post_rom in ld/eagle.rom.addr.v6.ld"
sed -ri 's/ets_post/ets_post_rom/' ${SDK_BASE}/ld/eagle.rom.addr.v6.ld
fi

if ! [[ -f ${SDK_BASE}/bin/boot.bin ]]; then
echo "Symlinking bin/boot.bin to bin/boot_v1.7.bin"
ln -s boot_v1.7.bin ${SDK_BASE}/bin/boot.bin
fi

if ! [[ -f ${SDK_BASE}/bin/esp_init_data_default.bin ]]; then
echo "Symlinking bin/esp_init_data_default.bin to bin/esp_init_data_default_v08.bin"
ln -s esp_init_data_default_v08.bin ${SDK_BASE}/bin/esp_init_data_default.bin
fi

if grep '0x020200' ${SDK_BASE}/include/version.h &>/dev/null; then
echo "Patching version to 2.2.2 in include/version.h"
sed -ri 's/ESP_SDK_VERSION_NUMBER\s+0x020200/ESP_SDK_VERSION_NUMBER 0x020202/' ${SDK_BASE}/include/version.h
sed -ri 's/ESP_SDK_VERSION_PATCH\s+0/ESP_SDK_VERSION_PATCH 2/' ${SDK_BASE}/include/version.h
version=$(cd ${SDK_BASE} && git describe --tags 2>/dev/null)
if [[ -n "${version}" ]]; then
echo "Setting version string to $version in include/version.h"
sed -ri 's/ESP_SDK_VERSION_STRING\s+"2.2.0"/ESP_SDK_VERSION_STRING "'${version}'"/' ${SDK_BASE}/include/version.h
fi
fi

echo "Done"
24 changes: 0 additions & 24 deletions gdbstub/License

This file was deleted.

45 changes: 0 additions & 45 deletions gdbstub/Makefile

This file was deleted.

69 changes: 0 additions & 69 deletions gdbstub/README.md

This file was deleted.

6 changes: 0 additions & 6 deletions gdbstub/gdbcmds

This file was deleted.

64 changes: 0 additions & 64 deletions gdbstub/gdbstub-cfg.h

This file was deleted.

Loading