Esp8266开发日记-3.RTOS-SDK模板工程

一、从ESP官网下载RTOS-SDK源码

二、为了使RTOS-SDK代码组织形式和NONOS-SDK一样,修改makefile

ESP官方为了使RTOS-SDK的SDK和USER CODE分离,使用了SDK_PATH和BIN_PATH变量,下面是makefile修改步骤

1.建立app文件夹,拷贝examples中project_template下所有文件到app中

*.只需修改app文件夹和sdk文件夹下的makefile代码

*修改规则:(可参照NONOS-SDK的makefile)

app下的makefile:

LDDIR = $(SDK_PATH)/ld
LDDIR = ../ld

当前目录是app,../表示回到sdk目录下,LDDIR指示ld目录下

LINKFLAGS_eagle.app.v6 = \
    -L$(SDK_PATH)/lib        \
LINKFLAGS_eagle.app.v6 = \
    -L../lib        \

与上同

INCLUDES := $(INCLUDES) -I $(PDIR)include
sinclude $(SDK_PATH)/Makefile
INCLUDES := $(INCLUDES) -I $(PDIR)include
PDIR := ../$(PDIR)
sinclude $(PDIR)Makefile

该处参照NONOS-SDK即可

sdk下的makefile:

ifeq ($(APP), 0)
    @$(RM) -r $(BIN_PATH)/eagle.S $(BIN_PATH)/eagle.dump
    @$(OBJDUMP) -x -s $< > $(BIN_PATH)/eagle.dump
    @$(OBJDUMP) -S $< > $(BIN_PATH)/eagle.S
else
    @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
endif
ifeq ($(APP), 0)
    @$(RM) -r ../bin/eagle.S ../bin/eagle.dump
    @$(OBJDUMP) -x -s $< > ../bin/eagle.dump
    @$(OBJDUMP) -S $< > ../bin/eagle.S
else
    @$(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
endif

当前目录仍为app下, 即$(BIN_PATH)即等于../bin

ifeq ($(app), 0)
    @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
    @rm eagle.app.v6.*
    @echo "BIN_PATH: $(BIN_PATH)"
    @echo ""
    @echo "No boot needed."
    @echo "Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATH"
    @echo "eagle.flash.bin-------->0x00000"
    @echo "eagle.irom0text.bin---->0x40000"
ifeq ($(app), 0)
    @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
    @rm eagle.app.v6.*
    
    @echo ""
    @echo "No boot needed."
    @echo "Generate eagle.flash.bin and eagle.irom0text.bin successully in bin file"
    @echo "eagle.flash.bin-------->0x00000"
    @echo "eagle.irom0text.bin---->0x40000"
    @echo ""

与上同

ifneq ($(boot), new)
        @python $(SDK_PATH)/tools/gen_appbin.py $< 1 $(mode) $(freqdiv) $(size_map)
        @echo "Support boot_v1.1 and +"
    else
        @python $(SDK_PATH)/tools/gen_appbin.py $< 2 $(mode) $(freqdiv) $(size_map)

        ifeq ($(size_map), 6)
        @echo "Support boot_v1.4 and +"
        else
            ifeq ($(size_map), 5)
        @echo "Support boot_v1.4 and +"
            else
        @echo "Support boot_v1.2 and +"
            endif
        endif
    endif
....

else

    ifneq ($(boot), new)
        @python ../tools/gen_appbin.py $< 1 $(mode) $(freqdiv) $(size_map)
        @echo "Support boot_v1.1 and +"
    else
        @python ../tools/gen_appbin.py $< 2 $(mode) $(freqdiv) $(size_map)

        ifeq ($(size_map), 6)
        @echo "Support boot_v1.4 and +"
        else
            ifeq ($(size_map), 5)
        @echo "Support boot_v1.4 and +"
            else
        @echo "Support boot_v1.2 and +"
            endif
        endif
    endif

    @mv eagle.app.flash.bin ../bin/upgrade/$(BIN_NAME).bin
    @rm eagle.app.v6.*
    @echo "Generate $(BIN_NAME).bin successully in bin file"
    @echo "boot.bin------------>0x00000"
    @echo "$(BIN_NAME).bin--->$(addr)"
endif

与上同

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

//参照NONOS-SDK:
INCLUDES := $(INCLUDES) -I $(PDIR)include -I $(PDIR)include/$(TARGET)
PDIR := ../$(PDIR)
sinclude $(PDIR)Makefile

//修改为:
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 := $(INCLUDES) -I $(PDIR)include -I $(PDIR)include/$(TARGET)
PDIR := ../$(PDIR)
sinclude $(PDIR)Makefil

这两种方法不知对错,暂时保留!

 三、修改user_init()函数:

#include "esp_common.h"

void user_init(void)
{
    printf("********\n");
    printf("SDK version:%s\n", system_get_sdk_version());
    printf("********\n");
}

 

posted @ 2016-01-01 12:49  L-liwen  阅读(3789)  评论(0编辑  收藏  举报