1
0

rtconfig.py 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. import os
  2. import sys
  3. import re
  4. # toolchains options
  5. ARCH = 'arm'
  6. CPU = 'armv6'
  7. OUTPUT_NAME = 'rtthread'
  8. CROSS_TOOL = 'gcc' # we use gcc compiler always
  9. PLATFORM = 'gcc'
  10. LD_NAME = 'link'
  11. EXEC_PATH = r'C:\gcc-arm-none-eabi-4_9\bin'
  12. if os.getenv('RTT_EXEC_PATH'):
  13. EXEC_PATH = os.getenv('RTT_EXEC_PATH')
  14. BUILD = 'release'
  15. CODEC = '7102C'
  16. #develop mode select: develop/release
  17. DEVMODE = 'release'
  18. '''
  19. CODEC = '7102C'
  20. BOARD = 'GK7102C_EVB'
  21. #sc1135 jxh65 sc1145 ov9750 ar0130 jxh42
  22. SENSOR = 'sc1135'
  23. TUNNING_TOOL_SUPPORT = 'YES' ##'YES'
  24. #develop mode select: develop/release
  25. DEVMODE = 'release'
  26. '''
  27. if CODEC == '7101':
  28. CODEC_TYPE = '710X'
  29. MEMORY_BYTES_DDR0 = '0x08000000'
  30. MEMORY_PPM_BASE = '0xC0000000'
  31. MEMORY_PPM_SIZE = '0x00200000'
  32. MEMORY_OS_BASE = '0xC0200000'
  33. MEMORY_OS_SIZE = '0x02300000'
  34. MEMORY_BSB_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16))
  35. MEMORY_BSB_SIZE = '0x00400000'
  36. MEMORY_DSP_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16) + int(MEMORY_BSB_SIZE,16))
  37. MEMORY_DSP_SIZE = str(int(MEMORY_BYTES_DDR0,16) - int(MEMORY_BSB_SIZE,16) - int(MEMORY_OS_SIZE,16) - int(MEMORY_PPM_SIZE,16))
  38. if CODEC == '7102':
  39. CODEC_TYPE = '710X'
  40. MEMORY_BYTES_DDR0 = '0x04000000'
  41. MEMORY_PPM_BASE = '0xC0000000'
  42. MEMORY_PPM_SIZE = '0x00200000'
  43. MEMORY_OS_BASE = '0xC0200000'
  44. MEMORY_OS_SIZE = '0x02300000'
  45. MEMORY_BSB_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16))
  46. MEMORY_BSB_SIZE = '0x00200000'
  47. MEMORY_DSP_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16) + int(MEMORY_BSB_SIZE,16))
  48. MEMORY_DSP_SIZE = str(int(MEMORY_BYTES_DDR0,16) - int(MEMORY_BSB_SIZE,16) - int(MEMORY_OS_SIZE,16) - int(MEMORY_PPM_SIZE,16))
  49. if CODEC == '7101S':
  50. CODEC_TYPE = '710XS'
  51. MEMORY_BYTES_DDR0 = '0x08000000'
  52. MEMORY_PPM_BASE = '0xC0000000'
  53. MEMORY_PPM_SIZE = '0x00200000'
  54. MEMORY_OS_BASE = '0xC0200000'
  55. MEMORY_OS_SIZE = '0x02300000'
  56. MEMORY_BSB_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16))
  57. MEMORY_BSB_SIZE = '0x00400000'
  58. MEMORY_DSP_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16) + int(MEMORY_BSB_SIZE,16))
  59. MEMORY_DSP_SIZE = str(int(MEMORY_BYTES_DDR0,16) - int(MEMORY_BSB_SIZE,16) - int(MEMORY_OS_SIZE,16) - int(MEMORY_PPM_SIZE,16))
  60. if CODEC == '7102S':
  61. CODEC_TYPE = '710XS'
  62. MEMORY_BYTES_DDR0 = '0x04000000'
  63. MEMORY_PPM_BASE = '0xC0000000'
  64. MEMORY_PPM_SIZE = '0x00200000'
  65. MEMORY_OS_BASE = '0xC0200000'
  66. MEMORY_OS_SIZE = '0x02300000'
  67. MEMORY_BSB_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16))
  68. MEMORY_BSB_SIZE = '0x00200000'
  69. MEMORY_DSP_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16) + int(MEMORY_BSB_SIZE,16))
  70. MEMORY_DSP_SIZE = str(int(MEMORY_BYTES_DDR0,16) - int(MEMORY_BSB_SIZE,16) - int(MEMORY_OS_SIZE,16) - int(MEMORY_PPM_SIZE,16))
  71. if CODEC == '7102C':
  72. CODEC_TYPE = '7102C'
  73. CODEC_SUB_TYPE = '7102C'
  74. MEMORY_BYTES_DDR0 = '0x04000000'
  75. MEMORY_PPM_BASE = '0xC0000000'
  76. MEMORY_PPM_SIZE = '0x00200000'
  77. MEMORY_OS_BASE = '0xC0200000'
  78. MEMORY_OS_SIZE = '0x02200000'
  79. MEMORY_BSB_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16))
  80. MEMORY_BSB_SIZE = '0x00200000'
  81. MEMORY_DSP_BASE = str(int(MEMORY_OS_BASE,16) + int(MEMORY_OS_SIZE,16) + int(MEMORY_BSB_SIZE,16))
  82. MEMORY_DSP_SIZE = str(int(MEMORY_BYTES_DDR0,16) - int(MEMORY_BSB_SIZE,16) - int(MEMORY_OS_SIZE,16) - int(MEMORY_PPM_SIZE,16))
  83. PROGRAM_MEMORY_START = '0xC0000000'
  84. PROGRAM_MEMORY_BYTES = MEMORY_BYTES_DDR0
  85. PROGRAM_STACK_BYTES = '0x00010000'
  86. PROGRAM_HEAP_BYTES = '0x00010000'
  87. PROGRAM_LOAD_ADDRESS = '0xC0200000'
  88. MEMORY_BYTES_DDR1 = '0x00000000'
  89. MEMORY_OFFSET_VIDEO = '0x00000000'
  90. MEMORY_START_BEP = '0x40000000'
  91. MEMORY_BYTES_BEP = '0x00040000'
  92. USE_IPC = '0'
  93. MEMORY_START_IPC = '0x00000000'
  94. MEMORY_BYTES_IPC = '0x00000000'
  95. MEMORY_HEAP2_END = '0xC4000000'
  96. ARM_PROGRAM_HEAP2_BYTES = '0x1c00000'
  97. DDR_MEMORY_START_1 = '0xC0000000'
  98. DDR_MEMORY_BYTES_1 = MEMORY_BYTES_DDR0
  99. if PLATFORM == 'gcc':
  100. # toolchains
  101. PREFIX = 'arm-none-eabi-'
  102. CC = PREFIX + 'gcc'
  103. CXX = PREFIX + 'g++'
  104. AS = PREFIX + 'gcc'
  105. AR = PREFIX + 'ar'
  106. LINK = PREFIX + 'gcc'
  107. TARGET_EXT = '.elf'
  108. SIZE = PREFIX + 'size'
  109. OBJDUMP = PREFIX + 'objdump'
  110. OBJCPY = PREFIX + 'objcopy'
  111. DEVICE = ' -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=soft'
  112. CFLAGS = DEVICE + ' -mno-unaligned-access'
  113. #for ADI library
  114. CFLAGS += ' -DFLASH_USING_SEM'
  115. CFLAGS += ' -DAUDIO_ECHO_CANCELLATION_SUPPORT'
  116. #for GD library
  117. #CFLAGS += ' -DSRC_INLINE'
  118. AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -D__ASSEMBLY__'
  119. LFLAGS = DEVICE + ' -nostartfiles -Wl,--gc-sections,-Map='+ OUTPUT_NAME +'.map,-cref,-u,_start -T' + LD_NAME +'.ld'
  120. CPATH = ''
  121. LPATH = ''
  122. if BUILD == 'debug':
  123. CFLAGS += ' -O0 -gdwarf-2 '
  124. AFLAGS += ' -gdwarf-2'
  125. else:
  126. CFLAGS += ' -O2'
  127. CFLAGS += ' -mabi=aapcs-linux'
  128. CFLAGS += ' -D_ARM_GNU'
  129. CFLAGS += ' -D_ARM'
  130. if CODEC == '7101':
  131. CFLAGS += ' -DCODEC_710X'
  132. CFLAGS += ' -DGK710X'
  133. CFLAGS += ' -DGK7101'
  134. elif CODEC == '7102':
  135. CFLAGS += ' -DCODEC_710X'
  136. CFLAGS += ' -DGK710X'
  137. CFLAGS += ' -DGK7102'
  138. elif CODEC == '7101S':
  139. CFLAGS += ' -DCODEC_710XS'
  140. CFLAGS += ' -DGK7101S'
  141. AFLAGS += ' -DCPU_USE_GK710XS=' + '1'
  142. elif CODEC == '7102S':
  143. CFLAGS += ' -DCODEC_710XS'
  144. CFLAGS += ' -DGK7102S'
  145. AFLAGS += ' -DCPU_USE_GK710XS=' + '1'
  146. elif CODEC == '7102C':
  147. CFLAGS += ' -DCODEC_710XS'
  148. CFLAGS += ' -DGK7102C'
  149. AFLAGS += ' -DCPU_USE_GK710XS=' + '1'
  150. AFLAGS += ' -DARM1176_USE_VFP=' + '1'
  151. CFLAGS += ' -DUSE_RT_DRIVER_FRAMEWORK'
  152. #CFLAGS += ' -D%s' %BOARD
  153. #if BOARD == 'GK7102_HZD_JXH42' or BOARD == 'GK7102S_HZD_JXH42':
  154. # CFLAGS += ' -DUSE_BOARD_HZD'
  155. #if TUNNING_TOOL_SUPPORT == 'YES':
  156. # CFLAGS += ' -DMODULE_SUPPORT_TUNING_TOOL'
  157. LFLAGS += ' -Wl,--defsym,PROGRAM_MEMORY_START='+ PROGRAM_MEMORY_START
  158. LFLAGS += ' -Wl,--defsym,PROGRAM_MEMORY_BYTES='+ PROGRAM_MEMORY_BYTES
  159. LFLAGS += ' -Wl,--defsym,PROGRAM_STACK_BYTES=' + PROGRAM_STACK_BYTES
  160. LFLAGS += ' -Wl,--defsym,PROGRAM_HEAP_BYTES=' + PROGRAM_HEAP_BYTES
  161. LFLAGS += ' -Wl,--defsym,PROGRAM_LOAD_ADDRESS='+ PROGRAM_LOAD_ADDRESS
  162. LFLAGS += ' -Wl,--defsym,MEMORY_BYTES_DDR0=' + MEMORY_BYTES_DDR0
  163. LFLAGS += ' -Wl,--defsym,MEMORY_BYTES_DDR1=' + MEMORY_BYTES_DDR1
  164. LFLAGS += ' -Wl,--defsym,MEMORY_OFFSET_VIDEO=' + MEMORY_OFFSET_VIDEO
  165. LFLAGS += ' -Wl,--defsym,MEMORY_START_BEP=' + MEMORY_START_BEP
  166. LFLAGS += ' -Wl,--defsym,MEMORY_BYTES_BEP=' + MEMORY_BYTES_BEP
  167. LFLAGS += ' -Wl,--defsym,USE_IPC=' + USE_IPC
  168. LFLAGS += ' -Wl,--defsym,MEMORY_START_IPC=' + MEMORY_START_IPC
  169. LFLAGS += ' -Wl,--defsym,MEMORY_BYTES_IPC=' + MEMORY_BYTES_IPC
  170. LFLAGS += ' -Wl,--defsym,MEMORY_HEAP2_END=' + MEMORY_HEAP2_END
  171. LFLAGS += ' -Wl,--defsym,ARM_PROGRAM_HEAP2_BYTES='+ ARM_PROGRAM_HEAP2_BYTES
  172. LFLAGS += ' -Wl,--no-whole-archive'
  173. LFLAGS += ' -Wl,--discard-locals'
  174. LFLAGS += ' -Wl,--check-sections'
  175. LFLAGS += ' -Wl,--cref'
  176. LFLAGS += ' -Wl,--allow-multiple-definition'
  177. LFLAGS += ' -static'
  178. LFLAGS += ' -Wl,--no-enum-size-warning'
  179. LFLAGS += ' -Wl,--start-group'
  180. LFLAGS += ' -lc -lgcc -lm -lstdc++ -Wl,--end-group'
  181. LD_group = ' -Wl,--start-group'
  182. LD_grend = ' -lgnu_c -lc -lgcc -lm -lstdc++ -Wl,--end-group'
  183. AFLAGS += ' -DDDR_MEMORY_PPM_BASE=' + MEMORY_PPM_BASE
  184. AFLAGS += ' -DDDR_MEMORY_PPM_SIZE=' + MEMORY_PPM_SIZE
  185. AFLAGS += ' -DDDR_MEMORY_OS_BASE=' + MEMORY_OS_BASE
  186. AFLAGS += ' -DDDR_MEMORY_OS_SIZE=' + MEMORY_OS_SIZE
  187. AFLAGS += ' -DDDR_MEMORY_DSP_BASE=' + MEMORY_DSP_BASE
  188. AFLAGS += ' -DDDR_MEMORY_DSP_SIZE=' + MEMORY_DSP_SIZE
  189. AFLAGS += ' -DDDR_MEMORY_BSB_BASE=' + MEMORY_BSB_BASE
  190. AFLAGS += ' -DDDR_MEMORY_BSB_SIZE=' + MEMORY_BSB_SIZE
  191. AFLAGS += ' -DDDR_MEMORY_DDR_BASE=' + DDR_MEMORY_START_1
  192. AFLAGS += ' -DDDR_MEMORY_DDR_SIZE=' + DDR_MEMORY_BYTES_1
  193. CFLAGS += ' -DDDR_MEMORY_PPM_BASE=' + MEMORY_PPM_BASE
  194. CFLAGS += ' -DDDR_MEMORY_PPM_SIZE=' + MEMORY_PPM_SIZE
  195. CFLAGS += ' -DDDR_MEMORY_OS_BASE=' + MEMORY_OS_BASE
  196. CFLAGS += ' -DDDR_MEMORY_OS_SIZE=' + MEMORY_OS_SIZE
  197. CFLAGS += ' -DDDR_MEMORY_DSP_BASE=' + MEMORY_DSP_BASE
  198. CFLAGS += ' -DDDR_MEMORY_DSP_SIZE=' + MEMORY_DSP_SIZE
  199. CFLAGS += ' -DDDR_MEMORY_BSB_BASE=' + MEMORY_BSB_BASE
  200. CFLAGS += ' -DDDR_MEMORY_BSB_SIZE=' + MEMORY_BSB_SIZE
  201. CFLAGS += ' -DDDR_MEMORY_DDR_BASE=' + DDR_MEMORY_START_1
  202. CFLAGS += ' -DDDR_MEMORY_DDR_SIZE=' + DDR_MEMORY_BYTES_1
  203. CXXFLAGS = CFLAGS
  204. POST_ACTION = OBJCPY + ' -O binary $TARGET '+ OUTPUT_NAME +'.bin\n' + SIZE + ' $TARGET \n'