SConstruct 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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-m33
  20. -mthumb
  21. -march=armv8-m.main+fp+dsp
  22. -mfloat-abi=softfp
  23. -mcmse
  24. -g
  25. -O3
  26. -Wl,--build-id=none
  27. --specs=nosys.specs
  28. -nostartfiles
  29. -Wl,--script=src/rp2350/boot_stage2/boot_stage2.ld
  30. -Wl,-Map=bs2_default.elf.map
  31. '''),
  32. LINKFLAGS=Split('''
  33. -mcpu=cortex-m33
  34. -mthumb
  35. -march=armv8-m.main+fp+dsp
  36. -mfloat-abi=softfp
  37. -mcmse
  38. -g
  39. -O3
  40. --specs=nosys.specs
  41. -nostartfiles
  42. -Wl,--script=src/rp2350/boot_stage2/boot_stage2.ld
  43. '''),
  44. CPPDEFINES = Split('''
  45. LIB_BOOT_STAGE2_HEADERS=1
  46. PICO_32BIT=1
  47. PICO_BUILD=1
  48. PICO_NO_HARDWARE=0
  49. DPICO_ON_DEVICE=1
  50. PICO_RP2350=1
  51. '''),
  52. CPPPATH = Split('''
  53. src/rp2350/boot_stage2/asminclude
  54. src/rp2350/hardware_regs/include
  55. src/rp2_common/hardware_base/include
  56. src/common/pico_base_headers/include
  57. src/boards/include
  58. src/rp2350/pico_platform/include
  59. src/rp2_common/pico_platform_compiler/include
  60. src/rp2_common/pico_platform_panic/include
  61. src/rp2_common/pico_platform_sections/include
  62. src/rp2_common/hardware_dcp/include
  63. src/rp2350/hardware_structs/include
  64. src/rp2_common/hardware_rcp/include
  65. src/boards/include
  66. src/rp2350/boot_stage2/include
  67. src/rp2_common/cmsis/include
  68. ''')
  69. )
  70. env.PrependENVPath('PATH', EXEC_PATH)
  71. env.Program(
  72. 'bs2_default.elf',
  73. ['src/rp2350/boot_stage2/compile_time_choice.S'],
  74. )
  75. env.Command(
  76. 'bs2_default.bin',
  77. 'bs2_default.elf',
  78. env['OBJCPY'] + ' -Obinary bs2_default.elf bs2_default.bin',
  79. )
  80. env.Command(
  81. 'bs2_default_padded_checksummed.S',
  82. 'bs2_default.bin',
  83. 'python3 src/rp2350/boot_stage2/pad_checksum -s 0xffffffff bs2_default.bin bs2_default_padded_checksummed.S',
  84. )