rtconfig.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import os
  2. import rtconfig
  3. # toolchains options
  4. ARCH='arm'
  5. CPU='cortex-a'
  6. CROSS_TOOL='gcc'
  7. if os.getenv('RTT_ROOT'):
  8. RTT_ROOT = os.getenv('RTT_ROOT')
  9. else:
  10. RTT_ROOT = r'../../..'
  11. if os.getenv('RTT_CC'):
  12. CROSS_TOOL = os.getenv('RTT_CC')
  13. # only support GNU GCC compiler.
  14. PLATFORM = 'gcc'
  15. EXEC_PATH = r'/usr/lib/arm-none-eabi/bin'
  16. if os.getenv('AARCH32_CROSS_PATH'):
  17. EXEC_PATH = os.getenv('AARCH32_CROSS_PATH')
  18. print('EXEC_PATH = {}'.format(EXEC_PATH))
  19. else:
  20. print('AARCH32_CROSS_PATH not found')
  21. BUILD = 'debug'
  22. LIBPATH = EXEC_PATH + r'/../lib'
  23. if PLATFORM == 'gcc':
  24. # toolchains
  25. PREFIX = 'arm-none-eabi-'
  26. CC = PREFIX + 'gcc'
  27. CXX = PREFIX + 'g++'
  28. AS = PREFIX + 'gcc'
  29. AR = PREFIX + 'ar'
  30. LINK = PREFIX + 'gcc'
  31. TARGET_EXT = 'elf'
  32. SIZE = PREFIX + 'size'
  33. OBJDUMP = PREFIX + 'objdump'
  34. OBJCPY = PREFIX + 'objcopy'
  35. STRIP = PREFIX + 'strip'
  36. DEVICE = ' -g -DGUEST -ffreestanding -Wextra -g -mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp -march=armv8-a -fdiagnostics-color=always'
  37. # CFLAGS = DEVICE + ' -Wall'
  38. CFLAGS = DEVICE
  39. AFLAGS = ' -c'+ DEVICE + ' -fsingle-precision-constant -fno-builtin -x assembler-with-cpp -D__ASSEMBLY__'
  40. LINK_SCRIPT = 'link.lds'
  41. LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread_a32.map,-cref,-u,system_vectors'+\
  42. ' -T %s' % LINK_SCRIPT
  43. CPATH = ''
  44. LPATH = LIBPATH
  45. # generate debug info in all cases
  46. AFLAGS += ' -gdwarf-2'
  47. CFLAGS += ' -g -gdwarf-2'
  48. if BUILD == 'debug':
  49. CFLAGS += ' -O0'
  50. else:
  51. CFLAGS += ' -O2'
  52. CXXFLAGS = CFLAGS
  53. POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread_a32.bin\n' +\
  54. SIZE + ' $TARGET \n'