COMPONENTS_PATH = $(HAL_PATH)/.. STACK_PATH = $(COMPONENTS_PATH)/.. STACK_LIB_PATH = $(STACK_PATH)/lib LIST_PATH = ./list include $(COMPONENTS_PATH)/HAL/Configuration #------------------------------------------------------------------------------- # Platform specific compiler flags definition and settins checking: #------------------------------------------------------------------------------- ifndef PLATFORM $(error ERROR in file Makerules: $(PLATFORM) Unknown type of platform) endif ifeq ($(PLATFORM), PLATFORM_ZIGBIT) ######### ZigBit platform ##### ifeq (, $(findstring $(HAL_FREQUENCY), HAL_8MHz HAL_4MHz)) $(error ERROR in file Makerules: $(HAL_FREQUENCY) Unknown type of HAL frequency for $(PLATFORM) platform) endif ifeq (, $(findstring $(HAL), ATMEGA1281 ATMEGA2561)) $(error ERROR in file Makerules: $(HAL) Unknown type of HAL for $(PLATFORM) platform) endif # For platform with 32.768 kHz only. SYSTEM_TIME_ON = SLEEP_TIMER endif # ZIGBIT ifeq ($(PLATFORM), PLATFORM_RAVEN) ######### Raven platform ##### # Checking parameters which were set by user. ifeq (, $(findstring $(HAL_FREQUENCY), HAL_8MHz HAL_4MHz)) $(error ERROR in file Makerules: $(HAL_FREQUENCY) Unknown type of HAL frequency for $(PLATFORM) platform) endif # Setting platform parameters which can not be changed by user. HAL = ATMEGA1284 # For platform with 32.768 kHz only. SYSTEM_TIME_ON = SLEEP_TIMER endif # RAVEN ifeq ($(PLATFORM), PLATFORM_ATML_USB_DONGLE) ######### ATML_USB_DONGLE platform ##### # Setting platform parameters which can not be changed by user. HAL = AT90USB1287 HAL_FREQUENCY = HAL_8MHz endif # ATML_USB_DONGLE ifeq ($(PLATFORM), PLATFORM_STK600) ####### ATML_STK600 platform #### RF_EXTENDER = REB231 ifneq (, $(findstring $(HAL), ATXMEGA128A1 ATXMEGA256A3 ATXMEGA256D3)) ifeq (, $(findstring $(HAL_CLOCK_SOURCE), CRYSTAL_16MHz RC_INTERNAL_32MHz RC_INTERNAL_2MHz)) $(error ERROR in file Makerules: $(HAL_CLOCK_SOURCE) Unknown type of clock source for $(PLATFORM) platform) endif ifeq (, $(findstring $(HAL_ASYNC_CLOCK_SOURCE), RC_ULP RC_32K CRYSTAL_32K)) $(error ERROR in file Makerules: $(HAL_ASYNC_CLOCK_SOURCE) Unknown type of asynchronous clock source for $(PLATFORM) platform) endif # Set asynchronous clock as system time for platform with 32.768 kHz (RC or crystal). ifneq (, $(findstring $(HAL_ASYNC_CLOCK_SOURCE), RC_32K CRYSTAL_32K)) SYSTEM_TIME_ON = SLEEP_TIMER endif ifeq (, $(findstring $(HAL_FREQUENCY), HAL_4MHz HAL_8MHz HAL_12MHz HAL_16MHz HAL_32MHz)) $(error ERROR in file Makerules: $(HAL_FREQUENCY) Unknown type of HAL frequency for $(PLATFORM) platform) endif else ifneq (, $(findstring $(HAL), ATMEGA128RFA1 ATMEGA256RFR2)) ifeq (, $(findstring $(HAL_FREQUENCY), HAL_16MHz HAL_8MHz HAL_4MHz)) $(error ERROR in file Makerules: $(HAL_FREQUENCY) Unknown type of HAL frequency for $(PLATFORM) platform) endif # For platform with 32.768 kHz only. SYSTEM_TIME_ON = SLEEP_TIMER else $(error ERROR in file Makerules: $(HAL) Unknown type of HAL for $(PLATFORM) platform) endif endif # PLATFORM_STK600 ifeq ($(PLATFORM), PLATFORM_STK500_RF2XX) ####### ATML_STK500 + RF2XX radio platform #### # Checking parameters. ifeq (, $(findstring $(HAL_FREQUENCY), HAL_8MHz HAL_4MHz)) $(error ERROR in file Makerules: $(HAL_FREQUENCY) Unknown type of HAL frequency for $(PLATFORM) platform) endif ifeq (, $(findstring $(RF_EXTENDER), REB230 REB231 REB212)) $(error ERROR in file Makerules: $(RF_EXTENDER) Unknown type of the radio extension board for $(PLATFORM) platform) endif ifeq (, $(findstring $(HAL), ATMEGA1281 ATMEGA2561)) $(error ERROR in file Makerules: $(HAL) Unknown type of HAL for $(PLATFORM) platform) endif # For platform with 32.768 kHz only. SYSTEM_TIME_ON = SLEEP_TIMER endif # PLATFORM_STK500_RF2XX ifeq ($(PLATFORM), PLATFORM_ZIGBIT_TURBO) #### ZIGBIT_TURBO platform #### # Setting platform parameters which can not be changed by user. HAL = AT91SAM7X256 HAL_FREQUENCY = HAL_48MHz # Checking parameters which were set by user. ifeq (, $(findstring $(HAL_CLOCK_SOURCE), CRYSTAL_18d432MHz RF)) $(error ERROR in file Makerules: $(HAL_CLOCK_SOURCE) Unknown clock HAL source for $(PLATFORM) platform) endif endif # PLATFORM_ZIGBIT_TURBO ifeq ($(PLATFORM), PLATFORM_ZIGBIT_LAN) ###### ZIGBIT_LAN platform #### # Setting platform parameters which can not be changed by user. HAL = AT91SAM7X256 HAL_FREQUENCY = HAL_48MHz # Checking parameters which were set by user. ifeq (, $(findstring $(HAL_CLOCK_SOURCE), CRYSTAL_18d432MHz RF)) $(error ERROR in file Makerules: $(HAL_CLOCK_SOURCE) Unknown clock HAL source for $(PLATFORM) platform) endif endif # PLATFORM_ZIGBIT_LAN ifeq ($(PLATFORM), PLATFORM_SAM7X_EK_RF2XX) ##### PLATFORM_SAM7X_EK_RF2XX platform #### HAL = AT91SAM7X256 HAL_CLOCK_SOURCE = CRYSTAL_18d432MHz HAL_FREQUENCY = HAL_48MHz endif # PLATFORM_SAM7X_EK_RF2XX ifeq ($(PLATFORM), PLATFORM_CUSTOM_1) ########### PLATFORM_CUSTOM_1 platform #### HAL = AT91SAM7X256 HAL_CLOCK_SOURCE = CRYSTAL_8MHz HAL_FREQUENCY = HAL_48MHz endif # PLATFORM_CUSTOM_1 ifeq ($(PLATFORM), PLATFORM_CUSTOM_2) #### PLATFORM_CUSTOM_2 platform #### HAL = AT91SAM7X256 HAL_CLOCK_SOURCE = CRYSTAL_8MHz HAL_FREQUENCY = HAL_48MHz endif # PLATFORM_CUSTOM_2 ifeq ($(PLATFORM), PLATFORM_RF231USBRD) ##### PLATFORM_RF231USBRD platform #### HAL = AT91SAM3S4C HAL_CLOCK_SOURCE = CRYSTAL_18d432MHz HAL_ASYNC_CLOCK_SOURCE = RC_ASYNC HAL_FREQUENCY = HAL_64MHz endif # PLATFORM_RF231USBRD ifeq ($(PLATFORM), PLATFORM_SAM3S_EK_RF2XX) ##### PLATFORM_SAM3S_EK_RF2XX platform #### HAL = AT91SAM3S4C # For platform with 32.768 kHz only. SYSTEM_TIME_ON = SLEEP_TIMER endif # PLATFORM_SAM3S_EK_RF2XX ifeq ($(PLATFORM), PLATFORM_SAM3S_PIRRD) ##### PLATFORM_SAM3S_PIRRD platform #### HAL = AT91SAM3S4C endif # PLATFORM_SAM3S_PIRRD ifeq ($(PLATFORM), PLATFORM_CUSTOM_3) # AT91SAM3S4B in fact, but changes are negligible HAL = AT91SAM3S4C HAL_FREQUENCY = HAL_64MHz HAL_CLOCK_SOURCE = CRYSTAL_16MHz HAL_ASYNC_CLOCK_SOURCE = RC_ASYNC endif # PLATFORM_CUSTOM_3 ifeq ($(PLATFORM), PLATFORM_RCB) ######### RCB platform ##### ifeq (, $(findstring $(PLATFORM_REV), RCB_ATMEGA128RFA1 RCB_ATMEGA256RFR2 RCB230_V31 RCB230_V32 RCB230_V331 RCB231_V402 RCB231_V411 RCB212_V532)) $(error ERROR in file Makerules: $(PLATFORM_REV) Unknown platform revision for PLATFORM_RCB) endif ifeq ($(PLATFORM_REV), RCB_ATMEGA128RFA1) HAL = ATMEGA128RFA1 else ifeq ($(PLATFORM_REV), RCB_ATMEGA256RFR2) HAL = ATMEGA256RFR2 else HAL = ATMEGA1281 endif # PLATFORM_REV ifeq (, $(findstring $(HAL_FREQUENCY), HAL_16MHz HAL_8MHz HAL_4MHz)) $(error ERROR in file Makerules: $(HAL_FREQUENCY) Unknown type of HAL frequency for $(PLATFORM) platform) endif # For platform with 32.768 kHz only. SYSTEM_TIME_ON = SLEEP_TIMER endif # PLATFORM_RCB ifeq ($(PLATFORM), PLATFORM_AVR32_EVK1105) ##### PLATFORM_AVR32_EVK1105 platform #### HAL = AT32UC3A0512 HAL_FREQUENCY = HAL_48MHz endif # PLATFORM_AVR32_EVK1105 ifeq ($(PLATFORM), PLATFORM_XPLAIN) ####### XPLAIN platform #### HAL = ATXMEGA128A1 # Checking parameters. ifeq (, $(findstring $(HAL_CLOCK_SOURCE), CRYSTAL_16MHz RC_INTERNAL_32MHz RC_INTERNAL_2MHz)) $(error ERROR in file Makerules: $(HAL_CLOCK_SOURCE) Unknown type of clock source for $(PLATFORM) platform) endif # Checking parameters. ifeq (, $(findstring $(HAL_ASYNC_CLOCK_SOURCE), RC_ULP RC_32K CRYSTAL_32K)) $(error ERROR in file Makerules: $(HAL_ASYNC_CLOCK_SOURCE) Unknown type of asynchronous clock source for $(PLATFORM) platform) endif # Set asynchronous clock as system time for platform with 32.768 kHz (RC or crystal). ifneq (, $(findstring $(HAL_ASYNC_CLOCK_SOURCE), RC_32K CRYSTAL_32K)) SYSTEM_TIME_ON = SLEEP_TIMER endif ifeq (, $(findstring $(HAL_FREQUENCY), HAL_4MHz HAL_8MHz HAL_12MHz HAL_16MHz HAL_32MHz)) $(error ERROR in file Makerules: $(HAL_FREQUENCY) Unknown type of HAL frequency for $(PLATFORM) platform) endif endif # PLATFORM_XPLAIN ifeq ($(PLATFORM), PLATFORM_REB_CBB) ####### REB CBB platform #### HAL = ATXMEGA256A3 # Checking parameters. ifeq (, $(findstring $(RF_EXTENDER), REB230 REB231 REB212)) $(error ERROR in file Makerules: $(HAL_CLOCK_SOURCE) Unknown type of the radio extension board for $(PLATFORM) platform) endif # Checking parameters. ifeq (, $(findstring $(HAL_CLOCK_SOURCE), RC_INTERNAL_32MHz RC_INTERNAL_2MHz)) $(error ERROR in file Makerules: $(HAL_CLOCK_SOURCE) Unknown type of clock source for $(PLATFORM) platform) endif # Checking parameters. ifeq (, $(findstring $(HAL_ASYNC_CLOCK_SOURCE), RC_ULP RC_32K CRYSTAL_32K)) $(error ERROR in file Makerules: $(HAL_ASYNC_CLOCK_SOURCE) Unknown type of asynchronous clock source for $(PLATFORM) platform) endif # Set asynchronous clock as system time for platform with 32.768 kHz (RC or crystal). ifneq (, $(findstring $(HAL_ASYNC_CLOCK_SOURCE), RC_32K CRYSTAL_32K)) SYSTEM_TIME_ON = SLEEP_TIMER endif ifeq (, $(findstring $(HAL_FREQUENCY), HAL_4MHz HAL_8MHz HAL_12MHz HAL_16MHz HAL_32MHz)) $(error ERROR in file Makerules: $(HAL_FREQUENCY) Unknown type of HAL frequency for $(PLATFORM) platform) endif endif # PLATFORM_REB_CBB ifeq ($(PLATFORM), PLATFORM_SIMULATOR) ######### Simulator platform ##### HAL = SIMULATOR HAL_FREQUENCY = HAL_0MHz endif # PLATFORM_SIMULATOR #------------------------------------------------------------------------------- # CPU selection: #------------------------------------------------------------------------------- ifeq ($(HAL), ATMEGA1281) ifeq ($(COMPILER_TYPE), GCC) CPU = atmega1281 endif ifeq ($(COMPILER_TYPE), IAR) CPU = m1281 endif endif ifeq ($(HAL), ATMEGA2561) ifeq ($(COMPILER_TYPE), GCC) CPU = atmega2561 endif ifeq ($(COMPILER_TYPE), IAR) CPU = m2561 endif endif ifeq ($(HAL), ATMEGA1284) ifeq ($(COMPILER_TYPE), GCC) CPU = atmega1284p endif ifeq ($(COMPILER_TYPE), IAR) CPU = m1284p endif endif ifeq ($(HAL), AT90USB1287) ifeq ($(COMPILER_TYPE), GCC) CPU = at90usb1287 endif ifeq ($(COMPILER_TYPE), IAR) CPU = m1287 endif endif ifeq ($(HAL), ATXMEGA128A1) ifeq ($(COMPILER_TYPE), GCC) CPU = atxmega128a1 endif ifeq ($(COMPILER_TYPE), IAR) CPU = xm128a1 endif endif ifeq ($(HAL), ATXMEGA256A3) ifeq ($(COMPILER_TYPE), GCC) CPU = atxmega256a3 endif ifeq ($(COMPILER_TYPE), IAR) CPU = xm256a3 endif endif ifeq ($(HAL), ATXMEGA256D3) ifeq ($(COMPILER_TYPE), GCC) CPU = atxmega256d3 endif ifeq ($(COMPILER_TYPE), IAR) CPU = xm256d3 endif endif ifeq ($(HAL), AT91SAM7X256) CPU = arm7tdmi endif ifeq ($(HAL), AT91SAM3S4C) CPU = cortex-m3 endif ifeq ($(HAL), ATMEGA128RFA1) ifeq ($(COMPILER_TYPE), GCC) CPU = atmega128rfa1 endif ifeq ($(COMPILER_TYPE), IAR) CPU = m128rfa1 endif endif ifeq ($(HAL), ATMEGA256RFR2) ifeq ($(COMPILER_TYPE), GCC) CPU = atmega256rfr2 endif ifeq ($(COMPILER_TYPE), IAR) CPU = m256rfr2 endif endif ifeq ($(HAL), AT32UC3A0512) ifeq ($(COMPILER_TYPE), GCC) CPU = ??? endif ifeq ($(COMPILER_TYPE), IAR) CPU = at32uc3a0512 endif endif ifeq ($(HAL), SIMULATOR) CPU = simulator endif ifndef HAL $(error ERROR in file Makerules: $(CPU) Unknown type of CPU) endif #------------------------------------------------------------------------------- # Cross-platform compiler type declaration: #------------------------------------------------------------------------------- ifndef COMPILER_TYPE $(error ERROR in file Makerules: $(COMPILER_TYPE) - unknow type of compiler) endif ifneq (, $(findstring $(HAL), AT91SAM7X256 AT91SAM3S4C)) ifeq ($(COMPILER_TYPE), IAR) CROSS_COMPILER = arm endif ifeq ($(COMPILER_TYPE), GCC) CROSS_COMPILER = arm-none-eabi endif endif ifneq (, $(findstring $(HAL), ATMEGA1281 ATMEGA2561 ATMEGA1284 AT90USB1287 ATXMEGA128A1 ATXMEGA256A3 ATXMEGA256D3 ATMEGA128RFA1 ATMEGA256RFR2)) CROSS_COMPILER = avr endif ifeq ($(HAL), AT32UC3A0512) CROSS_COMPILER = avr32 endif ifndef CROSS_COMPILER #$(error ERROR in file Makerules: Cross-platform compiler type is not detected) endif #------------------------------------------------------------------------------- # Output options definitions: #------------------------------------------------------------------------------- ifeq ($(QUIET), TRUE) Q = @ SILENT = -s AS_MSG = @echo "$(AS)" $? LD_MSG = @echo "$(LD)" $@ CC_MSG = @echo "$(CC)" $? CPP_MSG = @echo "$(CPP)" $? AR_MSG = @echo "$(AR)" $@ NM_MSG = @echo "$(NM)" $@ STRIP_MSG = @echo "$(STRIP)" $@ OBJCOPY_MSG = @echo "$(OBJCOPY)" $@ OBJDUMP_MSG = @echo "$(OBJDUMP)" $@ SHOW_SIZE = @echo else SHOW_SIZE = $(SIZE) endif #------------------------------------------------------------------------------- # Components paths. In each component COMPONENTS_PATH should be defined: #------------------------------------------------------------------------------- ifeq ($(PLATFORM), PLATFORM_ZIGBIT_TURBO) HAL_HWD_COMMON_PATH = $(HAL_PATH)/arm7tdmi/at91sam7x256/common HAL_MAC_API_PATH = $(HAL_PATH)/arm7tdmi/at91sam7x256/zigBitArm endif ifeq ($(PLATFORM), PLATFORM_ZIGBIT_LAN) HAL_HWD_COMMON_PATH = $(HAL_PATH)/arm7tdmi/at91sam7x256/common HAL_MAC_API_PATH = $(HAL_PATH)/arm7tdmi/at91sam7x256/zigBitArm endif ifeq ($(PLATFORM), PLATFORM_SAM7X_EK_RF2XX) HAL_HWD_COMMON_PATH = $(HAL_PATH)/arm7tdmi/at91sam7x256/common HAL_MAC_API_PATH = $(HAL_PATH)/arm7tdmi/at91sam7x256/atmlEvalKit endif ifeq ($(PLATFORM), PLATFORM_CUSTOM_1) HAL_HWD_COMMON_PATH = $(HAL_PATH)/arm7tdmi/at91sam7x256/common HAL_MAC_API_PATH = $(HAL_PATH)/arm7tdmi/at91sam7x256/custom1 endif ifeq ($(PLATFORM), PLATFORM_CUSTOM_2) HAL_HWD_COMMON_PATH = $(HAL_PATH)/arm7tdmi/at91sam7x256/common HAL_MAC_API_PATH = $(HAL_PATH)/arm7tdmi/at91sam7x256/custom2 endif ifeq ($(PLATFORM), PLATFORM_SAM3S_EK_RF2XX) HAL_HWD_COMMON_PATH = $(HAL_PATH)/cortexm3/at91sam3s4c/common HAL_MAC_API_PATH = $(HAL_PATH)/cortexm3/at91sam3s4c/sam3sEK endif ifeq ($(PLATFORM), PLATFORM_RF231USBRD) HAL_HWD_COMMON_PATH = $(HAL_PATH)/cortexm3/at91sam3s4c/common HAL_MAC_API_PATH = $(HAL_PATH)/cortexm3/at91sam3s4c/Rf231UsbRd endif ifeq ($(PLATFORM), PLATFORM_SAM3S_PIRRD) HAL_HWD_COMMON_PATH = $(HAL_PATH)/cortexm3/at91sam3s4c/common HAL_MAC_API_PATH = $(HAL_PATH)/cortexm3/at91sam3s4c/sam3sPIRRD endif ifeq ($(PLATFORM), PLATFORM_CUSTOM_3) HAL_HWD_COMMON_PATH = $(HAL_PATH)/cortexm3/at91sam3s4c/common HAL_MAC_API_PATH = $(HAL_PATH)/cortexm3/at91sam3s4c/custom3 endif ifeq ($(PLATFORM), PLATFORM_ZIGBIT) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr/atmega1281/common HAL_MAC_API_PATH = $(HAL_PATH)/avr/atmega1281/zigBit endif ifeq ($(PLATFORM), PLATFORM_RAVEN) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr/atmega1284/common HAL_MAC_API_PATH = $(HAL_PATH)/avr/atmega1284/raven endif ifeq ($(PLATFORM), PLATFORM_STK600) ifeq ($(HAL), ATMEGA128RFA1) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr/atmega128rfa1/common HAL_MAC_API_PATH = $(HAL_PATH)/avr/atmega128rfa1/common endif ifeq ($(HAL), ATMEGA256RFR2) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr/atmega128rfa1/common HAL_MAC_API_PATH = $(HAL_PATH)/avr/atmega128rfa1/common endif ifeq ($(HAL), ATXMEGA128A1) HAL_HWD_COMMON_PATH = $(HAL_PATH)/xmega/atxmega128a1/common HAL_MAC_API_PATH = $(HAL_PATH)/xmega/atxmega128a1/stk600 endif # ATXMEGA128A1 ifeq ($(HAL), ATXMEGA256A3) HAL_HWD_COMMON_PATH = $(HAL_PATH)/xmega/atxmega256a3/common HAL_MAC_API_PATH = $(HAL_PATH)/xmega/atxmega256a3/stk600 endif # ATXMEGA256A3 ifeq ($(HAL), ATXMEGA256D3) HAL_HWD_COMMON_PATH = $(HAL_PATH)/xmega/atxmega256d3/common HAL_MAC_API_PATH = $(HAL_PATH)/xmega/atxmega256d3/stk600 endif # ATXMEGA256D3 endif # PLATFORM_STK600 ifeq ($(PLATFORM), PLATFORM_STK500_RF2XX) ifneq (, $(findstring $(RF_EXTENDER), REB230)) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr/atmega1281/common HAL_MAC_API_PATH = $(HAL_PATH)/avr/atmega1281/rcb230 endif ifneq (, $(findstring $(RF_EXTENDER), REB231 REB212)) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr/atmega1281/common HAL_MAC_API_PATH = $(HAL_PATH)/avr/atmega1281/rcb231_212 endif endif ifeq ($(PLATFORM), PLATFORM_ATML_USB_DONGLE) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr/at90usb1287/common HAL_MAC_API_PATH = $(HAL_PATH)/avr/at90usb1287/usbDongle endif ifeq ($(PLATFORM), PLATFORM_RCB) ifneq (, $(findstring $(PLATFORM_REV), RCB_ATMEGA128RFA1 RCB_ATMEGA256RFR2)) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr/atmega128rfa1/common HAL_MAC_API_PATH = $(HAL_PATH)/avr/atmega128rfa1/common endif ifneq (, $(findstring $(PLATFORM_REV), RCB230_V31 RCB230_V32 RCB230_V331)) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr/atmega1281/common HAL_MAC_API_PATH = $(HAL_PATH)/avr/atmega1281/rcb230 endif ifneq (, $(findstring $(PLATFORM_REV), RCB231_V402 RCB231_V411 RCB212_V532)) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr/atmega1281/common HAL_MAC_API_PATH = $(HAL_PATH)/avr/atmega1281/rcb231_212 endif endif ifeq ($(PLATFORM), PLATFORM_AVR32_EVK1105) HAL_HWD_COMMON_PATH = $(HAL_PATH)/avr32/uc32a0512/common HAL_MAC_API_PATH = $(HAL_PATH)/avr32/uc32a0512/evk1105 endif ifeq ($(PLATFORM), PLATFORM_XPLAIN) HAL_HWD_COMMON_PATH = $(HAL_PATH)/xmega/atxmega128a1/common HAL_MAC_API_PATH = $(HAL_PATH)/xmega/atxmega128a1/xplain endif # PLATFORM_XPLAIN ifeq ($(PLATFORM), PLATFORM_REB_CBB) HAL_HWD_COMMON_PATH = $(HAL_PATH)/xmega/atxmega256a3/common HAL_MAC_API_PATH = $(HAL_PATH)/xmega/atxmega256a3/stk600 endif # PLATFORM_REB_CBB ifeq ($(PLATFORM), PLATFORM_SIMULATOR) HAL_HWD_COMMON_PATH = $(HAL_PATH)/simulator HAL_MAC_API_PATH = $(HAL_PATH)/simulator endif ifndef HAL_HWD_COMMON_PATH $(error ERROR in file Makerules: unknown or unsupported platform) endif ifndef HAL_MAC_API_PATH $(error ERROR in file Makerules: unknown or unsupported platform) endif #------------------------------------------------------------------------------------- # Stack library name definition. #------------------------------------------------------------------------------------- ifeq ($(COMPILER_TYPE), IAR) LIB_NAME_COMPILER = _Iar endif ifeq ($(COMPILER_TYPE), GCC) LIB_NAME_COMPILER = _Gcc endif ifeq ($(HAL_FREQUENCY), HAL_0MHz) LIB_NAME_HAL_FREQ = _0Mhz else ifeq ($(HAL_FREQUENCY), HAL_4MHz) LIB_NAME_HAL_FREQ = _4Mhz else ifeq ($(HAL_FREQUENCY), HAL_8MHz) LIB_NAME_HAL_FREQ = _8Mhz else ifeq ($(HAL_FREQUENCY), HAL_12MHz) LIB_NAME_HAL_FREQ = _12Mhz else ifeq ($(HAL_FREQUENCY), HAL_16MHz) LIB_NAME_HAL_FREQ = _16Mhz else ifeq ($(HAL_FREQUENCY), HAL_18d432MHz) LIB_NAME_HAL_FREQ = _18_432MHz else ifeq ($(HAL_FREQUENCY), HAL_32MHz) LIB_NAME_HAL_FREQ = _32Mhz else ifeq ($(HAL_FREQUENCY), HAL_48MHz) LIB_NAME_HAL_FREQ = _48Mhz else ifeq ($(HAL_FREQUENCY), HAL_64MHz) LIB_NAME_HAL_FREQ = _64Mhz endif ifeq ($(PLATFORM), PLATFORM_ZIGBIT) HAL_LIB_NAME_PLATFORM = _ZigBit endif ifeq ($(PLATFORM), PLATFORM_RAVEN) HAL_LIB_NAME_PLATFORM = _Raven endif ifeq ($(PLATFORM), PLATFORM_ATML_USB_DONGLE) HAL_LIB_NAME_PLATFORM = _AtmlUsbDongle endif ifeq ($(PLATFORM), PLATFORM_STK600) HAL_LIB_NAME_PLATFORM = _AtmlStk600 endif ifeq ($(PLATFORM), PLATFORM_STK500_RF2XX) HAL_LIB_NAME_PLATFORM = _AtmlStk500Rf2xx endif ifeq ($(PLATFORM), PLATFORM_ZIGBIT_TURBO) HAL_LIB_NAME_PLATFORM = _ZigBitTurbo endif ifeq ($(PLATFORM), PLATFORM_ZIGBIT_LAN) HAL_LIB_NAME_PLATFORM = _ZigBitLan endif ifeq ($(PLATFORM), PLATFORM_SAM7X_EK_RF2XX) HAL_LIB_NAME_PLATFORM = _Sam7xEkRf2xx endif ifeq ($(PLATFORM), PLATFORM_CUSTOM_1) HAL_LIB_NAME_PLATFORM = _Custom1 endif ifeq ($(PLATFORM), PLATFORM_CUSTOM_2) HAL_LIB_NAME_PLATFORM = _Custom2 endif ifeq ($(PLATFORM), PLATFORM_SAM3S_EK_RF2XX) HAL_LIB_NAME_PLATFORM = _Sam3sEkRf2xx endif ifeq ($(PLATFORM), PLATFORM_RF231USBRD) HAL_LIB_NAME_PLATFORM = _Rf231UsbRd endif ifeq ($(PLATFORM), PLATFORM_SAM3S_PIRRD) HAL_LIB_NAME_PLATFORM = _Sam3sPirrd endif ifeq ($(PLATFORM), PLATFORM_CUSTOM_3) HAL_LIB_NAME_PLATFORM = _Custom3 endif ifeq ($(PLATFORM), PLATFORM_RCB) ifeq ($(PLATFORM_REV), RCB_ATMEGA128RFA1) HAL_LIB_NAME_PLATFORM = _RcbAtm128rfa1 else ifeq ($(PLATFORM_REV), RCB_ATMEGA256RFR2) HAL_LIB_NAME_PLATFORM = _RcbAtm256rfr2 else ifneq (, $(findstring $(PLATFORM_REV), RCB230_V31 RCB230_V32 RCB230_V331)) HAL_LIB_NAME_PLATFORM = _Rcb230 endif ifneq (, $(findstring $(PLATFORM_REV), RCB231_V402 RCB231_V411 RCB212_V532)) HAL_LIB_NAME_PLATFORM = _Rcb231_212 endif endif # PLATFORM_REV endif ifeq ($(PLATFORM), PLATFORM_AVR32_EVK1105) HAL_LIB_NAME_PLATFORM = _Avr32Evk1105 endif ifeq ($(PLATFORM), PLATFORM_XPLAIN) HAL_LIB_NAME_PLATFORM = _Xplain endif ifeq ($(PLATFORM), PLATFORM_REB_CBB) ifneq (, $(findstring $(RF_EXTENDER), REB230)) HAL_LIB_NAME_PLATFORM = _RebCbb230 endif ifneq (, $(findstring $(RF_EXTENDER), REB231 REB212)) HAL_LIB_NAME_PLATFORM = _RebCbb231_212 endif endif ifeq ($(PLATFORM), PLATFORM_SIMULATOR) HAL_LIB_NAME_PLATFORM = _Sim endif ifeq ($(HAL), ATMEGA1281) LIB_NAME_MICRO = _Atmega1281 endif ifeq ($(HAL), ATMEGA2561) LIB_NAME_MICRO = _Atmega2561 endif ifeq ($(HAL), ATMEGA1284) LIB_NAME_MICRO = _Atmega1284 endif ifeq ($(HAL), AT90USB1287) LIB_NAME_MICRO = _At90usb1287 endif ifeq ($(HAL), ATXMEGA128A1) LIB_NAME_MICRO = _Atxmega128a1 endif ifeq ($(HAL), ATXMEGA256A3) LIB_NAME_MICRO = _Atxmega256a3 endif ifeq ($(HAL), ATXMEGA256D3) LIB_NAME_MICRO = _Atxmega256d3 endif ifeq ($(HAL), ATMEGA128RFA1) LIB_NAME_MICRO = _Atmega128rfa1 endif ifeq ($(HAL), ATMEGA256RFR2) LIB_NAME_MICRO = _Atmega256rfr2 endif ifeq ($(HAL), AT91SAM7X256) LIB_NAME_MICRO = _At91sam7x256 endif ifeq ($(HAL), AT91SAM3S4C) LIB_NAME_MICRO = _At91sam3s4c endif ifeq ($(HAL), AT32UC3A0512) LIB_NAME_MICRO = _At32uc3a0512 endif ifeq ($(HAL), SIMULATOR) LIB_NAME_MICRO = _Sim endif ifeq ($(HAL_USE_AMPLIFIER), TRUE) LIB_NAME_AMP = _Amp endif STACK_LIB = $(LIB_NAME_MICRO)$(LIB_NAME_COMPILER) ifndef STACK_LIB $(error ERROR: Build target is not defined) endif include $(STACK_LIB_PATH)/Makerules$(STACK_LIB) HAL_LIB = HAL$(HAL_LIB_NAME_PLATFORM)$(LIB_NAME_MICRO)$(LIB_NAME_HAL_FREQ)$(LIB_NAME_COMPILER)$(LIB_NAME_AMP) #------------------------------------------------------------------------------- # Compiler flags: #------------------------------------------------------------------------------- CFLAGS += -D$(HAL) CFLAGS += -D$(PLATFORM) CFLAGS += -D$(OS) ifdef HAL_FREQUENCY CFLAGS += -D$(HAL_FREQUENCY) endif ifdef HAL_CLOCK_SOURCE ####### For platforms with different main clock sources #### CFLAGS += -D$(HAL_CLOCK_SOURCE) endif ifdef HAL_ASYNC_CLOCK_SOURCE ####### For platforms with different asyncronous clock sources #### CFLAGS += -D$(HAL_ASYNC_CLOCK_SOURCE) endif ifeq ($(PLATFORM), PLATFORM_RCB) ####### RCB platform #### CFLAGS += -D$(PLATFORM_REV) endif ifdef RF_EXTENDER ####### RF extension boards type for REB CBB & STK600 #### CFLAGS += -D$(RF_EXTENDER) endif ifeq ($(HAL_USE_AMPLIFIER), TRUE) #### enable amplifier for zigbit platform #### CFLAGS += -D_HAL_USE_AMPLIFIER_ endif ifeq ($(HAL_USE_USART_ERROR_EVENT), TRUE) #### enable usart error handler #### CFLAGS += -D_USE_USART_ERROR_EVENT_ endif ifeq ($(HAL_RF_RX_TX_INDICATOR), TRUE) #### enable RF_RX_TX_INDICATOR #### CFLAGS += -D_HAL_RF_RX_TX_INDICATOR_ endif ifeq ($(HAL_ANT_DIVERSITY), TRUE) #### enable Antenna diversity #### CFLAGS += -D_HAL_ANT_DIVERSITY_ endif ifeq ($(HAL_USE_PIRRD_SPECIAL_SLEEP), TRUE) #### Special sleep mode for WPIRDemo application CFLAGS += -D_HAL_USE_PIRRD_SPECIAL_SLEEP_ endif #------------------------------------------------------------------------------- # UART HW support compiler flags. # AVR platforms support only UART channel 1 hardware control. # ARM platforms support both UART channels hardware control. #------------------------------------------------------------------------------- ifeq ($(PLATFORM), PLATFORM_ZIGBIT_LAN) CFLAGS += -D_UART_0_HW_CONTROL_ endif ifeq ($(PLATFORM), PLATFORM_SAM7X_EK_RF2XX) CFLAGS += -D_UART_0_HW_CONTROL_ endif ifeq ($(PLATFORM), PLATFORM_ZIGBIT_TURBO) CFLAGS += -D_UART_0_HW_CONTROL_ endif #------------------------------------------------------------------------------- # Compiler flags for debug info: #------------------------------------------------------------------------------- ifeq ($(BUILD_CONFIGURATION), DEBUG) ifeq ($(COMPILER_TYPE), IAR) CFLAGS += --debug endif ifeq ($(COMPILER_TYPE), GCC) CFLAGS += -g endif endif # DEBUG #------------------------------------------------------------------------------- # Check compiler version: #------------------------------------------------------------------------------- ifeq ($(COMPILER_TYPE), GCC) COMPILER_VERSION = $(strip $(shell $(CC) -v 2>&1 | grep 'gcc version')) endif ifeq ($(COMPILER_TYPE), IAR) COMPILER_VERSION = $(strip $(shell $(CC) | grep 'C/C++ Compiler V')) endif ifeq ($(COMPILER_AND_MICRO_TYPE), GCC_AVR) EXP_VERSION = gcc version 4.3.3 (WinAVR 20100110) else ifeq ($(COMPILER_AND_MICRO_TYPE), IAR_AVR) EXP_VERSION = IAR C/C++ Compiler V5.51.5.50367/W32 for Atmel AVR else ifeq ($(COMPILER_AND_MICRO_TYPE), GCC_ARM) EXP_VERSION = gcc version 4.5.1 (GCC) else ifeq ($(COMPILER_AND_MICRO_TYPE), IAR_ARM) EXP_VERSION = IAR ANSI C/C++ Compiler V6.21.1.52794/W32 for ARM else ifeq ($(COMPILER_AND_MICRO_TYPE), IAR_AVR32) EXP_VERSION = IAR C/C++ Compiler V3.30.1.40051/W32 for Atmel AVR32 else ifeq ($(COMPILER_AND_MICRO_TYPE), GCC_X86) UNAME := $(shell uname) ifeq ($(UNAME), Linux) EXP_VERSION = gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) else EXP_VERSION = gcc version 4.5.2 (GCC) endif else $(error unsupported COMPILER_AND_MICRO_TYPE) endif ifeq ($(COMPILER_TYPE), IAR) COMPILER_TYPE_LOWER_CASE = _Iar else COMPILER_TYPE_LOWER_CASE = _Gcc endif # COMPILER_TYPE ifeq ($(HAL), ATMEGA1281) WDT_INIT_OBJ=WdtInitatmega1281$(COMPILER_TYPE_LOWER_CASE).o endif ifeq ($(HAL), ATMEGA2561) WDT_INIT_OBJ=WdtInitatmega2561$(COMPILER_TYPE_LOWER_CASE).o endif ifeq ($(HAL), ATMEGA1284) WDT_INIT_OBJ=WdtInitatmega1284$(COMPILER_TYPE_LOWER_CASE).o endif ifeq ($(HAL), AT90USB1287) WDT_INIT_OBJ=WdtInitat90usb1287$(COMPILER_TYPE_LOWER_CASE).o endif ifeq ($(HAL), ATMEGA128RFA1) WDT_INIT_OBJ=WdtInitatmega128rfa1$(COMPILER_TYPE_LOWER_CASE).o endif ifeq ($(HAL), ATMEGA256RFR2) WDT_INIT_OBJ=WdtInitatmega256rfr2$(COMPILER_TYPE_LOWER_CASE).o endif ifeq ($(HAL), AT91SAM7X256) ifeq ($(OS), FREE_RTOS) FREE_RTOS_LIB=FreeRTOSat91sam7x256 endif ifeq ($(COMPILER_TYPE), GCC) ifeq ($(OS), FREE_RTOS) BOOT_OBJ = $(LIBDIR)/FreertosBoot$(COMPILER_TYPE_LOWER_CASE).o endif ifeq ($(OS), NONE_OS) BOOT_OBJ = $(LIBDIR)/FirmwareBoot$(COMPILER_TYPE_LOWER_CASE).o endif endif ifeq ($(COMPILER_TYPE), IAR) ifeq ($(OS), FREE_RTOS) endif ifeq ($(OS), NONE_OS) BOOT_OBJ = $(LIBDIR)/FirmwareBoot$(COMPILER_TYPE_LOWER_CASE).o endif endif endif