SConstruct 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import os
  2. import re
  3. import shutil
  4. PREFIX = 'arm-none-eabi-'
  5. EXEC_PATH = ''
  6. if os.getenv('RTT_EXEC_PATH'):
  7. EXEC_PATH = os.getenv('RTT_EXEC_PATH')
  8. env = Environment(
  9. CC = PREFIX + 'gcc',
  10. AS = PREFIX + 'gcc',
  11. AR = PREFIX + 'ar', ARFLAGS = '-rc',
  12. CXX = PREFIX + 'g++',
  13. LINK = PREFIX + 'gcc',
  14. TARGET_EXT = 'elf',
  15. SIZE = PREFIX + 'size',
  16. OBJDUMP = PREFIX + 'objdump',
  17. OBJCPY = PREFIX + 'objcopy',
  18. CCFLAGS=Split('''
  19. -mcpu=cortex-m0plus
  20. -mthumb
  21. -O3
  22. -DNDEBUG
  23. -Wl,--build-id=none
  24. --specs=nosys.specs
  25. -nostartfiles
  26. -Wl,
  27. -Wl,-Map=bs2_default.elf.map
  28. '''),
  29. LINKFLAGS=Split('''
  30. -mcpu=cortex-m0plus
  31. -mthumb
  32. -O3
  33. -DNDEBUG
  34. --specs=nosys.specs
  35. -nostartfiles
  36. -Tsrc/rp2_common/boot_stage2/boot_stage2.ld
  37. '''),
  38. CPPDEFINES = Split('''
  39. PICO_BOARD=\"pico\"
  40. PICO_BUILD=1
  41. PICO_NO_HARDWARE=0
  42. DPICO_ON_DEVICE=1
  43. '''),
  44. CPPPATH = Split('''
  45. src/rp2_common/boot_stage2/asminclude
  46. src/rp2040/hardware_regs/include
  47. src/rp2_common/hardware_base/include
  48. src/common/pico_base/include
  49. src/boards/include
  50. src/rp2_common/pico_platform/include
  51. src/rp2_common/boot_stage2/include
  52. src/boards/include
  53. ''')
  54. )
  55. env.PrependENVPath('PATH', EXEC_PATH)
  56. env.Command(
  57. ['src/common/pico_base/include/pico/config_autogen.h','src/common/pico_base/include/pico/version.h'],
  58. '',
  59. 'python3 tools/generate_headers.py'
  60. )
  61. env.Program(
  62. 'bs2_default.elf',
  63. ['src/rp2_common/boot_stage2/compile_time_choice.S'],
  64. )
  65. env.Command(
  66. 'bs2_default.bin',
  67. 'bs2_default.elf',
  68. env['OBJCPY'] + ' -Obinary bs2_default.elf bs2_default.bin',
  69. )
  70. env.Command(
  71. 'bs2_default_padded_checksummed.S',
  72. 'bs2_default.bin',
  73. 'python3 src/rp2_common/boot_stage2/pad_checksum -s 0xffffffff bs2_default.bin bs2_default_padded_checksummed.S',
  74. )