rtconfig.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import os
  2. # toolchains options
  3. ARCH = 'arm'
  4. CPU = 'cortex-a'
  5. # toolchains options
  6. CROSS_TOOL = 'gcc'
  7. if os.getenv('RTT_CC'):
  8. CROSS_TOOL = os.getenv('RTT_CC')
  9. if os.getenv('RTT_ROOT'):
  10. RTT_ROOT = os.getenv('RTT_ROOT')
  11. # cross_tool provides the cross compiler
  12. # EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
  13. if CROSS_TOOL == 'gcc':
  14. PLATFORM = 'gcc'
  15. EXEC_PATH = r'C:\Program Files (x86)\GNU Tools ARM Embedded\6 2017-q1-update\bin'
  16. if os.getenv('RTT_EXEC_PATH'):
  17. EXEC_PATH = os.getenv('RTT_EXEC_PATH')
  18. #BUILD = 'debug'
  19. BUILD = ''
  20. MAP_FILE = 'rtthread_ma35d1.map'
  21. LINK_FILE = 'linking_scripts/aarch32'
  22. TARGET_NAME = 'rtthread.bin'
  23. #------- GCC settings ----------------------------------------------------------
  24. if PLATFORM == 'gcc':
  25. # toolchains
  26. PREFIX = 'arm-none-eabi-'
  27. CC = PREFIX + 'gcc'
  28. AS = PREFIX + 'gcc'
  29. AR = PREFIX + 'ar'
  30. CXX = PREFIX + 'g++'
  31. LINK = PREFIX + 'gcc'
  32. TARGET_EXT = 'elf'
  33. SIZE = PREFIX + 'size'
  34. OBJDUMP = PREFIX + 'objdump'
  35. OBJCPY = PREFIX + 'objcopy'
  36. STRIP = PREFIX + 'strip'
  37. DEVICE = ' -march=armv8-a -mfpu=neon-vfpv4 -ftree-vectorize -ffast-math -msoft-float'
  38. CFLAGS = DEVICE + ' -Wall -fno-zero-initialized-in-bss '
  39. AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -D__ASSEMBLY__'
  40. LFLAGS = DEVICE + ' -nostartfiles -Wl,--gc-sections,-cref,-Map=' + MAP_FILE + ',-cref,-u,system_vectors' + ' -T ' + LINK_FILE + '.ld'
  41. CXXFLAGS = ' -march=armv8-a -mfpu=neon-vfpv4 -std=c++11 '
  42. M_CFLAGS = CFLAGS + ' -mlong-calls -fPIC '
  43. M_CXXFLAGS = CXXFLAGS + ' -mlong-calls -fPIC'
  44. M_LFLAGS = DEVICE + CXXFLAGS + ' -Wl,--gc-sections,-z,max-page-size=0x4' +\
  45. ' -shared -fPIC -nostartfiles -nostdlib -static-libgcc'
  46. M_POST_ACTION = STRIP + ' -R .hash $TARGET\n' + SIZE + ' $TARGET \n'
  47. #M_BIN_PATH = r'z:\fatdisk\root'
  48. CPATH = ''
  49. LPATH = ''
  50. if BUILD == 'debug':
  51. CFLAGS += ' -O0 -gdwarf-2 -g'
  52. AFLAGS += ' -gdwarf-2'
  53. else:
  54. CFLAGS += ' -O2'
  55. CXXFLAGS = CFLAGS
  56. POST_ACTION = OBJCPY + ' -O binary $TARGET ' + TARGET_NAME + '\n'
  57. POST_ACTION += SIZE + ' $TARGET\n'
  58. def dist_handle(BSP_ROOT, dist_dir):
  59. import sys
  60. cwd_path = os.getcwd()
  61. sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools'))
  62. from sdk_dist import dist_do_building
  63. dist_do_building(BSP_ROOT, dist_dir)