📄 makefile
字号:
#**************************************************************************
# *
# PROJECT : ARM port for uC/OS-II *
# *
# MODULE : MAKEFILE *
# *
# AUTHOR : Michael Anburaj *
# URL : http://geocities.com/michaelanburaj/ *
# EMAIL: michaelanburaj@hotmail.com *
# *
# PROCESSOR : S3c2410x (32 bit ARM920T RISC core from Samsung) *
# *
# TOOL-CHAIN : SDT 2.51 or ADS 1.2 *
# *
# DESCRIPTION : *
# Make file for Ex2 ARM_UCOS builds. Use Microsoft's nmake utility to *
# build using this file. *
# Command options: *
# nmake -- Make image *
# nmake clean -- Remove all object files *
# nmake clean_all -- Remove all object & binary files *
# *
#*************************************************************************/
#**************************************************************************
#* Build Configuration
#**************************************************************************
#### Tools ####
# possible values: 0 (for ADS), 1 (for SDT)
TOOLS = 0
#### Project name ####
IMAGENAME = ex2
#### Endian ####
# possible values: 0 (for Little), 1 (for Big)
ENDIAN = 0
#### Debug ####
# possible values: 0, 1
DEBUG = 0
#### Task Mode ####
# Possible values: 0 (for arm), 1 (for thumb)
TASK = 1
#### Target Mode ####
# Possible values: 0 (for arm), 1 (for armthumb)
!if $(TASK)==1
TARGET = 1
!else
TARGET = 0
!endif
#### ARM tools path ####
!if $(TOOLS)==0
TPATH = C:\Progra~1\ARM\ADSv1_2
!else
TPATH = C:\ARM251
!endif
#### ARM tool Definition ####
ARMCC = armcc
TCC = tcc
ARMASM = armasm
ARMLINK= armlink
FROMELF= fromelf
#### Destination path Definition ####
OBJDIR=.
# **********************************************
# Directories
# **********************************************
ROOT = ..\..
UCOSROOT = $(ROOT)\..
AUP_COMMONROOT = $(UCOSROOT)\arm_ucos\common
AUP_S3C2410XROOT = $(UCOSROOT)\arm_ucos\s3c2410x
ARM_COMMONDIR = $(AUP_COMMONROOT)\arm
# **********************************************
# Image file names and map file
# **********************************************
IMAGE_ELF_ROM = $(IMAGENAME)_rom.axf
IMAGE_BIN_ROM = $(IMAGENAME)_rom.bin
IMAGE_MAP_ROM = $(IMAGENAME)_rom.map
IMAGE_LST_ROM = $(IMAGENAME)_rom.lst
IMAGE_ELF_RAM = $(IMAGENAME)_ram.axf
IMAGE_BIN_RAM = $(IMAGENAME)_ram.bin
IMAGE_SREC_RAM= $(IMAGENAME)_ram.rec
IMAGE_MAP_RAM = $(IMAGENAME)_ram.map
IMAGE_LST_RAM = $(IMAGENAME)_ram.lst
# **********************************************
# Compiler/Assembler and linker options
# **********************************************
!if $(DEBUG)==1
DEBUGFLAGS_C = -g -O2
DEBUGFLAGS_A = -g
!else
DEBUGFLAGS_C = -O2
DEBUGFLAGS_A =
!endif
!if $(TASK)==1
CC = $(TCC)
!else
CC = $(ARMCC)
!endif
ACC = $(ARMCC)
AS = $(ARMASM)
LD = $(ARMLINK)
OBJCOPY = $(FROMELF)
OBJDUMP = $(FROMELF)
!if $(ENDIAN)==1
ENDIAN_FLAG = -bi
E_FLAG_C = -DEB
E_FLAG_A = -pd "EB SETL {TRUE}"
EC_FLAG_ROM_A = -pd "ENDIAN_CHANGE SETL {TRUE}"
EC_FLAG_RAM_A = -pd "ENDIAN_CHANGE SETL {FALSE}"
!else
ENDIAN_FLAG = -li
E_FLAG_C = -DEL
E_FLAG_A = -pd "EB SETL {FALSE}"
EC_FLAG_ROM_A = -pd "ENDIAN_CHANGE SETL {FALSE}"
EC_FLAG_RAM_A = -pd "ENDIAN_CHANGE SETL {FALSE}"
!endif
!if $(TARGET)==1
AC_FLAGS = -apcs /noswst/interwork -D__APCS_INTERWORK -DTHUMB_INTERWORK
AA_FLAGS = -apcs /noswst/interwork -pd "__APCS_INTERWORK SETL {TRUE}" -pd "THUMB_INTERWORK SETL {TRUE}"
AL_FLAGS =
!else
AC_FLAGS = -apcs /noswst
AA_FLAGS = -apcs /noswst -pd "__APCS_INTERWORK SETL {FALSE}" -pd "THUMB_INTERWORK SETL {FALSE}"
AL_FLAGS =
!endif
!if $(TASK)==0
TC_FLAGS =
TA_FLAGS = -pd "THUMB_CSTART SETL {FALSE}" -pd "THUMB_TASKS SETL {FALSE}"
!else
TC_FLAGS = -DTHUMB_TASKS
TA_FLAGS = -pd "THUMB_CSTART SETL {TRUE}" -pd "THUMB_TASKS SETL {TRUE}"
!endif
!if $(TOOLS)==1
T_FLAG_C = -DSDT
T_FLAG_A = -pd "ADS SETL {FALSE}"
T_FLAG_L = -libpath $(TPATH)\Lib\embedded
MAP_LIST_OPT_ROM = -map -xref -symbols $(IMAGE_MAP_ROM) -list $(IMAGE_LST_ROM)
MAP_LIST_OPT_RAM = -map -xref -symbols $(IMAGE_MAP_RAM) -list $(IMAGE_LST_RAM)
T_CMD_ROM_F = -nozeropad $(IMAGE_ELF_ROM) -bin $(IMAGE_BIN_ROM)
T_CMD_RAM_F = -nozeropad $(IMAGE_ELF_RAM) -bin $(IMAGE_BIN_RAM)
!else
T_FLAG_C = -DADS
T_FLAG_A = -pd "ADS SETL {TRUE}"
T_FLAG_L =
MAP_LIST_OPT_ROM = -info sizes,totals -map -xref -symbols -list $(IMAGE_MAP_ROM)
MAP_LIST_OPT_RAM = -info sizes,totals -map -xref -symbols -list $(IMAGE_MAP_RAM)
T_CMD_ROM_F = -nodebug -bin -output $(IMAGE_BIN_ROM) $(IMAGE_ELF_ROM)
T_CMD_RAM_F = -nodebug -bin -output $(IMAGE_BIN_RAM) $(IMAGE_ELF_RAM)
!endif
#### RO & RW base ####
RO_BADR_RAM=0x30004000
RW_BADR_RAM=0x30100000
RO_BADR_ROM=0x00000000
RW_BADR_ROM=0x30100000
#### Include file path ####
INCLUDE = -I$(ROOT)\inc -I$(AUP_COMMONROOT)\inc -I$(AUP_S3C2410XROOT)\inc -I$(AUP_S3C2410XROOT)\inc\arm -I$(UCOSROOT)\SOURCE
#### Build Flags ####
CC_OPTS = -c $(DEBUGFLAGS_C) $(ENDIAN_FLAG) $(T_FLAG_C) $(E_FLAG_C) $(AC_FLAGS) $(TC_FLAGS) $(INCLUDE) -cpu ARM920T
ACC_OPTS = $(CC_OPTS)
AS_OPTS = $(ENDIAN_FLAG) $(DEBUGFLAGS_A) $(T_FLAG_A) $(E_FLAG_A) $(AA_FLAGS) $(TA_FLAGS) $(INCLUDE) -cpu ARM920T
LD_OPTS_ROM = -elf $(MAP_LIST_OPT_ROM) -ro-base $(RO_BADR_ROM) -rw-base $(RW_BADR_ROM) -first init.eco(Init) $(AL_FLAGS) $(T_FLAG_L) -o $(IMAGE_ELF_ROM)
LD_OPTS_RAM = -elf $(MAP_LIST_OPT_RAM) -ro-base $(RO_BADR_RAM) -rw-base $(RW_BADR_RAM) -first init.o(Init) $(AL_FLAGS) $(T_FLAG_L) -o $(IMAGE_ELF_RAM)
#### Object combine Definition ####
OBJS_ROM = $(OBJDIR)\init.eco $(OBJDIR)\mmu.o $(OBJDIR)\mmulib.o $(OBJDIR)\os_cpu_a.o $(OBJDIR)\consol.o \
$(OBJDIR)\frmwrk.o $(OBJDIR)\ac_halt.o $(OBJDIR)\os_cpu_c.o $(OBJDIR)\ucos_ii.o $(OBJDIR)\ex2.o
OBJS_RAM = $(OBJDIR)\init.o $(OBJDIR)\mmu.o $(OBJDIR)\mmulib.o $(OBJDIR)\os_cpu_a.o $(OBJDIR)\consol.o \
$(OBJDIR)\frmwrk.o $(OBJDIR)\ac_halt.o $(OBJDIR)\os_cpu_c.o $(OBJDIR)\ucos_ii.o $(OBJDIR)\ex2.o
all: $(IMAGE_BIN_ROM) $(IMAGE_BIN_RAM)
REMOVEFILE = del
clean:
$(REMOVEFILE) $(OBJDIR)\*.o
$(REMOVEFILE) $(OBJDIR)\*.eco
clean_all:
$(REMOVEFILE) $(OBJDIR)\*.o
$(REMOVEFILE) $(OBJDIR)\*.eco
$(REMOVEFILE) *.map
$(REMOVEFILE) *.lst
$(REMOVEFILE) $(IMAGE_ELF_ROM)
$(REMOVEFILE) $(IMAGE_BIN_ROM)
$(REMOVEFILE) $(IMAGE_ELF_RAM)
$(REMOVEFILE) $(IMAGE_BIN_RAM)
#**************************************************************************
#* Link
#**************************************************************************
$(IMAGE_BIN_ROM): $(IMAGE_ELF_ROM)
$(OBJCOPY) $(T_CMD_ROM_F)
$(IMAGE_BIN_RAM): $(IMAGE_ELF_RAM)
$(OBJCOPY) $(T_CMD_RAM_F)
$(IMAGE_ELF_ROM): $(OBJS_ROM)
$(LD) $(LD_OPTS_ROM) $(OBJS_ROM)
$(IMAGE_ELF_RAM): $(OBJS_RAM)
$(LD) $(LD_OPTS_RAM) $(OBJS_RAM)
#**************************************************************************
#* Compile/Assemble
#**************************************************************************
$(OBJDIR)\init.o: $(AUP_S3C2410XROOT)\src\arm\init.S
$(AS) $(EC_FLAG_RAM_A) $(AS_OPTS) -o $(OBJDIR)\init.o $(AUP_S3C2410XROOT)\src\arm\init.S
$(OBJDIR)\init.eco: $(AUP_S3C2410XROOT)\src\arm\init.S
$(AS) $(EC_FLAG_ROM_A) $(AS_OPTS) -o $(OBJDIR)\init.eco $(AUP_S3C2410XROOT)\src\arm\init.S
$(OBJDIR)\mmulib.o: $(AUP_S3C2410XROOT)\src\arm\mmulib.S
$(AS) $(AS_OPTS) -o $(OBJDIR)\mmulib.o $(AUP_S3C2410XROOT)\src\arm\mmulib.S
$(OBJDIR)\mmu.o: $(AUP_S3C2410XROOT)\src\mmu.c
$(CC) $(CC_OPTS) -o $(OBJDIR)\mmu.o $(AUP_S3C2410XROOT)\src\mmu.c
$(OBJDIR)\os_cpu_a.o: $(AUP_COMMONROOT)\src\arm\os_cpu_a.S
$(AS) $(AS_OPTS) -o $(OBJDIR)\os_cpu_a.o $(AUP_COMMONROOT)\src\arm\os_cpu_a.S
$(OBJDIR)\consol.o: $(AUP_S3C2410XROOT)\src\consol.c $(AUP_S3C2410XROOT)\inc\S3c2410x.h $(AUP_S3C2410XROOT)\inc\frmwrk.h
$(CC) $(CC_OPTS) -o $(OBJDIR)\consol.o $(AUP_S3C2410XROOT)\src\consol.c
$(OBJDIR)\frmwrk.o: $(AUP_S3C2410XROOT)\src\frmwrk.c $(AUP_S3C2410XROOT)\inc\S3c2410x.h $(AUP_S3C2410XROOT)\inc\frmwrk.h
$(CC) $(CC_OPTS) -o $(OBJDIR)\frmwrk.o $(AUP_S3C2410XROOT)\src\frmwrk.c
$(OBJDIR)\ac_halt.o: $(ARM_COMMONDIR)\ac_halt.c $(ROOT)\inc\frmwrk_cfg.h
$(ACC) $(ACC_OPTS) -o $(OBJDIR)\ac_halt.o $(ARM_COMMONDIR)\ac_halt.c
$(OBJDIR)\os_cpu_c.o: $(AUP_COMMONROOT)\src\os_cpu_c.c
$(CC) $(CC_OPTS) -o $(OBJDIR)\os_cpu_c.o $(AUP_COMMONROOT)\src\os_cpu_c.c
$(OBJDIR)\ucos_ii.o: $(UCOSROOT)\source\ucos_ii.c
$(CC) $(CC_OPTS) -o $(OBJDIR)\ucos_ii.o $(UCOSROOT)\source\ucos_ii.c
$(OBJDIR)\ex2.o: $(ROOT)\src\ex2.c $(AUP_S3C2410XROOT)\inc\S3c2410x.h $(AUP_S3C2410XROOT)\inc\frmwrk.h
$(CC) $(CC_OPTS) -o $(OBJDIR)\ex2.o $(ROOT)\src\ex2.c
#**************************************************************************
#* End
#**************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -