From b24866225a6301d3a663f874725e83c012dc25d3 Mon Sep 17 00:00:00 2001 From: Florent Duchon Date: Wed, 26 Dec 2012 17:36:00 +0100 Subject: digital/beacon: add bitcloud stack into common directory digital/zigbit --- .../bitcloud/stack/Components/HAL/avr/Makefile | 274 +++++++++++++++++++++ 1 file changed, 274 insertions(+) create mode 100644 digital/zigbit/bitcloud/stack/Components/HAL/avr/Makefile (limited to 'digital/zigbit/bitcloud/stack/Components/HAL/avr/Makefile') diff --git a/digital/zigbit/bitcloud/stack/Components/HAL/avr/Makefile b/digital/zigbit/bitcloud/stack/Components/HAL/avr/Makefile new file mode 100644 index 00000000..450e054d --- /dev/null +++ b/digital/zigbit/bitcloud/stack/Components/HAL/avr/Makefile @@ -0,0 +1,274 @@ +HAL_PATH = .. +include $(HAL_PATH)/Makerules + +###### +LIBDIR = $(STACK_LIB_PATH) +LIB = $(LIBDIR)/lib$(HAL_LIB).a + +ifeq ($(HAL), ATMEGA1281) + BUILDDIR = $(HAL_PATH)/avr/atmega1281 +endif + +ifeq ($(HAL), ATMEGA2561) + BUILDDIR = $(HAL_PATH)/avr/atmega1281 +endif + +ifeq ($(HAL), ATMEGA1284) + BUILDDIR = $(HAL_PATH)/avr/atmega1284 +endif + +ifeq ($(HAL), AT90USB1287) + BUILDDIR = $(HAL_PATH)/avr/at90usb1287 +endif + +ifeq ($(HAL), ATMEGA128RFA1) + BUILDDIR = $(HAL_PATH)/avr/atmega128rfa1 +endif + +#### DEFINES FLAGS ####### +CFLAGS += -DHAL_USE_ADC +CFLAGS += -DHAL_USE_EE_READY +# CFLAGS += -DHAL_USE_TWI +CFLAGS += -DHAL_USE_TIMER4_COMPA +CFLAGS += -DHAL_USE_EXT_HANDLER +ifneq ($(HAL), AT90USB1287) + CFLAGS += -DHAL_USE_SLEEP + CFLAGS += -DHAL_USE_TIMER2_COMPA + CFLAGS += -DHAL_USE_WAKEUP +endif +ifneq ($(HAL), ATMEGA1284) + CFLAGS += -DHAL_USE_PWM +endif #ATMEGA1284 +ifeq ($(HAL), AT90USB1287) + CFLAGS += -DHAL_USE_USB +endif +ifeq ($(HAL), ATMEGA128RFA1) + CFLAGS += -D_HAL_HW_AES_ + CFLAGS += -DHAL_USE_SPI +endif +CFLAGS += -DSLEEP_PRESCALER_1024 +ifeq ($(HAL), ATMEGA1281) + ifeq ($(HAL_TINY_UID), TRUE) + CFLAGS += -D_HAL_TINY_UID_ + endif +endif + + +##### DECLARES USART CHANNELS TO BE USED ########## +CFLAGS += -DHAL_USE_USART +ifneq ($(HAL), AT90USB1287) + CFLAGS += -DNUM_USART_CHANNELS=2 +else + CFLAGS += -DNUM_USART_CHANNELS=1 +endif # AT90USB1287 + +ifneq ($(HAL), AT90USB1287) + CFLAGS += -DHAL_USE_USART_CHANNEL_0 +endif # AT90USB1287 + +CFLAGS += -DHAL_USE_USART_CHANNEL_1 + +# Defines which USART uses hardware control pins - only one port at +# the same time can be hardware controlled. If the macros is not declared - +# hw control is not used. +ifeq (, $(findstring $(HAL), ATMEGA1284 AT90USB1287 ATMEGA128RFA1)) + #CFLAGS += -DHARDWARE_CONTROL_PINS_PORT_ASSIGNMENT=USART_CHANNEL_0 + CFLAGS += -DHW_CONTROL_PINS_PORT_ASSIGNMENT=USART_CHANNEL_1 +endif + +ifeq ($(SYSTEM_TIME_ON), SLEEP_TIMER) + CFLAGS += -D_SYSTEM_TIME_ON_SLEEP_TIMER_ +endif + +##### PATHS FLAGS OF INCLUDES ######### +CFLAGS += -I$(HAL_HWD_COMMON_PATH)/include +CFLAGS += -I$(HAL_MAC_API_PATH)/include +CFLAGS += -I$(BUILDDIR)/../../include +CFLAGS += -I$(SE_PATH)/include + +#### ASM DEFINES FLAGS ####### +ASMFLAGS = -I$(HAL_HWD_COMMON_PATH)/include +ifeq ($(COMPILER_TYPE), GCC) + ASMFLAGS += -mmcu=$(CPU) + ASM_FILE_EXT = s +endif +ifeq ($(COMPILER_TYPE), IAR) + ASMFLAGS += -s+ # Enables case sensitivity. + ASMFLAGS += -w+ # Enables warnings. + ASMFLAGS += -D$(HAL_FREQUENCY) + ASMFLAGS += -M'<>'# Change asm.macro argument quote chars. + ASMFLAGS += -L$(HAL_PATH)/avr/list # Generate a list on: / <.lst> + ASMFLAGS += -t8 # Set tab spacing. + ASMFLAGS += -u_enhancedCore + ASMFLAGS += -D__HAS_ENHANCED_CORE__=1 + ASMFLAGS += -D__HAS_MUL__=1 + ASMFLAGS += -D__MEMORY_MODEL__=2 + ifneq (, $(findstring $(HAL), ATMEGA1281 ATMEGA1284 AT90USB1287 ATMEGA128RFA1)) + ASMFLAGS += -v3 # Select processor option: Relative jumps do not wrap. + ifeq ($(HAL), ATMEGA1281) + ASMFLAGS += -D__ATmega1281__=1 + endif + endif + ifneq (, $(findstring $(HAL), ATMEGA2561)) + ASMFLAGS += -v5 # Select processor option: Relative jumps do not wrap. + ASMFLAGS += -D__ATmega2561__=1 + endif + ASMFLAGS += -D__HAS_ELPM__=1 + ASMFLAGS += -S + ASM_FILE_EXT = s90 +endif + +# Main clock of CPU in Hz. +ifeq ($(HAL_FREQUENCY), HAL_4MHz) + F_CPU=4000000 +endif +ifeq ($(HAL_FREQUENCY), HAL_8MHz) + F_CPU=8000000 +endif + +###### LIB ########## +LIBS = $(LIB) $(LIBDIR)/$(WDT_INIT_OBJ) + +ifneq ($(HAL), ATMEGA1284) + common_hwd += halPwm +endif +ifneq ($(HAL), AT90USB1287) + common_hwd += halSleepTimerClock +endif +ifeq ($(HAL), AT90USB1287) + common_hwd += halUsb +endif +ifeq ($(HAL), ATMEGA128RFA1) + common_hwd += halSecurityModule + common_hwd += halDelay +endif +common_hwd += halAppClock +common_hwd += halClkCtrl +common_hwd += halUsart +common_hwd += halIrq +# common_hwd += i2c +common_hwd += halEeprom +common_hwd += wdt +common_hwd += halSleep +common_hwd += halAdc +common_hwd += halSpi +common_hwd += calibration +common_hwd += halInit + +ifneq ($(HAL), ATMEGA128RFA1) + personal_hwd += halRfSpi +endif + +personal_hwd += halRfCtrl +personal_hwd += halUid +personal_hwd += halMacIsr + +ifeq ($(HAL), ATMEGA1281) + ifeq ($(HAL_TINY_UID), TRUE) + personal_hwd += halAtmelUid + endif +endif + +asm_hwd += halW1 +asm_hwd += halCalibration +ifeq ($(COMPILER_TYPE), IAR) + asm_hwd += cstartup +endif + +ifneq ($(HAL), ATMEGA1284) + hwi += pwm +endif +ifneq ($(HAL), AT90USB1287) + hwi += sleepTimer +endif +ifeq ($(HAL), AT90USB1287) + hwi += usb +endif +hwi += appTimer +hwi += halTaskManager +hwi += usart +hwi += w1 +hwi += irq +hwi += resetReason +# hwi += i2cPacket +hwi += eeprom +hwi += timer +hwi += adc +hwi += spi +hwi += sleep + +objects_hwd = $(addsuffix .o,$(addprefix $(HAL_HWD_COMMON_PATH)/objs/,$(common_hwd))) +objects_hwd += $(addsuffix .o,$(addprefix $(HAL_MAC_API_PATH)/objs/,$(personal_hwd))) +sources_hwd = $(addsuffix .c,$(addprefix $(HAL_HWD_COMMON_PATH)/src/,$(common_hwd))) +sources_hwd += $(addsuffix .c,$(addprefix $(HAL_MAC_API_PATH)/src/,$(personal_hwd))) +objects_asm_hwd = $(addsuffix .o,$(addprefix $(HAL_HWD_COMMON_PATH)/objs/,$(asm_hwd))) +sources_asm_hwd = $(addsuffix .$(ASM_FILE_EXT),$(addprefix $(HAL_HWD_COMMON_PATH)/src/,$(asm_hwd))) +objects_hwi = $(addsuffix .o,$(addprefix $(BUILDDIR)/../common/objs/,$(hwi))) +sources_hwi = $(addsuffix .c,$(addprefix $(BUILDDIR)/../common/src/,$(hwi))) + +###### TARGETS ################ +all: component_label WdtInit $(LIB) + +component_label: + @echo + @echo ---------------------------------------------------- + @echo HAL library creation. + @echo ---------------------------------------------------- + +################ common part ############################## +$(HAL_HWD_COMMON_PATH)/objs/%.o: $(HAL_HWD_COMMON_PATH)/src/%.c + $(CC_MSG) + $(Q)$(CC) $(CFLAGS) $^ -o $@ +################ common part ############################## + +################ personal part ############################## +$(HAL_MAC_API_PATH)/objs/%.o: $(HAL_MAC_API_PATH)/src/%.c + $(CC_MSG) + $(Q)$(CC) $(CFLAGS) $^ -o $@ +################ personal part ############################## + +################ common assembler part ###################### +$(HAL_HWD_COMMON_PATH)/objs/%.o: $(HAL_HWD_COMMON_PATH)/src/%.$(ASM_FILE_EXT) + $(AS_MSG) + $(Q)$(AS) $(ASMFLAGS) -o $@ $^ + +ifeq ($(COMPILER_TYPE), IAR) +gen_fcpu_header: + @echo "FCPU EQU $(F_CPU)" > $(HAL_HWD_COMMON_PATH)/include/halIarD.h +endif + +ifeq ($(COMPILER_TYPE), GCC) +gen_fcpu_header: + @echo ".equ FCPU, $(F_CPU)" > $(HAL_HWD_COMMON_PATH)/include/halGccD.h +endif +################ common assembler part ###################### + +################ hwi part ################################### +$(BUILDDIR)/../common/objs/%.o: $(BUILDDIR)/../common/src/%.c + $(CC_MSG) + $(Q)$(CC) $(CFLAGS) $^ -o $@ +################ hwi part ################################### + +################ +WdtInit: $(HAL_HWD_COMMON_PATH)/src/halWdtInit.c + $(CC_MSG) + $(Q)$(CC) $(CFLAGS) $(HAL_HWD_COMMON_PATH)/src/halWdtInit.c -o $(LIBDIR)/$(WDT_INIT_OBJ) +################ +$(LIB): $(objects_hwd) gen_fcpu_header $(objects_asm_hwd) $(objects_hwi) + $(AR_MSG) + $(Q)$(AR) $(AR_KEYS) $(LIB) $(objects_hwd) $(objects_asm_hwd) $(objects_hwi) + $(SIZE_MSG) + $(Q)$(SHOW_SIZE) -td $(LIBDIR)/$(WDT_INIT_OBJ) + $(SIZE_MSG) + $(Q)$(SHOW_SIZE) -td $(LIB) + +# $(foreach lib_iter,$(wildcard $(LIBDIR)/lib*$(STACK_LIB)*.a), $(shell $(AR) $(AR_KEYS) $(lib_iter) $(objects_hwd) $(objects_asm_hwd) $(objects_hwi))) +################ +clean: + @echo + @echo ---------------------------------------------------- + @echo HAL component cleaning. + $(Q)rm -f $(objects_hwd) $(objects_hwi) $(LIBS) $(objects_asm_hwd) + $(Q)rm -f $(HAL_PATH)/lib/*.a $(HAL_PATH)/lib/*.o $(HAL_PATH)/avr/list/*.* + @echo HAL cleaning done! + @echo ---------------------------------------------------- -- cgit v1.2.3