mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-01 10:58:23 +00:00
Updated Makefile to build bin with gcc
This commit is contained in:
committed by
Joshua Jeyaraj
parent
8331ffebe9
commit
f6daa3ba05
@@ -7,33 +7,42 @@
|
||||
# Set proper path.
|
||||
######################
|
||||
|
||||
OCWARE_DIR=/home/kashif/OpenCellular/OCWare/firmware
|
||||
TIRTOS_DIR=/home/kashif/OpenCellular/OCWare/firmware/ti/tirtos_tivac_2_16_01_14/
|
||||
XDCTOOLS_DIR=/home/kashif/OpenCellular/OCWare/firmware/ti/xdctools_3_32_01_22_core/
|
||||
TOOLCHAIN = /usr
|
||||
OCWARE_DIR ?= $(HOME)/OpenCellular/firmware/ec
|
||||
TIRTOS_DIR ?= $(HOME)/ti/tirtos_tivac_2_16_01_14/
|
||||
XDCTOOLS_DIR ?= $(HOME)/ti/xdctools_3_32_00_06_core/
|
||||
TOOLCHAIN ?= /usr/
|
||||
|
||||
#######################
|
||||
# Do not change anything below this.
|
||||
#######################
|
||||
|
||||
OUT=bld/
|
||||
|
||||
BIOS_DIR=$(TIRTOS_DIR)/products/bios_6_45_02_31/
|
||||
TIVAWARE_DIR=$(TIRTOS_DIR)/products/TivaWare_C_Series-2.1.1.71b/
|
||||
UIA_DIR=$(TIRTOS_DIR)/products/uia_2_00_05_50/
|
||||
TIRTOS_DRIVER_DIR=$(TIRTOS_DIR)/products/tidrivers_tivac_2_16_01_13
|
||||
NDK_PATH = $(TIRTOS_DIR)/products/ndk_2_25_00_09/packages/
|
||||
NDK_INC = $(TIRTOS_DIR)/products/ndk_2_25_00_09/packages/ti/ndk/inc/bsd/
|
||||
|
||||
BIOS_PATH=$(BIOS_DIR)/packages/ti/sysbios/posix
|
||||
UIA_PATH_PATH=$(UIA_DIR)/packages
|
||||
TIDRIVER_PATH=$(TIRTOS_DRIVER_DIR)/packages
|
||||
XDC_PATH=$(XDCTOOLS_DIR)/packages
|
||||
|
||||
XDCPATH_LIST = \
|
||||
$(BIOS_DIR)/packages \
|
||||
$(UIA_DIR)/packages \
|
||||
$(TIRTOS_DIR)/packages \
|
||||
$(TIRTOS_DRIVER_DIR)/packages
|
||||
$(TIRTOS_DRIVER_DIR)/packages \
|
||||
$(BIOS_DIR)/packages/ \
|
||||
$(NDK_PATH) \
|
||||
$(UIA_DIR)/packages
|
||||
|
||||
TARGET = gnu.targets.arm.M4F
|
||||
PLATFORM = ti.platforms.tiva:TM4C1294NCPDT:true
|
||||
PLATFORM = ti.platforms.tiva:TM4C1294NCPDT
|
||||
PART=TM4C1294NCPDT
|
||||
ROV_XS_SUFFIX = pm4fg
|
||||
CONFIGURO_OPTS = -v
|
||||
CONFIG=bld
|
||||
CONFIGURO_OPTS = -v -o $(OUT)
|
||||
CONFIG=OpenCellular
|
||||
empty:=
|
||||
space:= $(empty) $(empty)
|
||||
XDCPATH = $(subst $(space),;,$(XDCPATH_LIST))
|
||||
@@ -42,43 +51,57 @@ CONFIGURO = $(XDCTOOLS_DIR)/xs --xdcpath="$(XDCPATH)" \
|
||||
xdc.tools.configuro $(CONFIGURO_OPTS)
|
||||
|
||||
# Find all C source/object files.
|
||||
SRC_FILE = $(shell find . -name '*.c')
|
||||
MAIN_OBJS = $(patsubst %.c,%.o,$(wildcard *.c */*.c))
|
||||
SRC_FILE = $(shell find . -name '*.c' ! -path './test/*' ! -path './$(OUT)*')
|
||||
MAIN_OBJS = $(SRC_FILE:.c=.o)
|
||||
|
||||
CC = $(TOOLCHAIN)/bin/arm-none-eabi-gcc
|
||||
CFLAGS = -Wall -mcpu=cortex-m4 -mthumb -mabi=aapcs -mapcs-frame @$(CONFIG)/compiler.opt -O3 -g
|
||||
CFLAGS += -DPART_$(MCU) -c -I$(TIVAWARE_PATH) -I$(OCWARE_DIR)/src
|
||||
CFLAGS += -I$(XDC_PATH) -I$(BIOS_PATH) -I$(TIDRIVER_PATH) -I./
|
||||
CFLAGS += -I$(OCWARE_DIR)/src/inc
|
||||
CFLAGS += -I./ -I$(NDK_PATH)
|
||||
CFLAGS += -I$(TIVAWARE_DIR)
|
||||
CFLAGS = -Wall -mcpu=cortex-m4 -mthumb -mabi=aapcs -mapcs-frame @$(OUT)/compiler.opt -O3
|
||||
CFLAGS += -std=c99 -ffunction-sections -fdata-sections
|
||||
CFLAGS += -DTIVAWARE -DPART_$(PART) -DTARGET_IS_TM4C129_RA1 -Dgcc
|
||||
CFLAGS += -I$(OCWARE_DIR)/src/ -I$(OCWARE_DIR)/common/ -I$(OCWARE_DIR)/
|
||||
CFLAGS += -isystem$(XDC_PATH) -isystem$(BIOS_PATH) -isystem$(TIDRIVER_PATH) -isystem$(NDK_PATH) -isystem$(TIVAWARE_DIR)
|
||||
CFLAGS += -isystem$(NDK_INC)
|
||||
|
||||
LD = $(TOOLCHAIN)/bin/arm-none-eabi-gcc
|
||||
LFLAGS = -nostartfiles -static -Wl,--gc-sections -Wl,-T,../OC_CONNECT1.cmd -Wl,-T,$(CONFIG)/linker.cmd
|
||||
LFLAGS = -nostartfiles -static -Wl,--gc-sections -march=armv7e-m -Wl,-T,OC_CONNECT1.lds
|
||||
LFLAGS += --specs=nosys.specs -mfloat-abi=hard -mfpu=fpv4-sp-d16
|
||||
LFLAGS += -Wl,--print-memory-usage #Optional
|
||||
LFLAGS += -Xlinker -Map=$(OUT)/main.map #Optional
|
||||
LLIBS = -L$(TIVAWARE_DIR)/driverlib/gcc/
|
||||
LLIBS += -L$(TIVAWARE_DIR)/grlib/gcc/
|
||||
LLIBS += -L$(TIVAWARE_DIR)/usblib/gcc/
|
||||
LLIBS += -Wl,-T,$(OUT)/linker.cmd
|
||||
LLIBS += -Wl,--start-group
|
||||
LLIBS += -ldriver -lgr -lusb -lm -lnosys -lc
|
||||
LLIBS += -Wl,--end-group
|
||||
|
||||
.PRECIOUS: %/compiler.opt %/linker.cmd
|
||||
|
||||
all: main.out
|
||||
OBJCOPY = $(TOOLCHAIN)/bin/arm-none-eabi-objcopy
|
||||
|
||||
%/compiler.opt %/linker.cmd : %.cfg
|
||||
$(CONFIGURO) -c $(TOOLCHAIN) -t $(TARGET) -p $(PLATFORM) -r debug $<
|
||||
cp $*/package/cfg/$*_$(ROV_XS_SUFFIX).rov.xs .
|
||||
all: oc_connect1
|
||||
oc_connect1: $(OUT)/OpenCellular.bin
|
||||
|
||||
%.o: $(SRC_FILE)
|
||||
$(OUT)%/compiler.opt $(OUT)%/linker.cmd : %.cfg
|
||||
$(CONFIGURO) -c $(TOOLCHAIN) -t $(TARGET) -p $(PLATFORM) -r release $<
|
||||
cp $(OUT)/package/cfg/$*_$(ROV_XS_SUFFIX).rov.xs .
|
||||
|
||||
%.o: $(CONFIG)/compiler.opt %.c
|
||||
$(CC) $(CFLAGS) -c $<
|
||||
$(MAIN_OBJS): %.o: %.c $(OUT)$(CONFIG)/compiler.opt
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
%.out: $(CONFIG)/linker.cmd $(MAIN_OBJS)
|
||||
$(LD) $(LFLAGS) -o $@ $(MAIN_OBJS)
|
||||
$(OUT)/OpenCellular.out: $(OUT)$(CONFIG)/linker.cmd $(MAIN_OBJS)
|
||||
$(LD) $(LFLAGS) -o $@ $(MAIN_OBJS) $(LLIBS)
|
||||
|
||||
$(OUT)/OpenCellular.bin: $(OUT)/OpenCellular.out
|
||||
$(OBJCOPY) -S -O binary $< $@
|
||||
|
||||
clean:
|
||||
-rm -rf *.o *.out *.d *.rov.xs $(CONFIG) $(MAIN_OBJS)
|
||||
-rm -rf *.o *.out *.d *.rov.xs $(OUT) $(MAIN_OBJS)
|
||||
|
||||
test:
|
||||
cd test && $(MAKE)
|
||||
|
||||
.PHONY: all clean test
|
||||
.PHONY: all oc_connect1 clean test
|
||||
|
||||
# Include the automatically generated dependency files.
|
||||
#
|
||||
|
||||
106
firmware/ec/OC_CONNECT1.lds
Executable file
106
firmware/ec/OC_CONNECT1.lds
Executable file
@@ -0,0 +1,106 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Default Linker script for the Texas Instruments TM4C1294NCPDT
|
||||
*
|
||||
* This is derived from revision 15071 of the TivaWare Library.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
FLASH (RX) : ORIGIN = 0x00000000, LENGTH = 0x00100000
|
||||
SRAM (WX) : ORIGIN = 0x20000000, LENGTH = 0x00040000
|
||||
}
|
||||
|
||||
REGION_ALIAS("REGION_TEXT", FLASH);
|
||||
REGION_ALIAS("REGION_BSS", SRAM);
|
||||
REGION_ALIAS("REGION_DATA", SRAM);
|
||||
REGION_ALIAS("REGION_STACK", SRAM);
|
||||
REGION_ALIAS("REGION_HEAP", SRAM);
|
||||
REGION_ALIAS("REGION_ARM_EXIDX", FLASH);
|
||||
REGION_ALIAS("REGION_ARM_EXTAB", FLASH);
|
||||
|
||||
SECTIONS {
|
||||
|
||||
PROVIDE (_intvecs_base_address = 0x0);
|
||||
|
||||
.intvecs (_intvecs_base_address) : AT (_intvecs_base_address) {
|
||||
KEEP (*(.intvecs))
|
||||
} > REGION_TEXT
|
||||
|
||||
PROVIDE (_vtable_base_address = 0x20000000);
|
||||
|
||||
.vtable (_vtable_base_address) (NOLOAD) : AT (_vtable_base_address) {
|
||||
KEEP (*(.vtable))
|
||||
} > REGION_DATA
|
||||
|
||||
.text : {
|
||||
CREATE_OBJECT_SYMBOLS
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
. = ALIGN(0x4);
|
||||
KEEP (*(.ctors))
|
||||
. = ALIGN(0x4);
|
||||
KEEP (*(.dtors))
|
||||
. = ALIGN(0x4);
|
||||
__init_array_start = .;
|
||||
KEEP (*(.init_array*))
|
||||
__init_array_end = .;
|
||||
*(.init)
|
||||
*(.fini*)
|
||||
} > REGION_TEXT
|
||||
|
||||
PROVIDE (__etext = .);
|
||||
PROVIDE (_etext = .);
|
||||
PROVIDE (etext = .);
|
||||
|
||||
.rodata : {
|
||||
*(.rodata)
|
||||
*(.rodata*)
|
||||
} > REGION_TEXT
|
||||
|
||||
.data : ALIGN (4) {
|
||||
__data_load__ = LOADADDR (.data);
|
||||
__data_start__ = .;
|
||||
*(.data)
|
||||
*(.data*)
|
||||
. = ALIGN (4);
|
||||
__data_end__ = .;
|
||||
} > REGION_DATA AT> REGION_TEXT
|
||||
|
||||
.ARM.exidx : {
|
||||
__exidx_start = .;
|
||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||
__exidx_end = .;
|
||||
} > REGION_ARM_EXIDX
|
||||
|
||||
.ARM.extab : {
|
||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||
} > REGION_ARM_EXTAB
|
||||
|
||||
.bss : {
|
||||
__bss_start__ = .;
|
||||
*(.shbss)
|
||||
*(.bss)
|
||||
*(.bss.*)
|
||||
*(COMMON)
|
||||
. = ALIGN (4);
|
||||
__bss_end__ = .;
|
||||
} > REGION_BSS
|
||||
|
||||
.heap : {
|
||||
__heap_start__ = .;
|
||||
end = __heap_start__;
|
||||
_end = end;
|
||||
__end = end;
|
||||
KEEP(*(.heap))
|
||||
__heap_end__ = .;
|
||||
__HeapLimit = __heap_end__;
|
||||
} > REGION_HEAP
|
||||
|
||||
.stack (NOLOAD) : ALIGN(0x8) {
|
||||
_stack = .;
|
||||
__stack = .;
|
||||
KEEP(*(.stack))
|
||||
} > REGION_STACK
|
||||
}
|
||||
@@ -290,7 +290,7 @@ if (!Program.build.target.$name.match(/iar/)) {
|
||||
* Enable Semihosting for GNU targets to print to CCS console
|
||||
*/
|
||||
if (Program.build.target.$name.match(/gnu/)) {
|
||||
var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
|
||||
//var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
|
||||
}
|
||||
/* ================ Semaphore configuration ================ */
|
||||
var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
|
||||
|
||||
Reference in New Issue
Block a user