diff --git a/Makefile b/Makefile index 4923b20..e7b81d7 100644 --- a/Makefile +++ b/Makefile @@ -1,163 +1,165 @@ -# tnx to mamalala -# Changelog -# Changed the variables to include the header file directory -# Added global var for the XTENSA tool root -# -# This make file still needs some work. -# -# -# Output directors to store intermediate compiled files -# relative to the project directory -BUILD_BASE = build -FW_BASE = firmware - -# Base directory for the compiler -XTENSA_TOOLS_ROOT ?= /opt/Espressif/crosstool-NG/builds/xtensa-lx106-elf/bin - -#Extra Tensilica includes from the ESS VM -SDK_EXTRA_INCLUDES ?= /opt/Espressif/include - -# base directory of the ESP8266 SDK package, absolute -SDK_BASE ?= /opt/Espressif/ESP8266_SDK - -#Esptool.py path and port -ESPTOOL ?= esptool.py -ESPPORT ?= /dev/ttyUSB0 - -# name for the target project -TARGET = httpd - -# which modules (subdirectories) of the project to include in compiling -MODULES = driver user -EXTRA_INCDIR = include \ - . \ - lib/heatshrink/ \ - $(SDK_EXTRA_INCLUDES) - -# libraries used in this project, mainly provided by the SDK -LIBS = c gcc hal phy net80211 lwip wpa main - -# compiler flags using during compilation of source files -CFLAGS = -Os -ggdb -std=c99 -Werror -Wpointer-arith -Wundef -Wall -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -D__ets__ -DICACHE_FLASH - -# linker flags used to generate the main object file -LDFLAGS = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static - -# linker script used for the above linkier step -LD_SCRIPT = eagle.app.v6.ld - -# various paths from the SDK used in this project -SDK_LIBDIR = lib -SDK_LDDIR = ld -SDK_INCDIR = include include/json - -# we create two different files for uploading into the flash -# these are the names and options to generate them -FW_FILE_1 = 0x00000 -FW_FILE_1_ARGS = -bo $@ -bs .text -bs .data -bs .rodata -bc -ec -FW_FILE_2 = 0x40000 -FW_FILE_2_ARGS = -es .irom0.text $@ -ec - -# select which tools to use as compiler, librarian and linker -CC := $(XTENSA_TOOLS_ROOT)/xtensa-lx106-elf-gcc -AR := $(XTENSA_TOOLS_ROOT)/xtensa-lx106-elf-ar -LD := $(XTENSA_TOOLS_ROOT)/xtensa-lx106-elf-gcc - - - -#### -#### no user configurable options below here -#### -FW_TOOL ?= /usr/bin/esptool -SRC_DIR := $(MODULES) -BUILD_DIR := $(addprefix $(BUILD_BASE)/,$(MODULES)) - -SDK_LIBDIR := $(addprefix $(SDK_BASE)/,$(SDK_LIBDIR)) -SDK_INCDIR := $(addprefix -I$(SDK_BASE)/,$(SDK_INCDIR)) - -SRC := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.c)) -OBJ := $(patsubst %.c,$(BUILD_BASE)/%.o,$(SRC)) -LIBS := $(addprefix -l,$(LIBS)) -APP_AR := $(addprefix $(BUILD_BASE)/,$(TARGET)_app.a) -TARGET_OUT := $(addprefix $(BUILD_BASE)/,$(TARGET).out) - -LD_SCRIPT := $(addprefix -T$(SDK_BASE)/$(SDK_LDDIR)/,$(LD_SCRIPT)) - -INCDIR := $(addprefix -I,$(SRC_DIR)) -EXTRA_INCDIR := $(addprefix -I,$(EXTRA_INCDIR)) -MODULE_INCDIR := $(addsuffix /include,$(INCDIR)) - -FW_FILE_1 := $(addprefix $(FW_BASE)/,$(FW_FILE_1).bin) -FW_FILE_2 := $(addprefix $(FW_BASE)/,$(FW_FILE_2).bin) - -V ?= $(VERBOSE) -ifeq ("$(V)","1") -Q := -vecho := @true -else -Q := @ -vecho := @echo -endif - -vpath %.c $(SRC_DIR) - -define compile-objects -$1/%.o: %.c - $(vecho) "CC $$<" - $(Q) $(CC) $(INCDIR) $(MODULE_INCDIR) $(EXTRA_INCDIR) $(SDK_INCDIR) $(CFLAGS) -c $$< -o $$@ -endef - -.PHONY: all checkdirs clean - -all: checkdirs $(TARGET_OUT) $(FW_FILE_1) $(FW_FILE_2) - -$(FW_FILE_1): $(TARGET_OUT) firmware - $(vecho) "FW $@" - $(Q) $(FW_TOOL) -eo $(TARGET_OUT) $(FW_FILE_1_ARGS) - -$(FW_FILE_2): $(TARGET_OUT) firmware - $(vecho) "FW $@" - $(Q) $(FW_TOOL) -eo $(TARGET_OUT) $(FW_FILE_2_ARGS) - -$(TARGET_OUT): $(APP_AR) - $(vecho) "LD $@" - $(Q) $(LD) -L$(SDK_LIBDIR) $(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $(LIBS) $(APP_AR) -Wl,--end-group -o $@ - -$(APP_AR): $(OBJ) - $(vecho) "AR $@" - $(Q) $(AR) cru $@ $^ - -checkdirs: $(BUILD_DIR) $(FW_BASE) - -$(BUILD_DIR): - $(Q) mkdir -p $@ - -firmware: - $(Q) mkdir -p $@ - -flash: $(FW_FILE_1) $(FW_FILE_2) - -$(ESPTOOL) --port $(ESPPORT) write_flash 0x00000 firmware/0x00000.bin - sleep 3 - -$(ESPTOOL) --port $(ESPPORT) write_flash 0x40000 firmware/0x40000.bin - -webpages.espfs: html/ mkespfsimage/mkespfsimage - cd html; find | ../mkespfsimage/mkespfsimage > ../webpages.espfs; cd .. - -mkespfsimage/mkespfsimage: mkespfsimage/ - make -C mkespfsimage - -htmlflash: webpages.espfs - if [ $$(stat -c '%s' webpages.espfs) -gt $$(( 0x2E000 )) ]; then echo "webpages.espfs too big!"; false; fi - -$(ESPTOOL) --port $(ESPPORT) write_flash 0x12000 webpages.espfs - -clean: - $(Q) rm -f $(APP_AR) - $(Q) rm -f $(TARGET_OUT) - $(Q) find $(BUILD_BASE) -type f | xargs rm -f - - - $(Q) rm -f $(FW_FILE_1) - $(Q) rm -f $(FW_FILE_2) - $(Q) rm -rf $(FW_BASE) - -$(foreach bdir,$(BUILD_DIR),$(eval $(call compile-objects,$(bdir)))) +# tnx to mamalala +# Changelog +# Changed the variables to include the header file directory +# Added global var for the XTENSA tool root +# +# This make file still needs some work. +# +# +# Output directors to store intermediate compiled files +# relative to the project directory +BUILD_BASE = build +FW_BASE = firmware + +# Base directory for the compiler +XTENSA_TOOLS_ROOT ?= /opt/xtensa-lx106-elf/bin + +#Extra Tensilica includes from the ESS VM +SDK_EXTRA_INCLUDES ?= /opt/Espressif/include + +# base directory of the ESP8266 SDK package, absolute +SDK_BASE ?=/home/esp8266/Share/esp_iot_sdk + +#Esptool.py path and port +ESPTOOL ?= /home/esp8266/Share/esp_iot_sdk/esptool.py +ESPPORT ?= /dev/ttyUSB0 + +# name for the target project +TARGET = httpd + +# which modules (subdirectories) of the project to include in compiling +MODULES = driver user +EXTRA_INCDIR = include \ + . \ + lib/heatshrink/ \ + $(SDK_EXTRA_INCLUDES) + +# libraries used in this project, mainly provided by the SDK +LIBS = c gcc hal phy net80211 lwip wpa main + +# compiler flags using during compilation of source files +CFLAGS = -Os -ggdb -std=c99 -Werror -Wpointer-arith -Wundef -Wall -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -D__ets__ -DICACHE_FLASH + +# linker flags used to generate the main object file +LDFLAGS = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static + +# linker script used for the above linkier step +LD_SCRIPT = eagle.app.v6.ld + +# various paths from the SDK used in this project +SDK_LIBDIR = lib +SDK_LDDIR = ld +SDK_INCDIR = include include/json + +# we create two different files for uploading into the flash +# these are the names and options to generate them +FW_FILE_1 = 0x00000 +FW_FILE_1_ARGS = -bo $@ -bs .text -bs .data -bs .rodata -bc -ec +FW_FILE_2 = 0x40000 +FW_FILE_2_ARGS = -es .irom0.text $@ -ec +FW_FILE_3 = webpages.espfs + +# select which tools to use as compiler, librarian and linker +CC := $(XTENSA_TOOLS_ROOT)/xtensa-lx106-elf-gcc +AR := $(XTENSA_TOOLS_ROOT)/xtensa-lx106-elf-ar +LD := $(XTENSA_TOOLS_ROOT)/xtensa-lx106-elf-gcc + + + +#### +#### no user configurable options below here +#### +FW_TOOL ?= /usr/bin/esptool +SRC_DIR := $(MODULES) +BUILD_DIR := $(addprefix $(BUILD_BASE)/,$(MODULES)) + +SDK_LIBDIR := $(addprefix $(SDK_BASE)/,$(SDK_LIBDIR)) +SDK_INCDIR := $(addprefix -I$(SDK_BASE)/,$(SDK_INCDIR)) + +SRC := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.c)) +OBJ := $(patsubst %.c,$(BUILD_BASE)/%.o,$(SRC)) +LIBS := $(addprefix -l,$(LIBS)) +APP_AR := $(addprefix $(BUILD_BASE)/,$(TARGET)_app.a) +TARGET_OUT := $(addprefix $(BUILD_BASE)/,$(TARGET).out) + +LD_SCRIPT := $(addprefix -T$(SDK_BASE)/$(SDK_LDDIR)/,$(LD_SCRIPT)) + +INCDIR := $(addprefix -I,$(SRC_DIR)) +EXTRA_INCDIR := $(addprefix -I,$(EXTRA_INCDIR)) +MODULE_INCDIR := $(addsuffix /include,$(INCDIR)) + +FW_FILE_1 := $(addprefix $(FW_BASE)/,$(FW_FILE_1).bin) +FW_FILE_2 := $(addprefix $(FW_BASE)/,$(FW_FILE_2).bin) + +V ?= $(VERBOSE) +ifeq ("$(V)","1") +Q := +vecho := @true +else +Q := @ +vecho := @echo +endif + +vpath %.c $(SRC_DIR) + +define compile-objects +$1/%.o: %.c + $(vecho) "CC $$<" + $(Q) $(CC) $(INCDIR) $(MODULE_INCDIR) $(EXTRA_INCDIR) $(SDK_INCDIR) $(CFLAGS) -c $$< -o $$@ +endef + +.PHONY: all checkdirs clean + +all: checkdirs $(TARGET_OUT) $(FW_FILE_1) $(FW_FILE_2) + +$(FW_FILE_1): $(TARGET_OUT) firmware + $(vecho) "FW $@" + $(Q) $(FW_TOOL) -eo $(TARGET_OUT) $(FW_FILE_1_ARGS) + +$(FW_FILE_2): $(TARGET_OUT) firmware + $(vecho) "FW $@" + $(Q) $(FW_TOOL) -eo $(TARGET_OUT) $(FW_FILE_2_ARGS) + +$(TARGET_OUT): $(APP_AR) + $(vecho) "LD $@" + $(Q) $(LD) -L$(SDK_LIBDIR) $(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $(LIBS) $(APP_AR) -Wl,--end-group -o $@ + +$(APP_AR): $(OBJ) + $(vecho) "AR $@" + $(Q) $(AR) cru $@ $^ + +checkdirs: $(BUILD_DIR) $(FW_BASE) + +$(BUILD_DIR): + $(Q) mkdir -p $@ + +firmware: + $(Q) mkdir -p $@ + +flash: $(FW_FILE_1) $(FW_FILE_2) + -$(ESPTOOL) --port $(ESPPORT) write_flash 0x00000 firmware/0x00000.bin + sleep 10 + -$(ESPTOOL) --port $(ESPPORT) write_flash 0x40000 firmware/0x40000.bin + +webpages.espfs: html/ mkespfsimage/mkespfsimage + cd html; find | ../mkespfsimage/mkespfsimage > ../webpages.espfs; cd .. + +mkespfsimage/mkespfsimage: mkespfsimage/ + make -C mkespfsimage + +htmlflash: webpages.espfs + if [ $$(stat -c '%s' webpages.espfs) -gt $$(( 0x2E000 )) ]; then echo "webpages.espfs too big!"; false; fi + -$(ESPTOOL) --port $(ESPPORT) write_flash 0x12000 webpages.espfs + +clean: + $(Q) rm -f $(APP_AR) + $(Q) rm -f $(TARGET_OUT) + $(Q) find $(BUILD_BASE) -type f | xargs rm -f + + + $(Q) rm -f $(FW_FILE_1) + $(Q) rm -f $(FW_FILE_2) + $(Q) rm -f $(FW_FILE_3) + $(Q) rm -rf $(FW_BASE) + +$(foreach bdir,$(BUILD_DIR),$(eval $(call compile-objects,$(bdir)))) diff --git a/html/cats/cross-eyed-cat.jpg b/html/cats/cross-eyed-cat.jpg deleted file mode 100644 index e166e87..0000000 Binary files a/html/cats/cross-eyed-cat.jpg and /dev/null differ diff --git a/html/cats/junge-katze-iv.jpg b/html/cats/junge-katze-iv.jpg deleted file mode 100644 index c3cf70b..0000000 Binary files a/html/cats/junge-katze-iv.jpg and /dev/null differ diff --git a/html/cats/kitten-loves-toy.jpg b/html/cats/kitten-loves-toy.jpg deleted file mode 100644 index 569ff56..0000000 Binary files a/html/cats/kitten-loves-toy.jpg and /dev/null differ diff --git a/html/dht22.tpl b/html/dht22.tpl new file mode 100644 index 0000000..866c027 --- /dev/null +++ b/html/dht22.tpl @@ -0,0 +1,12 @@ +DHT 22 + + + +
+

DHT 22 temperature/humidity sensor

+

+If there's a DHT 22 connected to GPIO2, its temperature reading is %temperature%*C, humidity is %humidity% . +

+ +
+ diff --git a/html/index.tpl b/html/index.tpl index 4310cb3..ec9e693 100644 --- a/html/index.tpl +++ b/html/index.tpl @@ -4,22 +4,15 @@
-

It Works

+

Main

-If you see this, it means the tiny li'l website in your ESP8266 does actually work. Fyi, this page has -been loaded %counter% times.

- -

And because we're on the Internets now, here are the required pictures of cats:
-
-
-
-

+

Page has been loaded %counter% times.

diff --git a/html/led.tpl b/html/led.tpl index 7a9cf89..6607ea3 100644 --- a/html/led.tpl +++ b/html/led.tpl @@ -1,15 +1,16 @@ -Test +LED

The LED

-If there's a LED connected to GPIO2, it's now %ledstate%. You can change that using the buttons below. +If there's a LED connected to GPIO13, it's now %ledstate%. You can change that using the buttons below.

-
+
+
diff --git a/html/style.css b/html/style.css index 5b6801c..72311e6 100644 --- a/html/style.css +++ b/html/style.css @@ -10,7 +10,7 @@ body { -webkit-border-radius: 5px; border-radius: 5px; border: 2px solid #000000; - width: 800px; + width: 80%; margin: 0 auto; padding: 20px } diff --git a/html/wifi/style.css b/html/wifi/style.css deleted file mode 100644 index 5b6801c..0000000 --- a/html/wifi/style.css +++ /dev/null @@ -1,16 +0,0 @@ - -body { - background-color: #404040; - font-family: sans-serif; -} - -#main { - background-color: #d0d0FF; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - border: 2px solid #000000; - width: 800px; - margin: 0 auto; - padding: 20px -} diff --git a/html/wifi/wifi.tpl b/html/wifi/wifi.tpl index 631b7bc..68f2b03 100644 --- a/html/wifi/wifi.tpl +++ b/html/wifi/wifi.tpl @@ -1,5 +1,5 @@ WiFi connection - +