diff options
| author | danicampora | 2015-02-06 15:35:48 +0100 |
|---|---|---|
| committer | Damien George | 2015-02-06 22:10:11 +0000 |
| commit | 8785645a952c03315dbf93667b5f7c7eec49762f (patch) | |
| tree | 267e2d572d87e92bfc0bfabf83859231152a2162 /cc3200/application.mk | |
| parent | 97f14606f528180d1482cffbe3571163a1dd9273 (diff) | |
cc3200: Add cc3200 port of MicroPython.
The port currently implements support for GPIO, RTC, ExtInt and the WiFi
subsystem. A small file system is available in the serial flash. A
bootloader which makes OTA updates possible, is also part of this initial
implementation.
Diffstat (limited to 'cc3200/application.mk')
| -rw-r--r-- | cc3200/application.mk | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/cc3200/application.mk b/cc3200/application.mk new file mode 100644 index 000000000..6d8a869ed --- /dev/null +++ b/cc3200/application.mk @@ -0,0 +1,231 @@ +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 +APP_INC += -Isimplelink +APP_INC += -Isimplelink/include +APP_INC += -Isimplelink/oslib +APP_INC += -Itelnet +APP_INC += -Iutil +APP_INC += -Ibootmgr +APP_INC += -I$(PY_SRC) +APP_INC += -I$(BUILD) +APP_INC += -I../lib/fatfs +APP_INC += -I../lib/mp-readline +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/,\ + FreeRTOSHooks.c \ + gpio_named_pins.c \ + help.c \ + mperror.c \ + mpexception.c \ + pin_defs_cc3200.c \ + ) + +APP_MODS_SRC_C = $(addprefix mods/,\ + modnetwork.c \ + modpyb.c \ + moduos.c \ + modusocket.c \ + modutime.c \ + modwlan.c \ + pybextint.c \ + pybgpio.c \ + pybrtc.c \ + pybstdio.c \ + pybsystick.c \ + pybuart.c \ + ) + +APP_SL_SRC_C = $(addprefix simplelink/,\ + source/device.c \ + source/driver.c \ + source/flowcont.c \ + source/fs.c \ + source/netapp.c \ + source/netcfg.c \ + source/socket.c \ + source/wlan.c \ + oslib/osi_freertos.c \ + cc_pal.c \ + ) + +APP_TELNET_SRC_C = $(addprefix telnet/,\ + telnet.c \ + ) + +APP_UTIL_SRC_C = $(addprefix util/,\ + fifo.c \ + gccollect.c \ + random.c \ + socketfifo.c \ + ) + +APP_UTIL_SRC_S = $(addprefix util/,\ + gchelper.s \ + ) + +APP_MAIN_SRC_C = \ + main.c \ + mptask.c \ + serverstask.c + +APP_LIB_SRC_C = $(addprefix lib/,\ + fatfs/ff.c \ + mp-readline/readline.c \ + ) + +APP_STM_SRC_C = $(addprefix stmhal/,\ + bufhelper.c \ + file.c \ + import.c \ + input.c \ + irq.c \ + lexerfatfs.c \ + moduselect.c \ + printf.c \ + pyexec.c \ + string0.c \ + ) + +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)) +OBJ += $(addprefix $(BUILD)/, $(APP_MODS_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)) +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 + +# 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 +$(BUILD)/simplelink/source/driver.o: CFLAGS += -fno-strict-aliasing + +# Check if we would like to debug the port code +ifeq ($(BTYPE), release) +# Optimize everything and define the NDEBUG flag +CFLAGS += -Os -DNDEBUG +else +ifeq ($(BTYPE), debug) +# Define the DEBUG flag +CFLAGS += -DDEBUG=DEBUG +# Optimize the stable sources only +$(BUILD)/extmod/%.o: CFLAGS += -Os +$(BUILD)/lib/%.o: CFLAGS += -Os +$(BUILD)/fatfs/src/%.o: CFLAGS += -Os +$(BUILD)/FreeRTOS/Source/%.o: CFLAGS += -Os +$(BUILD)/ftp/%.o: CFLAGS += -Os +$(BUILD)/hal/%.o: CFLAGS += -Os +$(BUILD)/misc/%.o: CFLAGS += -Os +$(BUILD)/py/%.o: CFLAGS += -Os +$(BUILD)/simplelink/%.o: CFLAGS += -Os +$(BUILD)/stmhal/%.o: CFLAGS += -Os +$(BUILD)/telnet/%.o: CFLAGS += -Os +$(BUILD)/util/%.o: CFLAGS += -Os +$(BUILD)/pins.o: CFLAGS += -Os +else +$(error Invalid BTYPE specified) +endif +endif + +SHELL = bash +APP_SIGN = appsign.sh + +all: $(BUILD)/MCUIMG.BIN + +$(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 $< $@ + +$(BUILD)/MCUIMG.BIN: $(BUILD)/application.bin + $(ECHO) "Create $@" + $(Q)$(SHELL) $(APP_SIGN) $(BOARD) + +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 + +# 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) |
