2015-02-06 09:35:48 -05:00
|
|
|
APP_INC = -I.
|
|
|
|
APP_INC += -I..
|
|
|
|
APP_INC += -Ifatfs/src
|
|
|
|
APP_INC += -Ifatfs/src/drivers
|
|
|
|
APP_INC += -IFreeRTOS
|
|
|
|
APP_INC += -IFreeRTOS/Source/include
|
|
|
|
APP_INC += -IFreeRTOS/Source/portable/GCC/ARM_CM3
|
|
|
|
APP_INC += -Iftp
|
|
|
|
APP_INC += -Ihal
|
|
|
|
APP_INC += -Ihal/inc
|
|
|
|
APP_INC += -Imisc
|
|
|
|
APP_INC += -Imods
|
2015-02-21 14:55:57 -05:00
|
|
|
APP_INC += -I../drivers/cc3100/inc
|
2015-02-06 09:35:48 -05:00
|
|
|
APP_INC += -Isimplelink
|
|
|
|
APP_INC += -Isimplelink/oslib
|
|
|
|
APP_INC += -Itelnet
|
|
|
|
APP_INC += -Iutil
|
|
|
|
APP_INC += -Ibootmgr
|
|
|
|
APP_INC += -I$(BUILD)
|
2015-02-10 07:11:27 -05:00
|
|
|
APP_INC += -I$(BUILD)/genhdr
|
2015-02-06 09:35:48 -05:00
|
|
|
APP_INC += -I../lib/fatfs
|
|
|
|
APP_INC += -I../lib/mp-readline
|
2015-05-03 14:26:08 -04:00
|
|
|
APP_INC += -I../lib/netutils
|
2015-05-10 20:00:19 -04:00
|
|
|
APP_INC += -I../lib/timeutils
|
2015-02-06 09:35:48 -05:00
|
|
|
APP_INC += -I../stmhal
|
|
|
|
|
|
|
|
APP_CPPDEFINES = -Dgcc -DTARGET_IS_CC3200 -DSL_FULL -DUSE_FREERTOS
|
|
|
|
|
|
|
|
APP_FATFS_SRC_C = $(addprefix fatfs/src/,\
|
|
|
|
drivers/sflash_diskio.c \
|
|
|
|
drivers/sd_diskio.c \
|
|
|
|
option/syscall.c \
|
|
|
|
diskio.c \
|
|
|
|
ffconf.c \
|
|
|
|
)
|
|
|
|
|
|
|
|
APP_RTOS_SRC_C = $(addprefix FreeRTOS/Source/,\
|
|
|
|
croutine.c \
|
|
|
|
event_groups.c \
|
|
|
|
list.c \
|
|
|
|
queue.c \
|
|
|
|
tasks.c \
|
|
|
|
timers.c \
|
|
|
|
portable/GCC/ARM_CM3/port.c \
|
|
|
|
portable/MemMang/heap_4.c \
|
|
|
|
)
|
|
|
|
|
|
|
|
APP_FTP_SRC_C = $(addprefix ftp/,\
|
|
|
|
ftp.c \
|
|
|
|
updater.c \
|
|
|
|
)
|
|
|
|
|
|
|
|
APP_HAL_SRC_C = $(addprefix hal/,\
|
|
|
|
adc.c \
|
|
|
|
aes.c \
|
|
|
|
cc3200_hal.c \
|
|
|
|
cpu.c \
|
|
|
|
crc.c \
|
|
|
|
des.c \
|
|
|
|
gpio.c \
|
|
|
|
i2c.c \
|
|
|
|
i2s.c \
|
|
|
|
interrupt.c \
|
|
|
|
pin.c \
|
|
|
|
prcm.c \
|
|
|
|
sdhost.c \
|
|
|
|
shamd5.c \
|
|
|
|
spi.c \
|
|
|
|
startup_gcc.c \
|
|
|
|
systick.c \
|
|
|
|
timer.c \
|
|
|
|
uart.c \
|
|
|
|
utils.c \
|
|
|
|
wdt.c \
|
|
|
|
)
|
|
|
|
|
|
|
|
APP_MISC_SRC_C = $(addprefix misc/,\
|
2015-06-06 12:42:51 -04:00
|
|
|
antenna.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
FreeRTOSHooks.c \
|
|
|
|
help.c \
|
2015-09-22 17:20:29 -04:00
|
|
|
mpirq.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
mperror.c \
|
|
|
|
mpexception.c \
|
2015-03-19 09:41:34 -04:00
|
|
|
mpsystick.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
APP_MODS_SRC_C = $(addprefix mods/,\
|
2015-09-27 07:45:48 -04:00
|
|
|
modmachine.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
modnetwork.c \
|
2015-05-22 03:54:10 -04:00
|
|
|
modubinascii.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
moduos.c \
|
|
|
|
modusocket.c \
|
2015-06-11 14:26:24 -04:00
|
|
|
modussl.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
modutime.c \
|
2015-10-14 03:46:18 -04:00
|
|
|
modwipy.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
modwlan.c \
|
2015-02-19 15:03:21 -05:00
|
|
|
pybadc.c \
|
2015-02-09 13:38:02 -05:00
|
|
|
pybpin.c \
|
2015-03-04 07:52:39 -05:00
|
|
|
pybi2c.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
pybrtc.c \
|
2015-02-21 08:10:33 -05:00
|
|
|
pybsd.c \
|
2015-02-27 10:50:06 -05:00
|
|
|
pybsleep.c \
|
2015-03-19 10:17:39 -04:00
|
|
|
pybspi.c \
|
2015-05-09 11:46:16 -04:00
|
|
|
pybtimer.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
pybuart.c \
|
2015-02-25 05:08:51 -05:00
|
|
|
pybwdt.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
)
|
|
|
|
|
2015-02-21 14:55:57 -05:00
|
|
|
APP_CC3100_SRC_C = $(addprefix drivers/cc3100/src/,\
|
|
|
|
device.c \
|
|
|
|
driver.c \
|
|
|
|
flowcont.c \
|
|
|
|
fs.c \
|
|
|
|
netapp.c \
|
|
|
|
netcfg.c \
|
|
|
|
socket.c \
|
|
|
|
wlan.c \
|
|
|
|
)
|
|
|
|
|
2015-02-06 09:35:48 -05:00
|
|
|
APP_SL_SRC_C = $(addprefix simplelink/,\
|
|
|
|
oslib/osi_freertos.c \
|
|
|
|
cc_pal.c \
|
|
|
|
)
|
|
|
|
|
|
|
|
APP_TELNET_SRC_C = $(addprefix telnet/,\
|
|
|
|
telnet.c \
|
|
|
|
)
|
|
|
|
|
|
|
|
APP_UTIL_SRC_C = $(addprefix util/,\
|
2015-05-19 18:23:13 -04:00
|
|
|
cryptohash.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
fifo.c \
|
|
|
|
gccollect.c \
|
|
|
|
random.c \
|
|
|
|
socketfifo.c \
|
|
|
|
)
|
|
|
|
|
|
|
|
APP_UTIL_SRC_S = $(addprefix util/,\
|
|
|
|
gchelper.s \
|
2015-03-04 07:52:39 -05:00
|
|
|
sleeprestore.s \
|
2015-02-06 09:35:48 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
APP_MAIN_SRC_C = \
|
|
|
|
main.c \
|
|
|
|
mptask.c \
|
|
|
|
serverstask.c
|
|
|
|
|
|
|
|
APP_LIB_SRC_C = $(addprefix lib/,\
|
|
|
|
fatfs/ff.c \
|
2015-04-10 15:02:07 -04:00
|
|
|
fatfs/option/ccsbcs.c \
|
|
|
|
libc/string0.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
mp-readline/readline.c \
|
2015-05-03 14:26:08 -04:00
|
|
|
netutils/netutils.c \
|
2015-05-10 20:00:19 -04:00
|
|
|
timeutils/timeutils.c \
|
2015-10-31 13:20:04 -04:00
|
|
|
utils/pyexec.c \
|
2016-04-21 15:17:50 -04:00
|
|
|
utils/pyhelp.c \
|
2015-11-10 11:57:45 -05:00
|
|
|
utils/printf.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
APP_STM_SRC_C = $(addprefix stmhal/,\
|
|
|
|
bufhelper.c \
|
2016-02-06 18:26:01 -05:00
|
|
|
builtin_open.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
import.c \
|
|
|
|
input.c \
|
|
|
|
irq.c \
|
|
|
|
lexerfatfs.c \
|
|
|
|
moduselect.c \
|
2015-02-13 10:04:53 -05:00
|
|
|
pybstdio.c \
|
2015-02-06 09:35:48 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
OBJ = $(PY_O) $(addprefix $(BUILD)/, $(APP_FATFS_SRC_C:.c=.o) $(APP_RTOS_SRC_C:.c=.o) $(APP_FTP_SRC_C:.c=.o) $(APP_HAL_SRC_C:.c=.o) $(APP_MISC_SRC_C:.c=.o))
|
2015-02-21 14:55:57 -05:00
|
|
|
OBJ += $(addprefix $(BUILD)/, $(APP_MODS_SRC_C:.c=.o) $(APP_CC3100_SRC_C:.c=.o) $(APP_SL_SRC_C:.c=.o) $(APP_TELNET_SRC_C:.c=.o) $(APP_UTIL_SRC_C:.c=.o) $(APP_UTIL_SRC_S:.s=.o))
|
2015-02-06 09:35:48 -05:00
|
|
|
OBJ += $(addprefix $(BUILD)/, $(APP_MAIN_SRC_C:.c=.o) $(APP_LIB_SRC_C:.c=.o) $(APP_STM_SRC_C:.c=.o))
|
|
|
|
OBJ += $(BUILD)/pins.o
|
|
|
|
|
py: Add rules for automated extraction of qstrs from sources.
- add template rule that converts a specified source file into a qstring file
- add special rule for generating a central header that contains all
extracted/autogenerated strings - defined by QSTR_DEFS_COLLECTED
variable. Each platform appends a list of sources that may contain
qstrings into a new build variable: SRC_QSTR. Any autogenerated
prerequisities are should be appened to SRC_QSTR_AUTO_DEPS variable.
- remove most qstrings from py/qstrdefs, keep only qstrings that
contain special characters - these cannot be easily detected in the
sources without additional annotations
- remove most manual qstrdefs, use qstrdef autogen for: py, cc3200,
stmhal, teensy, unix, windows, pic16bit:
- remove all micropython generic qstrdefs except for the special strings that contain special characters (e.g. /,+,<,> etc.)
- remove all port specific qstrdefs except for special strings
- append sources for qstr generation in platform makefiles (SRC_QSTR)
2016-03-10 04:22:41 -05:00
|
|
|
# List of sources for qstr extraction
|
|
|
|
SRC_QSTR += $(APP_MODS_SRC_C) $(APP_MISC_SRC_C) $(APP_STM_SRC_C)
|
|
|
|
# Append any auto-generated sources that are needed by sources listed in
|
|
|
|
# SRC_QSTR
|
|
|
|
SRC_QSTR_AUTO_DEPS +=
|
|
|
|
|
2015-02-06 09:35:48 -05:00
|
|
|
# Add the linker script
|
|
|
|
LINKER_SCRIPT = application.lds
|
|
|
|
LDFLAGS += -T $(LINKER_SCRIPT)
|
|
|
|
|
|
|
|
# Add the application specific CFLAGS
|
|
|
|
CFLAGS += $(APP_CPPDEFINES) $(APP_INC)
|
|
|
|
|
|
|
|
# Disable strict aliasing for the simplelink driver
|
2015-02-21 14:55:57 -05:00
|
|
|
$(BUILD)/drivers/cc3100/src/driver.o: CFLAGS += -fno-strict-aliasing
|
2015-02-06 09:35:48 -05:00
|
|
|
|
|
|
|
# Check if we would like to debug the port code
|
|
|
|
ifeq ($(BTYPE), release)
|
2016-02-21 15:05:58 -05:00
|
|
|
CFLAGS += -DNDEBUG
|
2015-02-06 09:35:48 -05:00
|
|
|
else
|
|
|
|
ifeq ($(BTYPE), debug)
|
2016-02-21 15:05:58 -05:00
|
|
|
CFLAGS += -DNDEBUG
|
2015-02-06 09:35:48 -05:00
|
|
|
else
|
|
|
|
$(error Invalid BTYPE specified)
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
SHELL = bash
|
|
|
|
APP_SIGN = appsign.sh
|
2015-06-24 09:23:03 -04:00
|
|
|
UPDATE_WIPY ?= tools/update-wipy.py
|
|
|
|
WIPY_IP ?= '192.168.1.1'
|
|
|
|
WIPY_USER ?= 'micro'
|
|
|
|
WIPY_PWD ?= 'python'
|
2015-02-06 09:35:48 -05:00
|
|
|
|
2015-04-10 15:02:07 -04:00
|
|
|
all: $(BUILD)/mcuimg.bin
|
2015-02-06 09:35:48 -05:00
|
|
|
|
2015-06-24 09:23:03 -04:00
|
|
|
.PHONY: deploy
|
|
|
|
|
|
|
|
deploy: $(BUILD)/mcuimg.bin
|
|
|
|
$(ECHO) "Writing $< to the board"
|
|
|
|
$(Q)$(PYTHON) $(UPDATE_WIPY) --verify --ip $(WIPY_IP) --user $(WIPY_USER) --password $(WIPY_PWD) --file $<
|
|
|
|
|
2015-02-06 09:35:48 -05:00
|
|
|
$(BUILD)/application.axf: $(OBJ) $(LINKER_SCRIPT)
|
|
|
|
$(ECHO) "LINK $@"
|
|
|
|
$(Q)$(CC) -o $@ $(LDFLAGS) $(OBJ) $(LIBS)
|
|
|
|
$(Q)$(SIZE) $@
|
|
|
|
|
|
|
|
$(BUILD)/application.bin: $(BUILD)/application.axf
|
|
|
|
$(ECHO) "Create $@"
|
|
|
|
$(Q)$(OBJCOPY) -O binary $< $@
|
|
|
|
|
2015-04-10 15:02:07 -04:00
|
|
|
$(BUILD)/mcuimg.bin: $(BUILD)/application.bin
|
2015-02-06 09:35:48 -05:00
|
|
|
$(ECHO) "Create $@"
|
2015-10-28 06:09:45 -04:00
|
|
|
$(Q)$(SHELL) $(APP_SIGN) $(BUILD)
|
2015-02-06 09:35:48 -05:00
|
|
|
|
|
|
|
MAKE_PINS = boards/make-pins.py
|
|
|
|
BOARD_PINS = boards/$(BOARD)/pins.csv
|
|
|
|
AF_FILE = boards/cc3200_af.csv
|
|
|
|
PREFIX_FILE = boards/cc3200_prefix.c
|
|
|
|
GEN_PINS_SRC = $(BUILD)/pins.c
|
|
|
|
GEN_PINS_HDR = $(HEADER_BUILD)/pins.h
|
|
|
|
GEN_PINS_QSTR = $(BUILD)/pins_qstr.h
|
2015-02-14 10:35:29 -05:00
|
|
|
|
2015-02-06 09:35:48 -05:00
|
|
|
# Making OBJ use an order-only dependency on the generated pins.h file
|
|
|
|
# has the side effect of making the pins.h file before we actually compile
|
|
|
|
# any of the objects. The normal dependency generation will deal with the
|
|
|
|
# case when pins.h is modified. But when it doesn't exist, we don't know
|
|
|
|
# which source files might need it.
|
|
|
|
$(OBJ): | $(GEN_PINS_HDR)
|
|
|
|
|
|
|
|
# Call make-pins.py to generate both pins_gen.c and pins.h
|
|
|
|
$(GEN_PINS_SRC) $(GEN_PINS_HDR) $(GEN_PINS_QSTR): $(BOARD_PINS) $(MAKE_PINS) $(AF_FILE) $(PREFIX_FILE) | $(HEADER_BUILD)
|
|
|
|
$(ECHO) "Create $@"
|
|
|
|
$(Q)$(PYTHON) $(MAKE_PINS) --board $(BOARD_PINS) --af $(AF_FILE) --prefix $(PREFIX_FILE) --hdr $(GEN_PINS_HDR) --qstr $(GEN_PINS_QSTR) > $(GEN_PINS_SRC)
|
|
|
|
|
|
|
|
$(BUILD)/pins.o: $(BUILD)/pins.c
|
|
|
|
$(call compile_c)
|