aboutsummaryrefslogtreecommitdiff
path: root/board/evb/google_rcu/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'board/evb/google_rcu/gcc')
-rw-r--r--board/evb/google_rcu/gcc/Makefile293
-rw-r--r--board/evb/google_rcu/gcc/app.ld105
-rw-r--r--board/evb/google_rcu/gcc/mem_define.ld6
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;