ESP8266官方两种代码的学习
ESP8266官方提供的两种NonOS_SDK和IOT_RTOS_SDK的编译和简单使用方法。
官方的NonOS_SDK其中的编译环境不需要作任何修改
但是官方为了使RTOS_SDK和NonOS_SDK区别开来,
在RTOS_SDK中做了部分修改加入了SDK_PATH和BIN_PATH两个环境变量,
因此需要做些修改直接使RTOS_SDK的环境变量做些修改;
以下是修改的具体代码:
(1)examples示例代码编译时需要使用gen_misc.sh,该文件的修改具体情况:
diff -r orign_gen_misc.sh new_gen_misc.sh
3,14c3
< :<<!
< ******NOTICE******
< MUST set SDK_PATH & BIN_PATH firstly!!!
< example:
< export SDK_PATH=~/esp_iot_sdk_freertos
< export BIN_PATH=~/esp8266_bin
< !
<
< export SDK_PATH=
< export BIN_PATH=
<
< echo "gen_misc.sh version 20150911"
---
> echo "gen_misc.sh version 20150911"
17,29c6,16
< if [ $SDK_PATH ]; then
< echo "SDK_PATH:"
< echo "$SDK_PATH"
< echo ""
< else
< echo "ERROR: Please export SDK_PATH in gen_misc.sh firstly, exit!!!"
< exit
< fi
<
< if [ $BIN_PATH ]; then
< echo "BIN_PATH:"
< echo "$BIN_PATH"
< echo ""
---
> echo "Please follow below steps(1-5) to generate specific bin(s):"
> echo "STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none)"
> echo "enter(0/1/2, default 2):"
> read input
>
> if [ -z "$input" ]; then
> boot=none
> elif [ $input == 0 ]; then
> boot=old
> elif [ $input == 1 ]; then
> boot=new
31,32c18
< echo "ERROR: Please export BIN_PATH in gen_misc.sh firstly, exit!!!"
< exit
---
> boot=none
34,46d19
<
< echo "Please check SDK_PATH & BIN_PATH, enter (Y/y) to continue:"
< read input
<
< if [[ $input != Y ]] && [[ $input != y ]]; then
< exit
< fi
<
< echo ""
<
< echo "Please follow below steps(1-5) to generate specific bin(s):"
< echo "STEP 1: use boot_v1.2+ by default"
< boot=new
170a144,146
> touch user/user_main.c
>
> echo ""
176c152
< make BOOT=$boot APP=$app SPI_SPEED=$spi_speed SPI_MODE=$spi_mode SPI_SIZE_MAP=$spi_size_map
---
> make COMPILE=gcc BOOT=$boot APP=$app SPI_SPEED=$spi_speed SPI_MODE=$spi_mode SPI_SIZE_MAP=$spi_size_map
>
(2)examples示例代码下的Makefile(这里修改的为websocket示例代码下的Makefile):
diff -r orign_Makefile new_Makefile
30c30
< LDDIR = $(SDK_PATH)/ld
---
> LDDIR = ../ld
53c53
< -L$(SDK_PATH)/lib \
---
> -L../lib \
120c120,121
< sinclude $(SDK_PATH)/Makefile
---
> PDIR := ../$(PDIR)
> sinclude $(PDIR)Makefile
(3)源码根目录的Makefile文件修改:
diff -r orig_Makefile new_Makefile
7,14c7
< ifeq ($(COMPILE), xcc)
< AR = xt-ar
< CC = xt-xcc
< NM = xt-nm
< CPP = xt-xt++
< OBJCOPY = xt-objcopy
< OBJDUMP = xt-objdump
< else
---
> ifeq ($(COMPILE), gcc)
18c11
< CPP = xtensa-lx106-elf-g++
---
> CPP = xtensa-lx106-elf-cpp
20a14,20
> else
> AR = xt-ar
> CC = xt-xcc
> NM = xt-nm
> CPP = xt-cpp
> OBJCOPY = xt-objcopy
> OBJDUMP = xt-objdump
238d237
< @mkdir -p $(BIN_PATH)
242,244c241,243
< @$(RM) -r $(BIN_PATH)/eagle.S $(BIN_PATH)/eagle.dump
< @$(OBJDUMP) -x -s $< > $(BIN_PATH)/eagle.dump
< @$(OBJDUMP) -S $< > $(BIN_PATH)/eagle.S
---
> @$(RM) -r ../bin/eagle.S ../bin/eagle.dump
> @$(OBJDUMP) -x -s $< > ../bin/eagle.dump
> @$(OBJDUMP) -S $< > ../bin/eagle.S
246,249c245,248
< @mkdir -p $(BIN_PATH)/upgrade
< @$(RM) -r $(BIN_PATH)/upgrade/$(BIN_NAME).S $(BIN_PATH)/upgrade/$(BIN_NAME).dump
< @$(OBJDUMP) -x -s $< > $(BIN_PATH)/upgrade/$(BIN_NAME).dump
< @$(OBJDUMP) -S $< > $(BIN_PATH)/upgrade/$(BIN_NAME).S
---
> mkdir -p ../bin/upgrade
> @$(RM) -r ../bin/upgrade/$(BIN_NAME).S ../bin/upgrade/$(BIN_NAME).dump
> @$(OBJDUMP) -x -s $< > ../bin/upgrade/$(BIN_NAME).dump
> @$(OBJDUMP) -S $< > ../bin/upgrade/$(BIN_NAME).S
259d257
< @echo "SDK_PATH: $(SDK_PATH)"
262,264c260,262
< @python $(SDK_PATH)/tools/gen_appbin.py $< 0 $(mode) $(freqdiv) $(size_map)
< @mv eagle.app.flash.bin $(BIN_PATH)/eagle.flash.bin
< @mv eagle.app.v6.irom0text.bin $(BIN_PATH)/eagle.irom0text.bin
---
> @python ../tools/gen_appbin.py $< 0 $(mode) $(freqdiv) $(size_map)
> @mv eagle.app.flash.bin ../bin/eagle.flash.bin
> @mv eagle.app.v6.irom0text.bin ../bin/eagle.irom0text.bin
266,267d263
< @echo "BIN_PATH: $(BIN_PATH)"
< @echo ""
269c265
< @echo "Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATH"
---
> @echo "Generate eagle.flash.bin and eagle.irom0text.bin successully in folder bin."
277c273
< @python $(SDK_PATH)/tools/gen_appbin.py $< 1 $(mode) $(freqdiv) $(size_map)
---
> @python ../tools/gen_appbin.py $< 1 $(mode) $(freqdiv) $(size_map)
280c276
< @python $(SDK_PATH)/tools/gen_appbin.py $< 2 $(mode) $(freqdiv) $(size_map)
---
> @python ../tools/gen_appbin.py $< 2 $(mode) $(freqdiv) $(size_map)
293c289
< @mv eagle.app.flash.bin $(BIN_PATH)/upgrade/$(BIN_NAME).bin
---
> @mv eagle.app.flash.bin ../bin/upgrade/$(BIN_NAME).bin
295c291
< @echo "Generate $(BIN_NAME).bin successully in BIN_PATH"
---
> @echo "Generate $(BIN_NAME).bin successully in folder bin/upgrade."
399,407c395,403
< INCLUDES := $(INCLUDES) -I $(SDK_PATH)/include -I $(SDK_PATH)/extra_include
< INCLUDES += -I $(SDK_PATH)/include/espressif
< INCLUDES += -I $(SDK_PATH)/include/lwip
< INCLUDES += -I $(SDK_PATH)/include/lwip/ipv4
< INCLUDES += -I $(SDK_PATH)/include/lwip/ipv6
< INCLUDES += -I $(SDK_PATH)/include/nopoll
< INCLUDES += -I $(SDK_PATH)/include/spiffs
< INCLUDES += -I $(SDK_PATH)/include/ssl
< INCLUDES += -I $(SDK_PATH)/include/json
---
> INCLUDES := $(INCLUDES) -I $(PDIR)include -I $(PDIR)extra_include
> INCLUDES += -I $(PDIR)include/espressif
> INCLUDES += -I $(PDIR)include/lwip
> INCLUDES += -I $(PDIR)include/lwip/ipv4
> INCLUDES += -I $(PDIR)include/lwip/ipv6
> INCLUDES += -I $(PDIR)include/nopoll
> INCLUDES += -I $(PDIR)include/spiffs
> INCLUDES += -I $(PDIR)include/ssl
> INCLUDES += -I $(PDIR)include/json