⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 The latest release, ver 1.16 of the ARM (7TDMI, 720T, 920T) port for uC/OS-II V2.61 (and higher) inc
💻
字号:
#**************************************************************************
#                                                                         *
#   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 + -