123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- import os
- import sys
- import re
- # toolchains options
- ARCH = 'arm'
- CPU = 'armv6'
- OUTPUT_NAME = 'rtthread'
- CROSS_TOOL = 'gcc' # we use gcc compiler always
- PLATFORM = 'gcc'
- LD_NAME = 'link'
- EXEC_PATH = r'C:\gcc-arm-none-eabi-4_9\bin'
- if os.getenv('RTT_EXEC_PATH'):
- EXEC_PATH = os.getenv('RTT_EXEC_PATH')
- BUILD = 'release'
- CODEC = '7102C'
- #develop mode select: develop/release
- DEVMODE = 'release'
- '''
- CODEC = '7102C'
- BOARD = 'GK7102C_EVB'
- #sc1135 jxh65 sc1145 ov9750 ar0130 jxh42
- SENSOR = 'sc1135'
- TUNNING_TOOL_SUPPORT = 'YES' ##'YES'
- #develop mode select: develop/release
- DEVMODE = 'release'
- '''
- if CODEC == '7101':
- CODEC_TYPE = '710X'
- MEMORY_BYTES_DDR0 = '0x08000000'
- MEMORY_PPM_BASE = '0xC0000000'
- MEMORY_PPM_SIZE = '0x00200000'
- MEMORY_OS_BASE = '0xC0200000'
- MEMORY_OS_SIZE = '0x02300000'
- MEMORY_BSB_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16))
- MEMORY_BSB_SIZE = '0x00400000'
- MEMORY_DSP_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16) + int(MEMORY_BSB_SIZE,16))
- MEMORY_DSP_SIZE = str(int(MEMORY_BYTES_DDR0,16) - int(MEMORY_BSB_SIZE,16) - int(MEMORY_OS_SIZE,16) - int(MEMORY_PPM_SIZE,16))
- if CODEC == '7102':
- CODEC_TYPE = '710X'
- MEMORY_BYTES_DDR0 = '0x04000000'
- MEMORY_PPM_BASE = '0xC0000000'
- MEMORY_PPM_SIZE = '0x00200000'
- MEMORY_OS_BASE = '0xC0200000'
- MEMORY_OS_SIZE = '0x02300000'
- MEMORY_BSB_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16))
- MEMORY_BSB_SIZE = '0x00200000'
- MEMORY_DSP_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16) + int(MEMORY_BSB_SIZE,16))
- MEMORY_DSP_SIZE = str(int(MEMORY_BYTES_DDR0,16) - int(MEMORY_BSB_SIZE,16) - int(MEMORY_OS_SIZE,16) - int(MEMORY_PPM_SIZE,16))
-
- if CODEC == '7101S':
- CODEC_TYPE = '710XS'
- MEMORY_BYTES_DDR0 = '0x08000000'
- MEMORY_PPM_BASE = '0xC0000000'
- MEMORY_PPM_SIZE = '0x00200000'
- MEMORY_OS_BASE = '0xC0200000'
- MEMORY_OS_SIZE = '0x02300000'
- MEMORY_BSB_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16))
- MEMORY_BSB_SIZE = '0x00400000'
- MEMORY_DSP_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16) + int(MEMORY_BSB_SIZE,16))
- MEMORY_DSP_SIZE = str(int(MEMORY_BYTES_DDR0,16) - int(MEMORY_BSB_SIZE,16) - int(MEMORY_OS_SIZE,16) - int(MEMORY_PPM_SIZE,16))
- if CODEC == '7102S':
- CODEC_TYPE = '710XS'
- MEMORY_BYTES_DDR0 = '0x04000000'
- MEMORY_PPM_BASE = '0xC0000000'
- MEMORY_PPM_SIZE = '0x00200000'
- MEMORY_OS_BASE = '0xC0200000'
- MEMORY_OS_SIZE = '0x02300000'
- MEMORY_BSB_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16))
- MEMORY_BSB_SIZE = '0x00200000'
- MEMORY_DSP_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16) + int(MEMORY_BSB_SIZE,16))
- MEMORY_DSP_SIZE = str(int(MEMORY_BYTES_DDR0,16) - int(MEMORY_BSB_SIZE,16) - int(MEMORY_OS_SIZE,16) - int(MEMORY_PPM_SIZE,16))
-
- if CODEC == '7102C':
- CODEC_TYPE = '7102C'
- CODEC_SUB_TYPE = '7102C'
- MEMORY_BYTES_DDR0 = '0x04000000'
- MEMORY_PPM_BASE = '0xC0000000'
- MEMORY_PPM_SIZE = '0x00200000'
- MEMORY_OS_BASE = '0xC0200000'
- MEMORY_OS_SIZE = '0x02200000'
- MEMORY_BSB_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16))
- MEMORY_BSB_SIZE = '0x00200000'
- MEMORY_DSP_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16) + int(MEMORY_BSB_SIZE,16))
- MEMORY_DSP_SIZE = str(int(MEMORY_BYTES_DDR0,16) - int(MEMORY_BSB_SIZE,16) - int(MEMORY_OS_SIZE,16) - int(MEMORY_PPM_SIZE,16))
- PROGRAM_MEMORY_START = '0xC0000000'
- PROGRAM_MEMORY_BYTES = MEMORY_BYTES_DDR0
- PROGRAM_STACK_BYTES = '0x00010000'
- PROGRAM_HEAP_BYTES = '0x00010000'
- PROGRAM_LOAD_ADDRESS = '0xC0200000'
- MEMORY_BYTES_DDR1 = '0x00000000'
- MEMORY_OFFSET_VIDEO = '0x00000000'
- MEMORY_START_BEP = '0x40000000'
- MEMORY_BYTES_BEP = '0x00040000'
- USE_IPC = '0'
- MEMORY_START_IPC = '0x00000000'
- MEMORY_BYTES_IPC = '0x00000000'
- MEMORY_HEAP2_END = '0xC4000000'
- ARM_PROGRAM_HEAP2_BYTES = '0x1c00000'
- DDR_MEMORY_START_1 = '0xC0000000'
- DDR_MEMORY_BYTES_1 = MEMORY_BYTES_DDR0
- if PLATFORM == 'gcc':
- # toolchains
- PREFIX = 'arm-none-eabi-'
- CC = PREFIX + 'gcc'
- CXX = PREFIX + 'g++'
- AS = PREFIX + 'gcc'
- AR = PREFIX + 'ar'
- LINK = PREFIX + 'gcc'
- TARGET_EXT = '.elf'
- SIZE = PREFIX + 'size'
- OBJDUMP = PREFIX + 'objdump'
- OBJCPY = PREFIX + 'objcopy'
-
- DEVICE = ' -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=soft'
- CFLAGS = DEVICE + ' -mno-unaligned-access'
- #for ADI library
- CFLAGS += ' -DFLASH_USING_SEM'
- CFLAGS += ' -DAUDIO_ECHO_CANCELLATION_SUPPORT'
- #for GD library
- #CFLAGS += ' -DSRC_INLINE'
-
- AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -D__ASSEMBLY__'
- LFLAGS = DEVICE + ' -nostartfiles -Wl,--gc-sections,-Map='+ OUTPUT_NAME +'.map,-cref,-u,_start -T' + LD_NAME +'.ld'
- CPATH = ''
- LPATH = ''
- if BUILD == 'debug':
- CFLAGS += ' -O0 -gdwarf-2 '
- AFLAGS += ' -gdwarf-2'
- else:
- CFLAGS += ' -O2'
- CFLAGS += ' -mabi=aapcs-linux'
- CFLAGS += ' -D_ARM_GNU'
- CFLAGS += ' -D_ARM'
-
- if CODEC == '7101':
- CFLAGS += ' -DCODEC_710X'
- CFLAGS += ' -DGK710X'
- CFLAGS += ' -DGK7101'
- elif CODEC == '7102':
- CFLAGS += ' -DCODEC_710X'
- CFLAGS += ' -DGK710X'
- CFLAGS += ' -DGK7102'
- elif CODEC == '7101S':
- CFLAGS += ' -DCODEC_710XS'
- CFLAGS += ' -DGK7101S'
- AFLAGS += ' -DCPU_USE_GK710XS=' + '1'
- elif CODEC == '7102S':
- CFLAGS += ' -DCODEC_710XS'
- CFLAGS += ' -DGK7102S'
- AFLAGS += ' -DCPU_USE_GK710XS=' + '1'
- elif CODEC == '7102C':
- CFLAGS += ' -DCODEC_710XS'
- CFLAGS += ' -DGK7102C'
- AFLAGS += ' -DCPU_USE_GK710XS=' + '1'
-
- AFLAGS += ' -DARM1176_USE_VFP=' + '1'
- CFLAGS += ' -DUSE_RT_DRIVER_FRAMEWORK'
- #CFLAGS += ' -D%s' %BOARD
- #if BOARD == 'GK7102_HZD_JXH42' or BOARD == 'GK7102S_HZD_JXH42':
- # CFLAGS += ' -DUSE_BOARD_HZD'
-
- #if TUNNING_TOOL_SUPPORT == 'YES':
- # CFLAGS += ' -DMODULE_SUPPORT_TUNING_TOOL'
- LFLAGS += ' -Wl,--defsym,PROGRAM_MEMORY_START='+ PROGRAM_MEMORY_START
- LFLAGS += ' -Wl,--defsym,PROGRAM_MEMORY_BYTES='+ PROGRAM_MEMORY_BYTES
- LFLAGS += ' -Wl,--defsym,PROGRAM_STACK_BYTES=' + PROGRAM_STACK_BYTES
- LFLAGS += ' -Wl,--defsym,PROGRAM_HEAP_BYTES=' + PROGRAM_HEAP_BYTES
- LFLAGS += ' -Wl,--defsym,PROGRAM_LOAD_ADDRESS='+ PROGRAM_LOAD_ADDRESS
- LFLAGS += ' -Wl,--defsym,MEMORY_BYTES_DDR0=' + MEMORY_BYTES_DDR0
- LFLAGS += ' -Wl,--defsym,MEMORY_BYTES_DDR1=' + MEMORY_BYTES_DDR1
- LFLAGS += ' -Wl,--defsym,MEMORY_OFFSET_VIDEO=' + MEMORY_OFFSET_VIDEO
- LFLAGS += ' -Wl,--defsym,MEMORY_START_BEP=' + MEMORY_START_BEP
- LFLAGS += ' -Wl,--defsym,MEMORY_BYTES_BEP=' + MEMORY_BYTES_BEP
- LFLAGS += ' -Wl,--defsym,USE_IPC=' + USE_IPC
- LFLAGS += ' -Wl,--defsym,MEMORY_START_IPC=' + MEMORY_START_IPC
- LFLAGS += ' -Wl,--defsym,MEMORY_BYTES_IPC=' + MEMORY_BYTES_IPC
- LFLAGS += ' -Wl,--defsym,MEMORY_HEAP2_END=' + MEMORY_HEAP2_END
- LFLAGS += ' -Wl,--defsym,ARM_PROGRAM_HEAP2_BYTES='+ ARM_PROGRAM_HEAP2_BYTES
- LFLAGS += ' -Wl,--no-whole-archive'
- LFLAGS += ' -Wl,--discard-locals'
- LFLAGS += ' -Wl,--check-sections'
- LFLAGS += ' -Wl,--cref'
- LFLAGS += ' -Wl,--allow-multiple-definition'
- LFLAGS += ' -static'
- LFLAGS += ' -Wl,--no-enum-size-warning'
- LFLAGS += ' -Wl,--start-group'
- LFLAGS += ' -lc -lgcc -lm -lstdc++ -Wl,--end-group'
-
- LD_group = ' -Wl,--start-group'
- LD_grend = ' -lgnu_c -lc -lgcc -lm -lstdc++ -Wl,--end-group'
- AFLAGS += ' -DDDR_MEMORY_PPM_BASE=' + MEMORY_PPM_BASE
- AFLAGS += ' -DDDR_MEMORY_PPM_SIZE=' + MEMORY_PPM_SIZE
- AFLAGS += ' -DDDR_MEMORY_OS_BASE=' + MEMORY_OS_BASE
- AFLAGS += ' -DDDR_MEMORY_OS_SIZE=' + MEMORY_OS_SIZE
- AFLAGS += ' -DDDR_MEMORY_DSP_BASE=' + MEMORY_DSP_BASE
- AFLAGS += ' -DDDR_MEMORY_DSP_SIZE=' + MEMORY_DSP_SIZE
- AFLAGS += ' -DDDR_MEMORY_BSB_BASE=' + MEMORY_BSB_BASE
- AFLAGS += ' -DDDR_MEMORY_BSB_SIZE=' + MEMORY_BSB_SIZE
- AFLAGS += ' -DDDR_MEMORY_DDR_BASE=' + DDR_MEMORY_START_1
- AFLAGS += ' -DDDR_MEMORY_DDR_SIZE=' + DDR_MEMORY_BYTES_1
- CFLAGS += ' -DDDR_MEMORY_PPM_BASE=' + MEMORY_PPM_BASE
- CFLAGS += ' -DDDR_MEMORY_PPM_SIZE=' + MEMORY_PPM_SIZE
- CFLAGS += ' -DDDR_MEMORY_OS_BASE=' + MEMORY_OS_BASE
- CFLAGS += ' -DDDR_MEMORY_OS_SIZE=' + MEMORY_OS_SIZE
- CFLAGS += ' -DDDR_MEMORY_DSP_BASE=' + MEMORY_DSP_BASE
- CFLAGS += ' -DDDR_MEMORY_DSP_SIZE=' + MEMORY_DSP_SIZE
- CFLAGS += ' -DDDR_MEMORY_BSB_BASE=' + MEMORY_BSB_BASE
- CFLAGS += ' -DDDR_MEMORY_BSB_SIZE=' + MEMORY_BSB_SIZE
- CFLAGS += ' -DDDR_MEMORY_DDR_BASE=' + DDR_MEMORY_START_1
- CFLAGS += ' -DDDR_MEMORY_DDR_SIZE=' + DDR_MEMORY_BYTES_1
-
- CXXFLAGS = CFLAGS
- POST_ACTION = OBJCPY + ' -O binary $TARGET '+ OUTPUT_NAME +'.bin\n' + SIZE + ' $TARGET \n'
|