diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c546fa8 --- /dev/null +++ b/Makefile @@ -0,0 +1,57 @@ +##################################################################### +#### Please don't change this file. Use Makefile-user.mk instead #### +##################################################################### + +# SpejsIoT base configuration +MODULES = app $(realpath ../spejsiot ../spejsiot/endpoints) +EXTRA_INCDIR = include $(realpath ../common) +#ENABLE_SSL = 1 +DISABLE_SPIFFS ?= 1 +RBOOT_ENABLED ?= 1 +RBOOT_BIG_FLASH ?= 1 +RBOOT_RTC_ENABLED ?= 1 +SPI_SIZE ?= 4M + +RBOOT_ROM_0 ?= rom0 +RBOOT_LD_0 ?= rboot.rom0.ld +RBOOT_ROM_1 ?= rom1 +RBOOT_LD_1 ?= rboot.rom1.ld + +# Including user Makefile. +# Should be used to set project-specific parameters +-include ./Makefile-user.mk + +# Important parameters check. +# We need to make sure SMING_HOME and ESP_HOME variables are set. +# You can use Makefile-user.mk in each project or use enviromental variables to set it globally. + +ifndef SMING_HOME +$(error SMING_HOME is not set. Please configure it in Makefile-user.mk) +endif +ifndef ESP_HOME +$(error ESP_HOME is not set. Please configure it in Makefile-user.mk) +endif + +# Include main Sming Makefile +ifeq ($(RBOOT_ENABLED), 1) +include $(SMING_HOME)/Makefile-rboot.mk +else +include $(SMING_HOME)/Makefile-project.mk +endif + +$(APP_AR): $(OBJ) + $(vecho) "AR $@" + + @echo "char* BUILD_ID = \"$(shell git rev-parse --short HEAD)-$(shell TZ=UTC date +%Y%m%d-%H%M%S)\";" > $(BUILD_BASE)/ver.c + $(Q) $(CC) -c $(BUILD_BASE)/ver.c -o $(BUILD_BASE)/ver.o + + $(Q) $(AR) cru $@ $^ $(BUILD_BASE)/ver.o + +ota: all + -mkdir ../master/ota/$(DEVICE) >/dev/null + cp -r out/firmware/* ../master/ota/$(DEVICE) + python ../master/client.py $(DEVICE) control ota + +remoteota: all + scp -r out/firmware/rom*.bin root@sound:/var/www/api/1/ota/$(DEVICE)/ + python ../master/remoteclient.py $(DEVICE) \$$implementation/ota true diff --git a/sonoff/include/user_config.h b/common/user_config.h similarity index 100% rename from sonoff/include/user_config.h rename to common/user_config.h diff --git a/sonoff/Makefile b/sonoff/Makefile deleted file mode 100644 index ab74ca2..0000000 --- a/sonoff/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -##################################################################### -#### Please don't change this file. Use Makefile-user.mk instead #### -##################################################################### -# Including user Makefile. -# Should be used to set project-specific parameters -include ./Makefile-user.mk - -# Important parameters check. -# We need to make sure SMING_HOME and ESP_HOME variables are set. -# You can use Makefile-user.mk in each project or use enviromental variables to set it globally. - -ifndef SMING_HOME -$(error SMING_HOME is not set. Please configure it in Makefile-user.mk) -endif -ifndef ESP_HOME -$(error ESP_HOME is not set. Please configure it in Makefile-user.mk) -endif - -# Include main Sming Makefile -ifeq ($(RBOOT_ENABLED), 1) -include $(SMING_HOME)/Makefile-rboot.mk -else -include $(SMING_HOME)/Makefile-project.mk -endif - -$(APP_AR): $(OBJ) - $(vecho) "AR $@" - - @echo "char* BUILD_ID = \"$(shell git rev-parse --short HEAD)-$(shell TZ=UTC date +%Y%m%d-%H%M%S)\";" > $(BUILD_BASE)/ver.c - cat $(BUILD_BASE)/ver.c - $(CC) -c $(BUILD_BASE)/ver.c -o $(BUILD_BASE)/ver.o - - $(Q) $(AR) cru $@ $^ $(BUILD_BASE)/ver.o - -ota: all - -mkdir ../master/ota/$(DEVICE) >/dev/null - cp -r out/firmware/* ../master/ota/$(DEVICE) - python ../master/client.py $(DEVICE) control ota - -remoteota: all - scp -r out/firmware/rom*.bin root@sound:/var/www/api/1/ota/$(DEVICE)/ - python ../master/remoteclient.py $(DEVICE) \$$implementation/ota true diff --git a/sonoff/Makefile b/sonoff/Makefile new file mode 120000 index 0000000..d0b0e8e --- /dev/null +++ b/sonoff/Makefile @@ -0,0 +1 @@ +../Makefile \ No newline at end of file diff --git a/sonoff/Makefile-user.mk b/sonoff/Makefile-user.mk index 7882794..c007da8 100644 --- a/sonoff/Makefile-user.mk +++ b/sonoff/Makefile-user.mk @@ -1,16 +1,4 @@ -MODULES = app ../spejsiot ../spejsiot/endpoints -DISABLE_SPIFFS = 1 -USER_CFLAGS = -I../common -#ENABLE_SSL = 1 -RBOOT_ENABLED = 1 -RBOOT_BIG_FLASH = 0 -RBOOT_TWO_ROMS = 1 -RBOOT_RTC_ENABLED = 1 -# these next options only needed when using two rom mode -RBOOT_ROM_0 ?= rom0 -RBOOT_LD_0 ?= rboot.rom0.ld -RBOOT_ROM_1 ?= rom1 -RBOOT_LD_1 ?= rboot.rom1.ld - SPI_SIZE = 1M SPI_MODE = dout +RBOOT_BIG_FLASH = 0 +RBOOT_TWO_ROMS = 1 diff --git a/switch/Makefile b/switch/Makefile deleted file mode 100644 index 1213c3e..0000000 --- a/switch/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -##################################################################### -#### Please don't change this file. Use Makefile-user.mk instead #### -##################################################################### -# Including user Makefile. -# Should be used to set project-specific parameters -include ./Makefile-user.mk - -# Important parameters check. -# We need to make sure SMING_HOME and ESP_HOME variables are set. -# You can use Makefile-user.mk in each project or use enviromental variables to set it globally. - -ifndef SMING_HOME -$(error SMING_HOME is not set. Please configure it in Makefile-user.mk) -endif -ifndef ESP_HOME -$(error ESP_HOME is not set. Please configure it in Makefile-user.mk) -endif - -# Include main Sming Makefile -ifeq ($(RBOOT_ENABLED), 1) -include $(SMING_HOME)/Makefile-rboot.mk -else -include $(SMING_HOME)/Makefile-project.mk -endif - -$(APP_AR): $(OBJ) - $(vecho) "AR $@" - - @echo "char* BUILD_ID = \"$(shell git rev-parse --short HEAD)-$(shell TZ=UTC date +%Y%m%d-%H%M%S)\";" > $(BUILD_BASE)/ver.c - cat $(BUILD_BASE)/ver.c - $(CC) -c $(BUILD_BASE)/ver.c -o $(BUILD_BASE)/ver.o - - $(Q) $(AR) cru $@ $^ $(BUILD_BASE)/ver.o - -ota: all - -mkdir ../master/ota/$(DEVICE) >/dev/null - cp -r out/firmware/* ../master/ota/$(DEVICE) - python ../master/client.py $(DEVICE) control ota diff --git a/switch/Makefile b/switch/Makefile new file mode 120000 index 0000000..d0b0e8e --- /dev/null +++ b/switch/Makefile @@ -0,0 +1 @@ +../Makefile \ No newline at end of file diff --git a/switch/Makefile-user.mk b/switch/Makefile-user.mk deleted file mode 100644 index 49366d4..0000000 --- a/switch/Makefile-user.mk +++ /dev/null @@ -1,8 +0,0 @@ -MODULES = app ../spejsiot ../spejsiot/endpoints -DISABLE_SPIFFS = 1 -USER_CFLAGS = -I../common -#ENABLE_SSL = 1 -RBOOT_ENABLED = 1 -RBOOT_BIG_FLASH = 1 -RBOOT_RTC_ENABLED = 1 -SPI_SIZE ?= 4M diff --git a/switch/include/user_config.h b/switch/include/user_config.h deleted file mode 100644 index 1c6ac36..0000000 --- a/switch/include/user_config.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef __USER_CONFIG_H__ -#define __USER_CONFIG_H__ - -#ifdef __cplusplus -extern "C" { -#endif - - // UART config - #define SERIAL_BAUD_RATE 115200 - - // ESP SDK config - #define LWIP_OPEN_SRC - #define USE_US_TIMER - - // Default types - #define __CORRECT_ISO_CPP_STDLIB_H_PROTO - #include - #include - - // Override c_types.h include and remove buggy espconn - #define _C_TYPES_H_ - #define _NO_ESPCON_ - - // Updated, compatible version of c_types.h - // Just removed types declared in - #include - - // System API declarations - #include - - // C++ Support - #include - // Extended string conversion for compatibility - #include - // Network base API - #include - - // Beta boards - #define BOARD_ESP01 - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/switch/rom0.ld b/switch/rom0.ld deleted file mode 100644 index 32a7c8f..0000000 --- a/switch/rom0.ld +++ /dev/null @@ -1,220 +0,0 @@ -/* This linker script generated from xt-genldscripts.tpp for LSP . */ -/* Linker Script for ld -N */ -MEMORY -{ - dport0_0_seg : org = 0x3FF00000, len = 0x10 - dram0_0_seg : org = 0x3FFE8000, len = 0x14000 - iram1_0_seg : org = 0x40100000, len = 0x8000 - irom0_0_seg : org = 0x40202010, len = 0xF0000 -} - -PHDRS -{ - dport0_0_phdr PT_LOAD; - dram0_0_phdr PT_LOAD; - dram0_0_bss_phdr PT_LOAD; - iram1_0_phdr PT_LOAD; - irom0_0_phdr PT_LOAD; -} - - -/* Default entry point: */ -ENTRY(call_user_start) -EXTERN(_DebugExceptionVector) -EXTERN(_DoubleExceptionVector) -EXTERN(_KernelExceptionVector) -EXTERN(_NMIExceptionVector) -EXTERN(_UserExceptionVector) -PROVIDE(_memmap_vecbase_reset = 0x40000000); -/* Various memory-map dependent cache attribute settings: */ -_memmap_cacheattr_wb_base = 0x00000110; -_memmap_cacheattr_wt_base = 0x00000110; -_memmap_cacheattr_bp_base = 0x00000220; -_memmap_cacheattr_unused_mask = 0xFFFFF00F; -_memmap_cacheattr_wb_trapnull = 0x2222211F; -_memmap_cacheattr_wba_trapnull = 0x2222211F; -_memmap_cacheattr_wbna_trapnull = 0x2222211F; -_memmap_cacheattr_wt_trapnull = 0x2222211F; -_memmap_cacheattr_bp_trapnull = 0x2222222F; -_memmap_cacheattr_wb_strict = 0xFFFFF11F; -_memmap_cacheattr_wt_strict = 0xFFFFF11F; -_memmap_cacheattr_bp_strict = 0xFFFFF22F; -_memmap_cacheattr_wb_allvalid = 0x22222112; -_memmap_cacheattr_wt_allvalid = 0x22222112; -_memmap_cacheattr_bp_allvalid = 0x22222222; -PROVIDE(_memmap_cacheattr_reset = _memmap_cacheattr_wb_trapnull); - -SECTIONS -{ - - .dport0.rodata : ALIGN(4) - { - _dport0_rodata_start = ABSOLUTE(.); - *(.dport0.rodata) - *(.dport.rodata) - _dport0_rodata_end = ABSOLUTE(.); - } >dport0_0_seg :dport0_0_phdr - - .dport0.literal : ALIGN(4) - { - _dport0_literal_start = ABSOLUTE(.); - *(.dport0.literal) - *(.dport.literal) - _dport0_literal_end = ABSOLUTE(.); - } >dport0_0_seg :dport0_0_phdr - - .dport0.data : ALIGN(4) - { - _dport0_data_start = ABSOLUTE(.); - *(.dport0.data) - *(.dport.data) - _dport0_data_end = ABSOLUTE(.); - } >dport0_0_seg :dport0_0_phdr - - .data : ALIGN(4) - { - _data_start = ABSOLUTE(.); - *(.data) - *(.data.*) - *(.gnu.linkonce.d.*) - *(.data1) - *(.sdata) - *(.sdata.*) - *(.gnu.linkonce.s.*) - *(.sdata2) - *(.sdata2.*) - *(.gnu.linkonce.s2.*) - *(.jcr) - _data_end = ABSOLUTE(.); - } >dram0_0_seg :dram0_0_phdr - - .rodata : ALIGN(4) - { - _rodata_start = ABSOLUTE(.); - *(.sdk.version) - *(.rodata) - *(.rodata.*) - *(.gnu.linkonce.r.*) - *(.rodata1) - __XT_EXCEPTION_TABLE__ = ABSOLUTE(.); - *(.xt_except_table) - *(.gcc_except_table) - *(.gnu.linkonce.e.*) - *(.gnu.version_r) - *(.eh_frame) - . = (. + 3) & ~ 3; - /* C++ constructor and destructor tables, properly ordered: */ - __dso_handle = ABSOLUTE(.); - __init_array_start = ABSOLUTE(.); - KEEP (*crtbegin.o(.ctors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - __init_array_end = ABSOLUTE(.); - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - /* C++ exception handlers table: */ - __XT_EXCEPTION_DESCS__ = ABSOLUTE(.); - *(.xt_except_desc) - *(.gnu.linkonce.h.*) - __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.); - *(.xt_except_desc_end) - *(.dynamic) - *(.gnu.version_d) - . = ALIGN(4); /* this table MUST be 4-byte aligned */ - _bss_table_start = ABSOLUTE(.); - LONG(_bss_start) - LONG(_bss_end) - _bss_table_end = ABSOLUTE(.); - _rodata_end = ABSOLUTE(.); - } >dram0_0_seg :dram0_0_phdr - - .bss ALIGN(8) (NOLOAD) : ALIGN(4) - { - . = ALIGN (8); - _bss_start = ABSOLUTE(.); - *(.dynsbss) - *(.sbss) - *(.sbss.*) - *(.gnu.linkonce.sb.*) - *(.scommon) - *(.sbss2) - *(.sbss2.*) - *(.gnu.linkonce.sb2.*) - *(.dynbss) - *(.bss) - *(.bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - . = ALIGN (8); - _bss_end = ABSOLUTE(.); - _heap_start = ABSOLUTE(.); -/* _stack_sentry = ALIGN(0x8); */ - } >dram0_0_seg :dram0_0_bss_phdr -/* __stack = 0x3ffc8000; */ - - .irom0.text : ALIGN(4) - { - _irom0_text_start = ABSOLUTE(.); - *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) - out/build/app_app.a:*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) - *libsming.a:*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) - *libsmingssl.a:*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) - _irom0_text_end = ABSOLUTE(.); - _flash_code_end = ABSOLUTE(.); - } >irom0_0_seg :irom0_0_phdr - - .text : ALIGN(4) - { - _stext = .; - _text_start = ABSOLUTE(.); - *(.UserEnter.text) - . = ALIGN(16); - *(.DebugExceptionVector.text) - . = ALIGN(16); - *(.NMIExceptionVector.text) - . = ALIGN(16); - *(.KernelExceptionVector.text) - LONG(0) - LONG(0) - LONG(0) - LONG(0) - . = ALIGN(16); - *(.UserExceptionVector.text) - LONG(0) - LONG(0) - LONG(0) - LONG(0) - . = ALIGN(16); - *(.DoubleExceptionVector.text) - LONG(0) - LONG(0) - LONG(0) - LONG(0) - . = ALIGN (16); - *(.entry.text) - *(.init.literal) - *(.init) - *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) - *(.iram.literal .iram.text.literal .iram.text) - *(.fini.literal) - *(.fini) - *(.gnu.version) - _text_end = ABSOLUTE(.); - _etext = .; - } >iram1_0_seg :iram1_0_phdr - - .lit4 : ALIGN(4) - { - _lit4_start = ABSOLUTE(.); - *(*.lit4) - *(.lit4.*) - *(.gnu.linkonce.lit4.*) - _lit4_end = ABSOLUTE(.); - } >iram1_0_seg :iram1_0_phdr -} - -/* get ROM code address */ -INCLUDE "../ld/eagle.rom.addr.v6.ld"