Fork me on GitHub

ESP8266-NonOS_SDK&IOT_RTOS_SDK

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

本文标题:ESP8266-NonOS_SDK&IOT_RTOS_SDK

文章作者:Sui

发布时间:2016年10月02日 - 13:10

最后更新:2018年06月17日 - 23:06

原始链接:http://23171580.github.io/2016/10/02/ESP8266-NonOS_SDK&IOT_RTOS_SDK/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。