Teensy development platform for PlatformIO compatible with GCC10 & C++20
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

_bare_avr.py 1.5KB

3 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # Copyright 2014-present PlatformIO <contact@platformio.org>
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. #
  15. # Default flags for bare-metal programming (without any framework layers)
  16. #
  17. from SCons.Script import DefaultEnvironment
  18. env = DefaultEnvironment()
  19. env.Append(
  20. ASFLAGS=["-x", "assembler-with-cpp"],
  21. CCFLAGS=[
  22. "-Os", # optimize for size
  23. "-Wall", # show warnings
  24. "-ffunction-sections", # place each function in its own section
  25. "-fdata-sections",
  26. "-mmcu=$BOARD_MCU"
  27. ],
  28. CXXFLAGS=[
  29. "-fno-exceptions",
  30. "-felide-constructors",
  31. "-std=gnu++11"
  32. ],
  33. CPPDEFINES=[
  34. ("F_CPU", "$BOARD_F_CPU"),
  35. "LAYOUT_US_ENGLISH"
  36. ],
  37. LINKFLAGS=[
  38. "-Os",
  39. "-Wl,--gc-sections,--relax",
  40. "-mmcu=$BOARD_MCU"
  41. ],
  42. LIBS=["m"]
  43. )
  44. # copy CCFLAGS to ASFLAGS (-x assembler-with-cpp mode)
  45. env.Append(ASFLAGS=env.get("CCFLAGS", [])[:])