diff options
Diffstat (limited to 'board/evb/google_rcu/gcc')
-rw-r--r-- | board/evb/google_rcu/gcc/Makefile | 293 | ||||
-rw-r--r-- | board/evb/google_rcu/gcc/app.ld | 105 | ||||
-rw-r--r-- | board/evb/google_rcu/gcc/mem_define.ld | 6 |
3 files changed, 404 insertions, 0 deletions
diff --git a/board/evb/google_rcu/gcc/Makefile b/board/evb/google_rcu/gcc/Makefile new file mode 100644 index 0000000..673ad30 --- /dev/null +++ b/board/evb/google_rcu/gcc/Makefile @@ -0,0 +1,293 @@ +########################################################################################################################## +# File automatically-generated by tool: [projectgenerator] version: [3.5.2] date: [Fri Nov 29 15:56:19 CST 2019] +########################################################################################################################## +# ------------------------------------------------ +# Generic Makefile (based on gcc) +# +# ChangeLog : +# 2019-02-01 - first version +# ------------------------------------------------ +###################################### +# target +###################################### +TARGET = google_rcu +ENCRYPTION = 0 +###################################### +# building variables +###################################### +# debug build? +DEBUG = 0 +# optimization +#OPT = -Og +OPT = -O1 +####################################### +# paths +####################################### +# Build path +BUILD_DIR = build +BIN_DIR = bin +###################################### +# source +###################################### +# C sources +C_SOURCES = \ +../../../../src/app/google_rcu/profile_module/hids_rmc.c \ +../../../../src/mcu/rtl876x/system_rtl876x.c \ +../../../../src/mcu/peripheral/rtl876x_io_dlps.c \ +../../../../src/mcu/peripheral/rtl876x_gpio.c \ +../../../../src/mcu/peripheral/rtl876x_ir.c \ +../../../../src/mcu/peripheral/rtl876x_keyscan.c \ +../../../../src/mcu/peripheral/rtl876x_rtc.c \ +../../../../src/mcu/peripheral/rtl876x_codec.c \ +../../../../src/mcu/peripheral/rtl876x_i2s.c \ +../../../../src/mcu/peripheral/rtl876x_pinmux.c \ +../../../../src/mcu/peripheral/rtl876x_nvic.c \ +../../../../src/mcu/peripheral/rtl876x_rcc.c \ +../../../../src/mcu/peripheral/rtl876x_tim.c \ +../../../../src/mcu/peripheral/rtl876x_gdma.c \ +../../../../src/mcu/peripheral/rtl876x_uart.c \ +../../../../src/mcu/peripheral/rtl876x_adc.c \ +../../../../src/mcu/peripheral/rtl876x_lpc.c \ +../../../../src/mcu/peripheral/rtl876x_aon_wdg.c \ +../../../../src/ble/profile/server/dis.c \ +../../../../src/ble/profile/server/bas.c \ +../../../../src/ble/profile/server/vendor_service.c \ +../../../../src/ble/profile/server/voice_service.c \ +../../../../src/ble/profile/server/atvv_service.c \ +../../../../src/app/google_rcu/profile_module/ir_service.c \ +../../../../src/app/google_rcu/profile_module/dfu_service.c \ +../../../../src/app/google_rcu/profile_module/ota_service.c \ +../../../../src/app/google_rcu/profile_module/fms.c \ +../../../../src/app/google_rcu/main.c \ +../../../../src/app/google_rcu/rcu_application.c \ +../../../../src/app/google_rcu/rcu_gap.c \ +../../../../src/app/google_rcu/swtimer.c \ +../../../../src/app/google_rcu/app_task.c \ +../../../../src/app/google_rcu/reset_watch_dog_timer.c \ +../../../../src/ble/privacy/privacy_mgnt.c \ +../../../../src/mcu/rtl876x/overlay_mgr.c \ +../../../../src/app/google_rcu/loop_queue.c \ +../../../../src/app/google_rcu/rtc_module/rtc_driver.c \ +../../../../src/dfu/dfu_main.c \ +../../../../src/dfu/dfu_task.c \ +../../../../src/dfu/dfu_application.c \ +../../../../src/platform/dfu_flash.c \ +../../../../src/app/google_rcu/key_module/keyscan_driver.c \ +../../../../src/app/google_rcu/key_module/key_handle.c \ +../../../../src/app/google_rcu/voice_module/voice_driver.c \ +../../../../src/app/google_rcu/voice_module/voice.c \ +../../../../src/app/google_rcu/ir_module/ir_send_driver.c \ +../../../../src/app/google_rcu/ir_module/ir_send_handle.c \ +../../../../src/app/google_rcu/ir_module/ir_protocol_nec.c \ +../../../../src/app/google_rcu/ir_module/ir_service_handle.c \ +../../../../src/app/google_rcu/led_module/led_driver.c \ +../../../../src/app/google_rcu/led_module/led_pwm_driver.c \ +../../../../src/app/google_rcu/buzzer_module/buzzer_driver.c \ +../../../../src/app/google_rcu/buzzer_module/fms_service_handle.c \ +../../../../src/app/google_rcu/bat_module/battery_driver.c \ +../../../../src/app/google_rcu/test_module/data_uart_test.c \ +../../../../src/app/google_rcu/test_module/mp_test.c \ +../../../../src/app/google_rcu/test_module/single_tone.c \ +../../../../src/app/google_rcu/test_module/uart_transport.c \ +../../../../src/app/google_rcu/frm_vpk/src/app_flash_write.c \ +../../../../src/app/google_rcu/frm_vpk/src/app_custom.c \ +../../../../src/app/google_rcu/frm_vpk/frm_vpk_api/frm_vpk_hal_sflash.c \ +../../../../src/app/google_rcu/frm_vpk/frm_vpk_api/frm_vpk_log.c \ +../../../../src/app/google_rcu/dtm_module/rcu_dtm_app.c \ +../../../../src/app/google_rcu/address_module/rcu_link_mgr.c \ +# sources END +# ASM sources +ASM_SOURCES = ../../../../src/mcu/rtl876x/arm/startup_rtl876x_gcc.s +#startup_rtl8762c_ARMCC.s +####################################### +# binaries +####################################### +PREFIX = arm-none-eabi- +# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) +# either it can be added to the PATH environment variable. +ifdef GCC_PATH +CC = $(GCC_PATH)/$(PREFIX)gcc +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +else +CC = $(PREFIX)gcc +AS = $(PREFIX)gcc -x assembler-with-cpp +CP = $(PREFIX)objcopy +SZ = $(PREFIX)size +OD = $(PREFIX)objdump +endif +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S +####################################### +# CFLAGS +####################################### +# cpu +CPU = -mcpu=cortex-m0plus + +# fpu +FPU = + +# float-abi +#FLOAT-ABI = -mfloat-abi=hard +FLOAT-ABI = -mfloat-abi=soft + +# mcu +MCU = $(CPU) -mthumb $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = + + +# AS includes +AS_INCLUDES = \ + +# C includes + +C_INCLUDES = \ +-I../../../../bin/upperstack_img/upperstack_0_0 \ +-I../../google_rcu \ +-I../../../../src/app/google_rcu \ +-I../../../../src/app/google_rcu/bat_module \ +-I../../../../src/app/google_rcu/ir_module \ +-I../../../../src/app/google_rcu/key_module \ +-I../../../../src/app/google_rcu/led_module \ +-I../../../../src/app/google_rcu/voice_module \ +-I../../../../src/app/google_rcu/test_module \ +-I../../../../src/app/google_rcu/rtc_module \ +-I../../../../src/app/google_rcu/buzzer_module \ +-I../../../../src/app/google_rcu/opus \ +-I../../../../src/app/google_rcu/profile_module \ +-I../../../../src/ble \ +-I../../../../src/ble/privacy \ +-I../../../../src/dfu \ +-I../../../../inc/app \ +-I../../../../inc/bluetooth/gap \ +-I../../../../inc/bluetooth/gap/gap_lib \ +-I../../../../inc/bluetooth/profile \ +-I../../../../inc/bluetooth/profile/server \ +-I../../../../inc/platform \ +-I../../../../inc/peripheral \ +-I../../../../inc/os \ +-I../../../../inc/rcu \ +-I../../../../inc/rcu/opus_inc \ +-I../../../../../bluetooth/crypto \ +-I../../../../../patch/inc \ +-I../../../../src/app/google_rcu/frm_vpk/src \ +-I../../../../src/app/google_rcu/frm_vpk/frm_vpk_api \ +-I../../../../src/app/google_rcu/frm_vpk \ +-I../../../../src/app/google_rcu/dtm_module \ +-I../../../../src/app/google_rcu/address_module \ +# includes END +#C_PRE_INCLUDES + +PER_INCLUDE= \ +#PRE_INCLUDES END + +#C_PER_DEFINE + +PER_DEFINE= \ +-D SUPPORT_ALONE_UPPERSTACK_IMG \ +#PER_DEFINE END + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CFLAGS = $(MCU) -specs=nano.specs $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 +endif + +CFLAGS += -std=c99 +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" +# perinclude +ifneq ($(PER_INCLUDE), ) +CFLAGS +=$(PER_INCLUDE) +endif +ifneq ($(PER_DEFINE), ) +CFLAGS +=$(PER_DEFINE) +endif +####################################### +# LDFLAGS +####################################### +# link script +ifeq ($(ENCRYPTION),0) + LDSCRIPT = app.ld +else + LDSCRIPT = app-ENCRYPTION.ld +endif + + +LIBS = -lc -lm -lnosys +# libraries + +LIBDIR = \ +../../../../bin/gcc/rom_symbol_gcc.axf \ +../../../../bin/gcc/gap_utils.a \ +../../../../bin/gcc/adc.a \ +../../../../bin/gcc/ima_adpcm_lib.a \ +../../../../bin/gcc/bee3_sdk.a \ +# lib_end + +LDFLAGS = $(MCU) -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections -specs=nano.specs + +# default action: build all +.PHONY : all +all:mem_define.ld $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex + -mkdir bin + ../../../../tool/hex2bin/Hex2Bin build/$(TARGET).hex bin/$(TARGET).bin + ../../../../tool/prepend_header/prepend_header -t app_code -p bin/$(TARGET).bin -m 1 -i ../mp.ini -c sha256 -a ../../../../tool/key.json + ../../../../tool/md5/md5 bin/$(TARGET)_MP.bin + $(OD) -D -S build/$(TARGET).elf > bin/$(TARGET).dis +# $(CC) -o all $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin +mem_define.ld : + ../../../../tool/memory_icf/MemDefine ../ gcc ./ + +####################################### +# build the application +####################################### +# list of objects +OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) +#vpath %.c $(sort $(dir $(C_SOURCES))) +vpath %.c $(dir $(C_SOURCES)) +# list of ASM program objects +OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) +vpath %.s $(sort $(dir $(ASM_SOURCES))) +$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) + $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ + +$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) + $(AS) -c $(CFLAGS) $< -o $@ + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + $(CC) $(OBJECTS) $(LDFLAGS) -o $@ + $(SZ) $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(HEX) $< $@ + +$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) + $(BIN) $< $@ + +$(BUILD_DIR): + mkdir $@ + +####################################### +# clean up +####################################### +clean: + -rm -fR $(BUILD_DIR) + -rm -fR $(BIN_DIR) + -rm mem_define.ld +####################################### +# dependencies +####################################### +-include $(wildcard $(BUILD_DIR)/*.d) + +# *** EOF ***
\ No newline at end of file diff --git a/board/evb/google_rcu/gcc/app.ld b/board/evb/google_rcu/gcc/app.ld new file mode 100644 index 0000000..132b25e --- /dev/null +++ b/board/evb/google_rcu/gcc/app.ld @@ -0,0 +1,105 @@ +/* Entry Point */ +ENTRY(Reset_Handler) +INPUT(mem_define.ld) + +MEMORY +{ +APP_DATA_ON (rwx) : ORIGIN = 0x00207C00, LENGTH = APP_GLOBAL_SIZE +HEAP_DATA_ON (rwx) : ORIGIN = (0x00207C00 + APP_GLOBAL_SIZE) , LENGTH = (65*1024) - APP_GLOBAL_SIZE +CACHE_DATA_ON (rwx) : ORIGIN = 0x0021C000, LENGTH = SHARE_CACHE_RAM_SIZE +APP_FLASH (r) : ORIGIN = APP_ADDR, LENGTH = APP_SIZE +APP_TRACE (r): ORIGIN = 0x08800000, LENGTH = 4096k +} + +/* Define output sections */ +SECTIONS +{ + . = APP_ADDR; + app.bin APP_ADDR : + { + KEEP(* (.app.flash.header)) + KEEP(* (.app.flash.header.auth)) + }AT > APP_FLASH + APP_FLASH_HEADER_EXT : + { + KEEP(* (.app.flash.header_ext)) + }AT > APP_FLASH + + FLASH_START_ADDR : + { + build/startup_rtl876x_gcc.o(RESET) + . = ALIGN(4); + __flash_start_load_ad__ = LOADADDR(FLASH_START_ADDR); + __flash_start_exe_ad__ = ADDR(FLASH_START_ADDR); + }AT > APP_FLASH + + FLASH_TEXT : + { + *(.text*) + . = ALIGN(4); + *(.rodata*) + . = ALIGN(4); + *(.app.flash.text) + *(.app.flash.rodata) + }AT > APP_FLASH + RAM_VECTOR_TABLE 0x00200000: + { + __ram_vector_table_start__ = .; + KEEP(*(VECTOR)) + __ram_vector_table_end__ = .; + }AT > APP_FLASH + __ram_vector_load_ad__ = LOADADDR(RAM_VECTOR_TABLE); + __ram_vector_table_length__ = __ram_vector_table_end__ - __ram_vector_table_start__; + RAM_DATA_ON : + { + __ram_dataon_ro_start__ = .; + * (.app.data_ram.text) + . = ALIGN(4); + __ram_dataon_ro_end__ = .; + __ram_dataon_rw_start__ = .; + *(.data*) + * (.ram.dataon.data) + __ram_dataon_rw_end__ = .; + . = ALIGN(4); + } > APP_DATA_ON AT > APP_FLASH + BSS (NOLOAD): + { + . = ALIGN(4); + __ram_dataon_zi_start__ = .; + * (.ram.dataon.bss*) + *(.bss*) + *(COMMON) + . = ALIGN(4); + __ram_dataon_zi_end__ = .; + } > APP_DATA_ON AT > APP_FLASH + __ram_ro_load_ad__ = LOADADDR(RAM_DATA_ON); + __ram_dataon_ro_length__ = __ram_dataon_ro_end__ - __ram_dataon_ro_start__; + __ram_dataon_rw_length__ = __ram_dataon_rw_end__ - __ram_dataon_rw_start__; + __ram_dataon_zi_length__ = __ram_dataon_zi_end__ - __ram_dataon_zi_start__; + __ram_rw_load_ad__ = LOADADDR(RAM_DATA_ON)+__ram_dataon_ro_length__; + HEAP_DATA_ON : + { + __heap_start__ = .; + end = __heap_start__; + _end = end; + __end = end; + KEEP(*(.heap)) + __heap_end__ = .; + __HeapLimit = __heap_end__; + } > HEAP_DATA_ON AT > APP_FLASH + + CACHE_DATA_ON (OVERLAY): + { + __cache_dataon_start__ = . ; + *(.ram.sharecacheram.text) + __cache_dataon_end__ = .; + }>CACHE_DATA_ON AT> APP_FLASH + __cache_dataon_length__ = __cache_dataon_end__ - __cache_dataon_start__; + __cache_data_load_ad__ = LOADADDR(RAM_DATA_ON); + App.trace 0x08800000: + { + *(.TRACE*) + }>APP_TRACE + +} + diff --git a/board/evb/google_rcu/gcc/mem_define.ld b/board/evb/google_rcu/gcc/mem_define.ld new file mode 100644 index 0000000..855f6be --- /dev/null +++ b/board/evb/google_rcu/gcc/mem_define.ld @@ -0,0 +1,6 @@ +APP_ADDR = 0x832000;
+APP_SIZE = 0x19000;
+APP_GLOBAL_SIZE = 0x5000;
+APP_GLOBAL_ADDR = 0x207c00;
+UPPERSTACK_GLOBAL_SIZE = 0x800;
+SHARE_CACHE_RAM_SIZE = 0x0;
|