diff --git a/.gitignore b/.gitignore index 59ad636..a9264d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ -/.sdk_patch_* -/esp_iot_sdk_v*/ -/esp_iot_sdk_v*.zip -/ESP8266_NONOS_SDK_V1.5.1_16_01_08.zip -/sdk -/xtensa-lx106-elf/ +.sdk_patch_* +sdk +xtensa-lx106-elf/ +.sdk_dir_* +esp_nonos_sdk_* +ESP8266_NONOS_SDK-*.zip +*.o diff --git a/Makefile b/Makefile index 9ad6f95..b7f2802 100644 --- a/Makefile +++ b/Makefile @@ -4,17 +4,34 @@ # which can be used with multiple SDK versions. STANDALONE = y +GCC_VERSION = 7.3.0 +CT_GCC_VERSION = 7_3_0 + # Directory to install toolchain to, by default inside current dir. TOOLCHAIN = $(TOP)/xtensa-lx106-elf +# NOTE: Leave this as-is and use full shas above to simplfiy things. +# Instead of all the makefile hacks that break every time, just +# always call it master, then d/l the SDK as a zip based on SHA. +VENDOR_SDK = master -# Vendor SDK version to install, see VENDOR_SDK_ZIP_* vars below -# for supported versions. -VENDOR_SDK = 2.1.0-18-g61248df - -.PHONY: crosstool-NG toolchain libhal libcirom sdk +########################### SDK Commit List ############################ +## Pre-Krack - 10aea1782b2cac518a1a30eb8b4e046ed76c8d7c # +## Krack patch - 61248df5f6d45d130313b412f7492f581fd4cadf # +## master@10d7772 - 10d777260264f658965c5f323ae7f6741074d50e # +## master@4899e50 - 4671b17cc9fc6ed6787c2d310daf8accccf29c8d # +## master@4899e50 - 0e2308ff41578f6ad9a73f805ac4a441747d2a8e # +## master@cab958d - 779294b0a220a6bd72c73963d890c2f1d9116b5e # +## ------------------------- v2.2.0 release -------------------------- # +## master@fcdedd6 - f2c63854331c8d46f7ffe944f6697ab204a54379 <-- curr. # +######################################################################## +REPO_TAG :=v2.2.1 +VENDOR_FULL_SHA :=3ea90190d3092131505c97ac0ddb41d5e8bedefc +VENDOR_GIT_ZIP :="ESP8266_NONOS_SDK-$(VENDOR_FULL_SHA).zip" +VENDOR_ZIP_DL_URI :="https://github.com/someburner/ESP8266_NONOS_SDK/releases/download/$(REPO_TAG)/$(VENDOR_GIT_ZIP)" +.PHONY: crosstool-ng esptool toolchain _libhal libs sdk liblwip postbuild TOP = $(PWD) SHELL = /bin/bash @@ -22,16 +39,23 @@ PATCH = patch -b -N UNZIP = unzip -q -o VENDOR_SDK_ZIP = $(VENDOR_SDK_ZIP_$(VENDOR_SDK)) VENDOR_SDK_DIR = $(VENDOR_SDK_DIR_$(VENDOR_SDK)) +VENDOR_ZIP_DIR = $(VENDOR_ZIP_DIR_$(VENDOR_SDK)) -VENDOR_SDK_DIR_2.1.0-18-g61248df = ESP8266_NONOS_SDK-2.1.0-18-g61248df +VENDOR_SDK_ZIP_master = ESP8266_NONOS_SDK-master.zip +VENDOR_ZIP_DIR_master = ESP8266_NONOS_SDK-master +VENDOR_SDK_DIR_master = esp_nonos_sdk_master VENDOR_SDK_ZIP_2.1.0 = ESP8266_NONOS_SDK-2.1.0.zip -VENDOR_SDK_DIR_2.1.0 = ESP8266_NONOS_SDK-2.1.0 +VENDOR_ZIP_DIR_2.1.0 = ESP8266_NONOS_SDK-2.1.0 +VENDOR_SDK_DIR_2.1.0 = esp_nonos_sdk_v2.1.0 VENDOR_SDK_ZIP_2.0.0 = ESP8266_NONOS_SDK_V2.0.0_16_08_10.zip -VENDOR_SDK_DIR_2.0.0 = ESP8266_NONOS_SDK_V2.0.0_16_08_10 +VENDOR_ZIP_DIR_2.0.0 = ESP8266_NONOS_SDK_V2.0.0_16_08_10 +VENDOR_SDK_DIR_2.0.0 = esp_nonos_sdk_v2.0.0 VENDOR_SDK_ZIP_1.5.4 = ESP8266_NONOS_SDK_V1.5.4_16_05_20.zip -VENDOR_SDK_DIR_1.5.4 = ESP8266_NONOS_SDK_V1.5.4_16_05_20 +VENDOR_ZIP_DIR_1.5.4 = ESP8266_NONOS_SDK_V1.5.4_16_05_20 +VENDOR_SDK_DIR_1.5.4 = esp_nonos_sdk_v1.5.4 VENDOR_SDK_ZIP_1.5.3 = ESP8266_NONOS_SDK_V1.5.3_16_04_18.zip -VENDOR_SDK_DIR_1.5.3 = ESP8266_NONOS_SDK_V1.5.3_16_04_18/ESP8266_NONOS_SDK +VENDOR_ZIP_DIR_1.5.3 = ESP8266_NONOS_SDK_V1.5.3_16_04_18/ESP8266_NONOS_SDK +VENDOR_SDK_DIR_1.5.3 = esp_nonos_sdk_v1.5.3 VENDOR_SDK_ZIP_1.5.2 = ESP8266_NONOS_SDK_V1.5.2_16_01_29.zip VENDOR_SDK_DIR_1.5.2 = esp_iot_sdk_v1.5.2 VENDOR_SDK_ZIP_1.5.1 = ESP8266_NONOS_SDK_V1.5.1_16_01_08.zip @@ -72,9 +96,7 @@ VENDOR_SDK_DIR_0.9.3 = esp_iot_sdk_v0.9.3 VENDOR_SDK_ZIP_0.9.2 = esp_iot_sdk_v0.9.2_14_10_24.zip VENDOR_SDK_DIR_0.9.2 = esp_iot_sdk_v0.9.2 - - -all: esptool libcirom standalone sdk sdk_patch $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libhal.a $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc lwip +all: toolchain esptool sdk libs liblwip postbuild @echo @echo "Xtensa toolchain is built, to use it:" @echo @@ -91,56 +113,42 @@ else @echo endif -standalone: sdk sdk_patch toolchain -ifeq ($(STANDALONE),y) - @echo "Installing vendor SDK headers into toolchain sysroot" - @cp -Rf sdk/include/* $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/include/ - @echo "Installing vendor SDK libs into toolchain sysroot" - @cp -Rf sdk/lib/* $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/ - @echo "Installing vendor SDK linker scripts into toolchain sysroot" - @sed -e 's/\r//' sdk/ld/eagle.app.v6.ld | sed -e s@../ld/@@ >$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/eagle.app.v6.ld - @sed -e 's/\r//' sdk/ld/eagle.rom.addr.v6.ld >$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/eagle.rom.addr.v6.ld -endif +esptool: $(TOOLCHAIN)/bin/esptool.py -clean: clean-sdk - $(MAKE) -C crosstool-NG clean MAKELEVEL=0 - -rm -rf crosstool-NG/.build/src - -rm -f crosstool-NG/local-patches/gcc/4.8.5/1000-* - -rm -rf $(TOOLCHAIN) - -clean-sdk: - rm -rf $(VENDOR_SDK_DIR) - rm -f sdk - rm -f .sdk_patch_$(VENDOR_SDK) - rm -f user_rf_cal_sector_set.o empty_user_rf_pre_init.o - $(MAKE) -C esp-open-lwip -f Makefile.open clean - -clean-sysroot: - rm -rf $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/* - rm -rf $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/include/* - - -esptool: toolchain +$(TOOLCHAIN)/bin/esptool.py: cp esptool/esptool.py $(TOOLCHAIN)/bin/ toolchain: $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc +# cp strip_libgcc_funcs.txt $(TOOLCHAIN)/lib/gcc/xtensa-lx106-elf/$(GCC_VERSION)/ +# cd $(TOOLCHAIN)/lib/gcc/xtensa-lx106-elf/$(GCC_VERSION)/; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar -M < strip_libgcc_funcs.txt; rm strip_libgcc_funcs.txt +# cp strip_libc_funcs.txt $(TOOLCHAIN)/xtensa-lx106-elf/lib +# cd $(TOOLCHAIN)/xtensa-lx106-elf/lib; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar -M < strip_libc_funcs.txt; rm strip_libc_funcs.txt -$(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc: crosstool-NG/ct-ng - cp -f 1000-mforce-l32.patch crosstool-NG/local-patches/gcc/4.8.5/ - $(MAKE) -C crosstool-NG -f ../Makefile _toolchain +$(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc: crosstool-ng/ct-ng + $(MAKE) -C crosstool-ng -f ../Makefile _toolchain _toolchain: ./ct-ng xtensa-lx106-elf sed -r -i.org s%CT_PREFIX_DIR=.*%CT_PREFIX_DIR="$(TOOLCHAIN)"% .config - sed -r -i s%CT_INSTALL_DIR_RO=y%"#"CT_INSTALL_DIR_RO=y% .config + sed -r -i s%CT_PREFIX_DIR_RO=y%"#"CT_PREFIX_DIR_RO=y% .config + @echo "Setting CT_GCC Version: $(GCC_VERSION)" + # Clear autogenerated GCC settings + sed -r -i s%CT_GCC_V_.*=y%% .config + sed -r -i s%CT_GCC_VERSION=.*%% .config + sed -r -i s%"# "CT_GCC_V_$(CT_GCC_VERSION)" is not set"%% .config + # Set GCC version + echo "CT_GCC_V_$(CT_GCC_VERSION)=y" >> .config + echo "CT_CC_GCC_V_$(CT_GCC_VERSION)=y" >> .config + echo "CT_GCC_VERSION=\"$(GCC_VERSION)\"" >> .config + # Append overrides cat ../crosstool-config-overrides >> .config + # Build ./ct-ng build +crosstool-ng: crosstool-ng/ct-ng -crosstool-NG: crosstool-NG/ct-ng - -crosstool-NG/ct-ng: crosstool-NG/bootstrap - $(MAKE) -C crosstool-NG -f ../Makefile _ct-ng +crosstool-ng/ct-ng: crosstool-ng/bootstrap + $(MAKE) -C crosstool-ng -f ../Makefile _ct-ng _ct-ng: ./bootstrap @@ -148,63 +156,113 @@ _ct-ng: $(MAKE) MAKELEVEL=0 $(MAKE) install MAKELEVEL=0 -crosstool-NG/bootstrap: +crosstool-ng/bootstrap: @echo "You cloned without --recursive, fetching submodules for you." git submodule update --init --recursive -libcirom: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libcirom.a +$(TOOLCHAIN)/lib/gcc/xtensa-lx106-elf/$(GCC_VERSION)/libgcc.a.orig: $(TOOLCHAIN)/lib/gcc/xtensa-lx106-elf/$(GCC_VERSION)/libgcc.a + cp strip_libgcc_funcs.txt $(@D) + cd $(@D); cp -f libgcc.a libgcc.a.orig; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar -M < strip_libgcc_funcs.txt; rm strip_libgcc_funcs.txt -$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libcirom.a: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libc.a $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc +$(TOOLCHAIN)/xtensa-lx106-elf/lib/libc.a.orig: $(TOOLCHAIN)/xtensa-lx106-elf/lib/libc.a + cp strip_libc_funcs.txt $(TOOLCHAIN)/xtensa-lx106-elf/lib + cd $(TOOLCHAIN)/xtensa-lx106-elf/lib; cp -f libc.a libc.a.orig; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar -M < strip_libc_funcs.txt; rm strip_libc_funcs.txt + +$(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/libcirom.a: $(TOOLCHAIN)/xtensa-lx106-elf/lib/libc.a @echo "Creating irom version of libc..." - $(TOOLCHAIN)/bin/xtensa-lx106-elf-objcopy --rename-section .text=.irom0.text \ - --rename-section .literal=.irom0.literal $(<) $(@); + $(TOOLCHAIN)/bin/xtensa-lx106-elf-objcopy --rename-section .text=.irom0.text --rename-section .literal=.irom0.literal $(<) $(@); -libhal: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libhal.a +$(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/libmirom.a: $(TOOLCHAIN)/xtensa-lx106-elf/lib/libm.a + @echo "Creating irom version of libm..." + $(TOOLCHAIN)/bin/xtensa-lx106-elf-objcopy --rename-section .text=.irom0.text --rename-section .literal=.irom0.literal $(<) $(@); -$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libhal.a: $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc - $(MAKE) -C lx106-hal -f ../Makefile _libhal +$(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/libhal.a: $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc + make -C lx106-hal -f ../Makefile _libhal _libhal: autoreconf -i - PATH="$(TOOLCHAIN)/bin:$(PATH)" ./configure --host=xtensa-lx106-elf --prefix=$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr - PATH="$(TOOLCHAIN)/bin:$(PATH)" $(MAKE) - PATH="$(TOOLCHAIN)/bin:$(PATH)" $(MAKE) install + PATH="$(TOOLCHAIN)/bin:$(PATH)" ./configure --host=xtensa-lx106-elf --prefix=$(TOOLCHAIN)/xtensa-lx106-elf/usr + PATH="$(TOOLCHAIN)/bin:$(PATH)" make + PATH="$(TOOLCHAIN)/bin:$(PATH)" make install +liblwip: $(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/liblwip_open.a +$(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/liblwip_open.a: $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc + make -C esp-open-lwip -f Makefile.open all \ + CC=$(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc \ + AR=$(TOOLCHAIN)/bin/xtensa-lx106-elf-ar \ + PREFIX=$(TOOLCHAIN) \ + CFLAGS_EXTRA=-I$(TOP)/sdk/include + cp esp-open-lwip/liblwip_open.a $(TOOLCHAIN)/xtensa-lx106-elf/usr/lib + cp -a esp-open-lwip/include/arch esp-open-lwip/include/lwip esp-open-lwip/include/netif esp-open-lwip/include/lwipopts.h \ + $(TOOLCHAIN)/xtensa-lx106-elf/usr/include/ + cp -a esp-open-lwip/include/arch esp-open-lwip/include/lwip esp-open-lwip/include/netif esp-open-lwip/include/lwipopts.h \ + $(TOOLCHAIN)/xtensa-lx106-elf/sys-include/ -sdk: $(VENDOR_SDK_DIR)/.dir +libs: $(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/libhal.a $(TOOLCHAIN)/xtensa-lx106-elf/lib/libc.a.orig $(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/libcirom.a $(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/libmirom.a $(TOOLCHAIN)/lib/gcc/xtensa-lx106-elf/$(GCC_VERSION)/libgcc.a.orig + +sdk: .sdk_dir_$(VENDOR_SDK) .sdk_patch_$(VENDOR_SDK) ln -snf $(VENDOR_SDK_DIR) sdk +ifeq ($(STANDALONE), y) + @echo "Installing vendor SDK headers into toolchain" + @mkdir -p $(TOOLCHAIN)/xtensa-lx106-elf/usr/include + @cp -Rf sdk/include/* $(TOOLCHAIN)/xtensa-lx106-elf/usr/include/ + @echo "Installing vendor SDK libs into toolchain" + @cp -Rf $(VENDOR_SDK_DIR)/lib/* $(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/ + @rm -f $(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/libgcc.a + @rm -f $(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/libc.a + @echo "Installing vendor SDK linker scripts into toolchain" + @sed -e 's/\r//' $(VENDOR_SDK_DIR)/ld/eagle.app.v6.ld | sed -e s@../ld/@@ >$(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/eagle.app.v6.ld + @sed -e 's/\r//' $(VENDOR_SDK_DIR)/ld/eagle.rom.addr.v6.ld >$(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/eagle.rom.addr.v6.ld +else + cp -Rf $(VENDOR_SDK_DIR) $(TOP)/$(VENDOR_SDK_DIR) + rm -f $(TOP)/$(VENDOR_SDK_DIR)/lib/libgcc.a + rm -f $(TOP)/$(VENDOR_SDK_DIR)/lib/libc.a + ln -snf $(TOP)/$(VENDOR_SDK_DIR) $(TOP)/sdk +endif -$(VENDOR_SDK_DIR)/.dir: $(VENDOR_SDK_ZIP) - $(UNZIP) $^ +postbuild: + @echo "Installing vendor SDK headers into sysroot" + @cp -f sdk/include/c_types.h $(TOOLCHAIN)/xtensa-lx106-elf/sys-include/ + @cp -f $(TOP)/esp-open-lwip/include/lwipopts.h $(TOOLCHAIN)/xtensa-lx106-elf/sys-include/ + @cp -Rf $(TOOLCHAIN)/xtensa-lx106-elf/usr/include/lwip $(TOOLCHAIN)/xtensa-lx106-elf/sys-include/ + @cp -Rf $(TOOLCHAIN)/xtensa-lx106-elf/usr/include/arch $(TOOLCHAIN)/xtensa-lx106-elf/sys-include/ + @cp -Rf $(TOOLCHAIN)/xtensa-lx106-elf/usr/include/xtensa/* $(TOOLCHAIN)/xtensa-lx106-elf/sys-include/xtensa/ + @echo "Installing vendor SDK libs into sysroot" + @cp -f $(TOOLCHAIN)/xtensa-lx106-elf/usr/lib/libhal.a $(TOOLCHAIN)/xtensa-lx106-elf/lib/libhal.a + +clean-sdk-build: + rm -f .sdk_dir_$(VENDOR_SDK) .sdk_patch_$(VENDOR_SDK) + $(shell [[ -L sdk ]] && unlink sdk) + rm -f $(VENDOR_GIT_ZIP) + rm -rf $(VENDOR_SDK_DIR) + +clean: clean-sdk-build + rm -f .sdk_patch_$(VENDOR_SDK) + rm -f user_rf_cal_sector_set.o empty_user_rf_pre_init.o + $(MAKE) -C esp-open-lwip -f Makefile.open clean + rm -f .sdk_dir_$(VENDOR_SDK) + +distclean: clean + $(MAKE) -C crosstool-ng clean MAKELEVEL=0 + -rm -f crosstool-ng/.config.org + -rm -rf crosstool-ng/lib + -rm -rf crosstool-ng/share + -rm -rf crosstool-ng/.build/src + -rm -rf $(TOOLCHAIN) + +empty_user_rf_pre_init.o: empty_user_rf_pre_init.c $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc $(VENDOR_SDK_DIR) + $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc -O2 -I$(VENDOR_SDK_DIR)/include -c $< + +user_rf_cal_sector_set.o: user_rf_cal_sector_set.c $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc $(VENDOR_SDK_DIR) + $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc -O2 -I$(VENDOR_SDK_DIR)/include -c $< + +.sdk_dir_$(VENDOR_SDK): $(VENDOR_SDK_ZIP) + -mv -f $(VENDOR_ZIP_DIR) $(VENDOR_SDK_DIR) -mv License $(VENDOR_SDK_DIR) - touch $@ + @touch $@ -$(VENDOR_SDK_DIR_2.1.0-18-g61248df)/.dir: - echo $(VENDOR_SDK_DIR_2.1.0-18-g61248df) - git clone https://github.com/espressif/ESP8266_NONOS_SDK $(VENDOR_SDK_DIR_2.1.0-18-g61248df) - (cd $(VENDOR_SDK_DIR_2.1.0-18-g61248df); git checkout 61248df5f6) - touch $@ - -$(VENDOR_SDK_DIR_2.1.0)/.dir: $(VENDOR_SDK_ZIP_2.1.0) - $(UNZIP) $^ - touch $@ - -$(VENDOR_SDK_DIR_2.0.0)/.dir: $(VENDOR_SDK_ZIP_2.0.0) - $(UNZIP) $^ - mv ESP8266_NONOS_SDK $(VENDOR_SDK_DIR_2.0.0) - -mv License $(VENDOR_SDK_DIR) - touch $@ - -$(VENDOR_SDK_DIR_1.5.4)/.dir: $(VENDOR_SDK_ZIP_1.5.4) - $(UNZIP) $^ - mv ESP8266_NONOS_SDK $(VENDOR_SDK_DIR_1.5.4) - -mv License $(VENDOR_SDK_DIR) - touch $@ - -sdk_patch: $(VENDOR_SDK_DIR)/.dir .sdk_patch_$(VENDOR_SDK) - -.sdk_patch_2.1.0-18-g61248df .sdk_patch_2.1.0: user_rf_cal_sector_set.o +.sdk_patch_master: user_rf_cal_sector_set.o echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 020100" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99_sdk_2.patch cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o @@ -342,29 +400,23 @@ sdk_patch: $(VENDOR_SDK_DIR)/.dir .sdk_patch_$(VENDOR_SDK) $(UNZIP) $< @touch $@ -.sdk_patch_0.9.2: FRM_ERR_PATCH.rar esp_iot_sdk_v0.9.2/.dir +.sdk_patch_0.9.2: FRM_ERR_PATCH.rar esp_iot_sdk_v0.9.2/.dir unrar x -o+ $< cp FRM_ERR_PATCH/*.a $(VENDOR_SDK_DIR)/lib/ @touch $@ -empty_user_rf_pre_init.o: empty_user_rf_pre_init.c $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc $(VENDOR_SDK_DIR)/.dir - $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc -O2 -I$(VENDOR_SDK_DIR)/include -c $< - -user_rf_cal_sector_set.o: user_rf_cal_sector_set.c $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc $(VENDOR_SDK_DIR)/.dir - $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc -O2 -I$(VENDOR_SDK_DIR)/include -c $< - -lwip: toolchain sdk_patch -ifeq ($(STANDALONE),y) - $(MAKE) -C esp-open-lwip -f Makefile.open install \ - CC=$(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc \ - AR=$(TOOLCHAIN)/bin/xtensa-lx106-elf-ar \ - PREFIX=$(TOOLCHAIN) - cp -a esp-open-lwip/include/arch esp-open-lwip/include/lwip esp-open-lwip/include/netif \ - esp-open-lwip/include/lwipopts.h \ - $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/include/ -endif - +####################################################################################################### +# Presumes VENDOR_FULL_SHA is >= the SDK version +####################################################################################################### +ESP8266_NONOS_SDK-master.zip: + wget --content-disposition "$(VENDOR_ZIP_DL_URI)" + rm -rf 'ESP8266_NONOS_SDK-master/*' + mkdir -p 'ESP8266_NONOS_SDK-master' + unzip $(VENDOR_GIT_ZIP) + cp -a ESP8266_NONOS_SDK-$(VENDOR_FULL_SHA)/* ESP8266_NONOS_SDK-master/ + rm -rf ESP8266_NONOS_SDK-$(VENDOR_FULL_SHA) +####################################################################################################### ESP8266_NONOS_SDK-2.1.0.zip: wget --content-disposition "https://github.com/espressif/ESP8266_NONOS_SDK/archive/v2.1.0.zip" # The only change wrt to ESP8266_NONOS_SDK_V2.0.0_16_07_19.zip is licensing blurb in source/ diff --git a/strip_libc_funcs.txt b/strip_libc_funcs.txt new file mode 100644 index 0000000..db4e6b2 --- /dev/null +++ b/strip_libc_funcs.txt @@ -0,0 +1,15 @@ +OPEN libc.a +DELETE lib_a-bzero.o +DELETE lib_a-memcmp.o +DELETE lib_a-memcpy.o +DELETE lib_a-memmove.o +DELETE lib_a-memset.o +DELETE lib_a-rand.o +DELETE lib_a-strcmp.o +DELETE lib_a-strcpy.o +DELETE lib_a-strlen.o +DELETE lib_a-strncmp.o +DELETE lib_a-strncpy.o +DELETE lib_a-strstr.o +SAVE +END \ No newline at end of file diff --git a/strip_libgcc_funcs.txt b/strip_libgcc_funcs.txt new file mode 100644 index 0000000..ab9b506 --- /dev/null +++ b/strip_libgcc_funcs.txt @@ -0,0 +1,25 @@ +OPEN libgcc.a +DELETE _addsubdf3.o +DELETE _addsubsf3.o +DELETE _divdf3.o +DELETE _divdi3.o +DELETE _divsi3.o +DELETE _extendsfdf2.o +DELETE _fixdfsi.o +DELETE _fixunsdfsi.o +DELETE _fixunssfsi.o +DELETE _floatsidf.o +DELETE _floatsisf.o +DELETE _floatunsidf.o +DELETE _floatunsisf.o +DELETE _muldf3.o +DELETE _muldi3.o +DELETE _mulsf3.o +DELETE _truncdfsf2.o +DELETE _udivdi3.o +DELETE _udivsi3.o +DELETE _umoddi3.o +DELETE _umodsi3.o +DELETE _umulsidi3.o +SAVE +END \ No newline at end of file diff --git a/user_rf_cal_sector_set.c b/user_rf_cal_sector_set.c index 0dc4fd3..915fe61 100644 --- a/user_rf_cal_sector_set.c +++ b/user_rf_cal_sector_set.c @@ -1,6 +1,7 @@ #include #include +__attribute__ ((weak)) uint32 user_rf_cal_sector_set(void) { extern char flashchip; SpiFlashChip *flash = (SpiFlashChip*)(&flashchip + 4); @@ -9,3 +10,4 @@ uint32 user_rf_cal_sector_set(void) { uint32_t sec_num = flash->chip_size >> 12; return sec_num - 5; } +