forked from espressif/ESP8266_MP3_DECODER
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This is esp iot sdk RTOS initial version.
- Loading branch information
espressif
committed
Dec 5, 2014
1 parent
db08b45
commit b625e58
Showing
267 changed files
with
102,862 additions
and
0 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 |
---|---|---|
@@ -0,0 +1,176 @@ | ||
# copyright (c) 2010 Espressif System | ||
# | ||
ifndef PDIR | ||
|
||
endif | ||
|
||
AR = xt-ar | ||
CC = xt-xcc | ||
NM = xt-nm | ||
CPP = xt-cpp | ||
OBJCOPY = xt-objcopy | ||
#MAKE = xt-make | ||
|
||
CSRCS ?= $(wildcard *.c) | ||
ASRCs ?= $(wildcard *.s) | ||
ASRCS ?= $(wildcard *.S) | ||
SUBDIRS ?= $(patsubst %/,%,$(dir $(wildcard */Makefile))) | ||
|
||
ODIR := .output | ||
OBJODIR := $(ODIR)/$(TARGET)/$(FLAVOR)/obj | ||
|
||
OBJS := $(CSRCS:%.c=$(OBJODIR)/%.o) \ | ||
$(ASRCs:%.s=$(OBJODIR)/%.o) \ | ||
$(ASRCS:%.S=$(OBJODIR)/%.o) | ||
|
||
DEPS := $(CSRCS:%.c=$(OBJODIR)/%.d) \ | ||
$(ASRCs:%.s=$(OBJODIR)/%.d) \ | ||
$(ASRCS:%.S=$(OBJODIR)/%.d) | ||
|
||
LIBODIR := $(ODIR)/$(TARGET)/$(FLAVOR)/lib | ||
OLIBS := $(GEN_LIBS:%=$(LIBODIR)/%) | ||
|
||
IMAGEODIR := $(ODIR)/$(TARGET)/$(FLAVOR)/image | ||
OIMAGES := $(GEN_IMAGES:%=$(IMAGEODIR)/%) | ||
|
||
BINODIR := $(ODIR)/$(TARGET)/$(FLAVOR)/bin | ||
OBINS := $(GEN_BINS:%=$(BINODIR)/%) | ||
|
||
CCFLAGS += \ | ||
-g \ | ||
-O2 \ | ||
-Wpointer-arith \ | ||
-Wundef \ | ||
-Werror \ | ||
-Wl,-EL \ | ||
-fno-inline-functions \ | ||
-nostdlib \ | ||
-mlongcalls \ | ||
-mtext-section-literals | ||
# -Wall | ||
|
||
CFLAGS = $(CCFLAGS) $(DEFINES) $(EXTRA_CCFLAGS) $(INCLUDES) | ||
DFLAGS = $(CCFLAGS) $(DDEFINES) $(EXTRA_CCFLAGS) $(INCLUDES) | ||
|
||
|
||
############################################################# | ||
# Functions | ||
# | ||
|
||
define ShortcutRule | ||
$(1): .subdirs $(2)/$(1) | ||
endef | ||
|
||
define MakeLibrary | ||
DEP_LIBS_$(1) = $$(foreach lib,$$(filter %.a,$$(COMPONENTS_$(1))),$$(dir $$(lib))$$(LIBODIR)/$$(notdir $$(lib))) | ||
DEP_OBJS_$(1) = $$(foreach obj,$$(filter %.o,$$(COMPONENTS_$(1))),$$(dir $$(obj))$$(OBJODIR)/$$(notdir $$(obj))) | ||
$$(LIBODIR)/$(1).a: $$(OBJS) $$(DEP_OBJS_$(1)) $$(DEP_LIBS_$(1)) $$(DEPENDS_$(1)) | ||
@mkdir -p $$(LIBODIR) | ||
$$(if $$(filter %.a,$$?),mkdir -p $$(EXTRACT_DIR)_$(1)) | ||
$$(if $$(filter %.a,$$?),cd $$(EXTRACT_DIR)_$(1); $$(foreach lib,$$(filter %.a,$$?),$$(AR) xo $$(UP_EXTRACT_DIR)/$$(lib);)) | ||
$$(AR) ru $$@ $$(filter %.o,$$?) $$(if $$(filter %.a,$$?),$$(EXTRACT_DIR)_$(1)/*.o) | ||
$$(if $$(filter %.a,$$?),$$(RM) -r $$(EXTRACT_DIR)_$(1)) | ||
endef | ||
|
||
define MakeImage | ||
DEP_LIBS_$(1) = $$(foreach lib,$$(filter %.a,$$(COMPONENTS_$(1))),$$(dir $$(lib))$$(LIBODIR)/$$(notdir $$(lib))) | ||
DEP_OBJS_$(1) = $$(foreach obj,$$(filter %.o,$$(COMPONENTS_$(1))),$$(dir $$(obj))$$(OBJODIR)/$$(notdir $$(obj))) | ||
$$(IMAGEODIR)/$(1).out: $$(OBJS) $$(DEP_OBJS_$(1)) $$(DEP_LIBS_$(1)) $$(DEPENDS_$(1)) | ||
@mkdir -p $$(IMAGEODIR) | ||
$$(CC) $$(LDFLAGS) $$(if $$(LINKFLAGS_$(1)),$$(LINKFLAGS_$(1)),$$(LINKFLAGS_DEFAULT) $$(OBJS) $$(DEP_OBJS_$(1)) $$(DEP_LIBS_$(1))) -o $$@ | ||
endef | ||
|
||
$(BINODIR)/%.bin: $(IMAGEODIR)/%.out | ||
@mkdir -p $(BINODIR) | ||
$(OBJCOPY) -O binary $< $@ | ||
|
||
############################################################# | ||
# Rules base | ||
# Should be done in top-level makefile only | ||
# | ||
|
||
all: .subdirs $(OBJS) $(OLIBS) $(OIMAGES) $(OBINS) $(SPECIAL_MKTARGETS) | ||
|
||
clean: | ||
$(foreach d, $(SUBDIRS), $(MAKE) -C $(d) clean;) | ||
$(RM) -r $(ODIR)/$(TARGET)/$(FLAVOR) | ||
|
||
clobber: $(SPECIAL_CLOBBER) | ||
$(foreach d, $(SUBDIRS), $(MAKE) -C $(d) clobber;) | ||
$(RM) -r $(ODIR) | ||
|
||
.subdirs: | ||
@set -e; $(foreach d, $(SUBDIRS), $(MAKE) -C $(d);) | ||
|
||
#.subdirs: | ||
# $(foreach d, $(SUBDIRS), $(MAKE) -C $(d)) | ||
|
||
ifneq ($(MAKECMDGOALS),clean) | ||
ifneq ($(MAKECMDGOALS),clobber) | ||
ifdef DEPS | ||
sinclude $(DEPS) | ||
endif | ||
endif | ||
endif | ||
|
||
$(OBJODIR)/%.o: %.c | ||
@mkdir -p $(OBJODIR); | ||
$(CC) $(if $(findstring $<,$(DSRCS)),$(DFLAGS),$(CFLAGS)) $(COPTS_$(*F)) -o $@ -c $< | ||
|
||
$(OBJODIR)/%.d: %.c | ||
@mkdir -p $(OBJODIR); | ||
@echo DEPEND: $(CC) -M $(CFLAGS) $< | ||
@set -e; rm -f $@; \ | ||
$(CC) -M $(CFLAGS) $< > $@.$$$$; \ | ||
sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \ | ||
rm -f $@.$$$$ | ||
|
||
$(OBJODIR)/%.o: %.s | ||
@mkdir -p $(OBJODIR); | ||
$(CC) $(CFLAGS) -o $@ -c $< | ||
|
||
$(OBJODIR)/%.d: %.s | ||
@mkdir -p $(OBJODIR); \ | ||
set -e; rm -f $@; \ | ||
$(CC) -M $(CFLAGS) $< > $@.$$$$; \ | ||
sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \ | ||
rm -f $@.$$$$ | ||
|
||
$(OBJODIR)/%.o: %.S | ||
@mkdir -p $(OBJODIR); | ||
$(CC) $(CFLAGS) -D__ASSEMBLER__ -o $@ -c $< | ||
|
||
$(OBJODIR)/%.d: %.S | ||
@mkdir -p $(OBJODIR); \ | ||
set -e; rm -f $@; \ | ||
$(CC) -M $(CFLAGS) $< > $@.$$$$; \ | ||
sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \ | ||
rm -f $@.$$$$ | ||
|
||
$(foreach lib,$(GEN_LIBS),$(eval $(call ShortcutRule,$(lib),$(LIBODIR)))) | ||
|
||
$(foreach image,$(GEN_IMAGES),$(eval $(call ShortcutRule,$(image),$(IMAGEODIR)))) | ||
|
||
$(foreach bin,$(GEN_BINS),$(eval $(call ShortcutRule,$(bin),$(BINODIR)))) | ||
|
||
$(foreach lib,$(GEN_LIBS),$(eval $(call MakeLibrary,$(basename $(lib))))) | ||
|
||
$(foreach image,$(GEN_IMAGES),$(eval $(call MakeImage,$(basename $(image))))) | ||
|
||
############################################################# | ||
# Recursion Magic - Don't touch this!! | ||
# | ||
# Each subtree potentially has an include directory | ||
# corresponding to the common APIs applicable to modules | ||
# rooted at that subtree. Accordingly, the INCLUDE PATH | ||
# of a module can only contain the include directories up | ||
# its parent path, and not its siblings | ||
# | ||
# Required for each makefile to inherit from the parent | ||
# | ||
|
||
INCLUDES := $(INCLUDES) -I $(PDIR)include -I $(PDIR)include/$(TARGET) | ||
INCLUDES += -I ./ -I $(PDIR)include/lwip -I $(PDIR)include/lwip/ipv4 -I $(PDIR)include/lwip/ipv6 | ||
INCLUDES += -I $(PDIR)include/espressif | ||
PDIR := ../$(PDIR) | ||
sinclude $(PDIR)Makefile |
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,140 @@ | ||
############################################################# | ||
# Required variables for each makefile | ||
# Discard this section from all parent makefiles | ||
# Expected variables (with automatic defaults): | ||
# CSRCS (all "C" files in the dir) | ||
# SUBDIRS (all subdirs with a Makefile) | ||
# GEN_LIBS - list of libs to be generated () | ||
# GEN_IMAGES - list of object file images to be generated () | ||
# GEN_BINS - list of binaries to be generated () | ||
# COMPONENTS_xxx - a list of libs/objs in the form | ||
# subdir/lib to be extracted and rolled up into | ||
# a generated lib/image xxx.a () | ||
# | ||
TARGET = eagle | ||
#FLAVOR = release | ||
FLAVOR = debug | ||
|
||
#EXTRA_CCFLAGS += -u | ||
|
||
ifndef PDIR # { | ||
GEN_IMAGES= eagle.app.v6.out | ||
GEN_BINS= eagle.app.v6.bin | ||
SPECIAL_MKTARGETS=$(APP_MKTARGETS) | ||
SUBDIRS= \ | ||
user | ||
|
||
endif # } PDIR | ||
|
||
APPDIR = . | ||
LDDIR = ../ld | ||
|
||
CCFLAGS += -Os | ||
|
||
TARGET_LDFLAGS = \ | ||
-nostdlib \ | ||
-Wl,-EL \ | ||
--longcalls \ | ||
--text-section-literals | ||
|
||
ifeq ($(FLAVOR),debug) | ||
TARGET_LDFLAGS += -g -O2 | ||
endif | ||
|
||
ifeq ($(FLAVOR),release) | ||
TARGET_LDFLAGS += -g -O0 | ||
endif | ||
|
||
LD_FILE = $(LDDIR)/eagle.app.v6.ld | ||
|
||
ifeq ($(APP), 1) | ||
LD_FILE = $(LDDIR)/eagle.app.v6.app1.ld | ||
endif | ||
|
||
ifeq ($(APP), 2) | ||
LD_FILE = $(LDDIR)/eagle.app.v6.app2.ld | ||
endif | ||
|
||
COMPONENTS_eagle.app.v6 = \ | ||
user/libuser.a | ||
|
||
LINKFLAGS_eagle.app.v6 = \ | ||
-L../lib \ | ||
-nostdlib \ | ||
-T$(LD_FILE) \ | ||
-Wl,--no-check-sections \ | ||
-u call_user_start \ | ||
-Wl,-static \ | ||
-Wl,--start-group \ | ||
-lgcc \ | ||
-lhal \ | ||
-lphy \ | ||
-lpp \ | ||
-lnet80211 \ | ||
-lwpa \ | ||
-lmain \ | ||
-lfreertos \ | ||
-llwip \ | ||
-ludhcp \ | ||
$(DEP_LIBS_eagle.app.v6) \ | ||
-Wl,--end-group | ||
|
||
DEPENDS_eagle.app.v6 = \ | ||
$(LD_FILE) \ | ||
$(LDDIR)/eagle.rom.addr.v6.ld | ||
|
||
############################################################# | ||
# Configuration i.e. compile options etc. | ||
# Target specific stuff (defines etc.) goes in here! | ||
# Generally values applying to a tree are captured in the | ||
# makefile at its root level - these are then overridden | ||
# for a subtree within the makefile rooted therein | ||
# | ||
|
||
#UNIVERSAL_TARGET_DEFINES = \ | ||
|
||
# Other potential configuration flags include: | ||
# -DTXRX_TXBUF_DEBUG | ||
# -DTXRX_RXBUF_DEBUG | ||
# -DWLAN_CONFIG_CCX | ||
CONFIGURATION_DEFINES = -D__ets__ \ | ||
-DICACHE_FLASH | ||
|
||
DEFINES += \ | ||
$(UNIVERSAL_TARGET_DEFINES) \ | ||
$(CONFIGURATION_DEFINES) | ||
|
||
DDEFINES += \ | ||
$(UNIVERSAL_TARGET_DEFINES) \ | ||
$(CONFIGURATION_DEFINES) | ||
|
||
|
||
############################################################# | ||
# Recursion Magic - Don't touch this!! | ||
# | ||
# Each subtree potentially has an include directory | ||
# corresponding to the common APIs applicable to modules | ||
# rooted at that subtree. Accordingly, the INCLUDE PATH | ||
# of a module can only contain the include directories up | ||
# its parent path, and not its siblings | ||
# | ||
# Required for each makefile to inherit from the parent | ||
# | ||
|
||
INCLUDES := $(INCLUDES) -I $(PDIR)include | ||
INCLUDES += -I ./ | ||
PDIR := ../$(PDIR) | ||
sinclude $(PDIR)Makefile | ||
|
||
######################################################################### | ||
# | ||
# generate bin file | ||
# | ||
|
||
$(BINODIR)/%.bin: $(IMAGEODIR)/%.out | ||
@mkdir -p $(BINODIR) | ||
$(OBJCOPY) -O binary $< $@ | ||
|
||
.PHONY: FORCE | ||
FORCE: | ||
|
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,27 @@ | ||
@echo off | ||
set BACKPATH=%PATH% | ||
set PATH=%BACKPATH%;%CD%\..\tools | ||
@echo on | ||
|
||
del /F ..\bin\eagle.app.v6.flash.bin ..\bin\eagle.app.v6.irom0text.bin ..\bin\eagle.app.v6.dump ..\bin\eagle.app.v6.S | ||
|
||
cd .output\eagle\debug\image | ||
|
||
xt-objdump -x -s eagle.app.v6.out > ..\..\..\..\..\bin\eagle.app.v6.dump | ||
xt-objdump -S eagle.app.v6.out > ..\..\..\..\..\bin\eagle.app.v6.S | ||
|
||
xt-objcopy --only-section .text -O binary eagle.app.v6.out eagle.app.v6.text.bin | ||
xt-objcopy --only-section .data -O binary eagle.app.v6.out eagle.app.v6.data.bin | ||
xt-objcopy --only-section .rodata -O binary eagle.app.v6.out eagle.app.v6.rodata.bin | ||
xt-objcopy --only-section .irom0.text -O binary eagle.app.v6.out eagle.app.v6.irom0text.bin | ||
|
||
gen_appbin.py eagle.app.v6.out v6 | ||
|
||
xcopy /y eagle.app.v6.irom0text.bin ..\..\..\..\..\bin\ | ||
xcopy /y eagle.app.v6.flash.bin ..\..\..\..\..\bin\ | ||
|
||
cd ..\..\..\..\ | ||
|
||
@echo off | ||
set PATH=%BACKPATH% | ||
@echo on |
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,25 @@ | ||
#!/bin/bash -x | ||
make | ||
if [ $? == 0 ];then | ||
rm ../bin/eagle.app.v6.flash.bin ../bin/eagle.app.v6.irom0text.bin ../bin/eagle.app.v6.dump ../bin/eagle.app.v6.S | ||
|
||
cd .output/eagle/debug/image | ||
|
||
xt-objdump -x -s eagle.app.v6.out > ../../../../../bin/eagle.app.v6.dump | ||
xt-objdump -S eagle.app.v6.out > ../../../../../bin/eagle.app.v6.S | ||
|
||
xt-objcopy --only-section .text -O binary eagle.app.v6.out eagle.app.v6.text.bin | ||
xt-objcopy --only-section .data -O binary eagle.app.v6.out eagle.app.v6.data.bin | ||
xt-objcopy --only-section .rodata -O binary eagle.app.v6.out eagle.app.v6.rodata.bin | ||
xt-objcopy --only-section .irom0.text -O binary eagle.app.v6.out eagle.app.v6.irom0text.bin | ||
|
||
../../../../../tools/gen_appbin.py eagle.app.v6.out v6 | ||
|
||
cp eagle.app.v6.irom0text.bin ../../../../../bin/ | ||
cp eagle.app.v6.flash.bin ../../../../../bin/ | ||
|
||
cd ../../../../../ | ||
|
||
else | ||
echo "make error" | ||
fi |
Oops, something went wrong.