Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
46baa07
commit 1d50f6e
Showing
17 changed files
with
349 additions
and
203 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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)))) |
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<html><head><title>DHT 22</title> | ||
<link rel="stylesheet" type="text/css" href="style.css"> | ||
</head> | ||
<body> | ||
<div id="main"> | ||
<h1>DHT 22 temperature/humidity sensor</h1> | ||
<p> | ||
If there's a DHT 22 connected to GPIO2, its temperature reading is %temperature%*C, humidity is %humidity% . | ||
</p> | ||
<button onclick="location.href = '/';" class="float-left submit-button" >Home</button> | ||
</div> | ||
</body></html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,16 @@ | ||
<html><head><title>Test</title> | ||
<html><head><title>LED</title> | ||
<link rel="stylesheet" type="text/css" href="style.css"> | ||
</head> | ||
<body> | ||
<div id="main"> | ||
<h1>The LED</h1> | ||
<p> | ||
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. | ||
</p> | ||
<form method="post" action="led.cgi"> | ||
<form method="get" action="led.cgi"> | ||
<input type="submit" name="led" value="1"> | ||
<input type="submit" name="led" value="0"> | ||
</form> | ||
<button onclick="location.href = '/';" class="float-left submit-button" >Home</button> | ||
</div> | ||
</body></html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.