mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-10 14:03:39 +00:00
targets: let specific targets inherit more general targets
This avoids a ton of duplication and makes it easier to change a generic target (for example, the "cortex-m" target) for all boards that use it. Also, by making it possible to inherit properties from a parent target specification, it is easier to support out-of-tree boards that don't have to be updated so often. A target specification for a special-purpose board can simply inherit the specification of a supported chip and override the properites it needs to override (like the programming interface).
This commit is contained in:
+14
-5
@@ -1,9 +1,18 @@
|
||||
{
|
||||
"inherits": ["cortex-m"],
|
||||
"llvm-target": "armv7m-none-eabi",
|
||||
"build-tags": ["bluepill", "stm32f103xx", "stm32", "tinygo.arm", "js", "wasm"],
|
||||
"linker": "arm-none-eabi-gcc",
|
||||
"rtlib": "compiler-rt",
|
||||
"pre-link-args": ["-nostdlib", "-nostartfiles", "-mcpu=cortex-m3", "-mthumb", "-T", "targets/stm32.ld", "-Wl,--gc-sections", "-fno-exceptions", "-fno-unwind-tables", "-ffunction-sections", "-fdata-sections", "-Os", "src/device/stm32/stm32f103xx.s"],
|
||||
"objcopy": "arm-none-eabi-objcopy",
|
||||
"build-tags": ["bluepill", "stm32f103xx", "stm32"],
|
||||
"pre-link-args": [
|
||||
"-nostdlib",
|
||||
"-nostartfiles",
|
||||
"-mcpu=cortex-m3",
|
||||
"-mthumb",
|
||||
"-T", "targets/stm32.ld",
|
||||
"-Wl,--gc-sections",
|
||||
"-fno-exceptions", "-fno-unwind-tables",
|
||||
"-ffunction-sections", "-fdata-sections",
|
||||
"-Os",
|
||||
"src/device/stm32/stm32f103xx.s"
|
||||
],
|
||||
"flash": "openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c 'program {hex} reset exit'"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"build-tags": ["tinygo.arm", "js", "wasm"],
|
||||
"linker": "arm-none-eabi-gcc",
|
||||
"rtlib": "compiler-rt",
|
||||
"objcopy": "arm-none-eabi-objcopy",
|
||||
"gdb": "arm-none-eabi-gdb"
|
||||
}
|
||||
+2
-21
@@ -1,26 +1,7 @@
|
||||
{
|
||||
"llvm-target": "armv6m-none-eabi",
|
||||
"build-tags": ["microbit", "nrf51822", "nrf51", "nrf", "tinygo.arm", "js", "wasm"],
|
||||
"linker": "arm-none-eabi-gcc",
|
||||
"rtlib": "compiler-rt",
|
||||
"pre-link-args": [
|
||||
"-nostdlib",
|
||||
"-nostartfiles",
|
||||
"-mcpu=cortex-m0",
|
||||
"-mthumb",
|
||||
"-T", "targets/nrf51.ld",
|
||||
"-Wl,--gc-sections",
|
||||
"-fno-exceptions", "-fno-unwind-tables",
|
||||
"-ffunction-sections", "-fdata-sections",
|
||||
"-Os",
|
||||
"-DNRF51",
|
||||
"-Ilib/CMSIS/CMSIS/Include",
|
||||
"lib/nrfx/mdk/system_nrf51.c",
|
||||
"src/device/nrf/nrf51.s"
|
||||
],
|
||||
"objcopy": "arm-none-eabi-objcopy",
|
||||
"inherits": ["nrf51"],
|
||||
"build-tags": ["microbit"],
|
||||
"flash": "openocd -f interface/cmsis-dap.cfg -f target/nrf51.cfg -c 'program {hex} reset exit'",
|
||||
"ocd-daemon": ["openocd", "-f", "interface/cmsis-dap.cfg", "-f", "target/nrf51.cfg"],
|
||||
"gdb": "arm-none-eabi-gdb",
|
||||
"gdb-initial-cmds": ["target remote :3333", "monitor halt", "load", "monitor reset", "c"]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"inherits": ["cortex-m"],
|
||||
"llvm-target": "armv6m-none-eabi",
|
||||
"build-tags": ["nrf51822", "nrf51", "nrf"],
|
||||
"pre-link-args": [
|
||||
"-nostdlib",
|
||||
"-nostartfiles",
|
||||
"-mcpu=cortex-m0",
|
||||
"-mthumb",
|
||||
"-T", "targets/nrf51.ld",
|
||||
"-Wl,--gc-sections",
|
||||
"-fno-exceptions", "-fno-unwind-tables",
|
||||
"-ffunction-sections", "-fdata-sections",
|
||||
"-Os",
|
||||
"-DNRF51",
|
||||
"-Ilib/CMSIS/CMSIS/Include",
|
||||
"lib/nrfx/mdk/system_nrf51.c",
|
||||
"src/device/nrf/nrf51.s"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"inherits": ["cortex-m"],
|
||||
"llvm-target": "armv7em-none-eabi",
|
||||
"build-tags": ["nrf52", "nrf"],
|
||||
"pre-link-args": [
|
||||
"-nostdlib",
|
||||
"-nostartfiles",
|
||||
"-mcpu=cortex-m4",
|
||||
"-mthumb",
|
||||
"-T", "targets/nrf52.ld",
|
||||
"-Wl,--gc-sections",
|
||||
"-fno-exceptions", "-fno-unwind-tables",
|
||||
"-ffunction-sections", "-fdata-sections",
|
||||
"-Os",
|
||||
"-DNRF52832_XXAA",
|
||||
"-Ilib/CMSIS/CMSIS/Include",
|
||||
"lib/nrfx/mdk/system_nrf52.c",
|
||||
"src/device/nrf/nrf52.s"
|
||||
]
|
||||
}
|
||||
@@ -1,25 +1,7 @@
|
||||
{
|
||||
"llvm-target": "armv7em-none-eabi",
|
||||
"build-tags": ["nrf52840_mdk", "nrf52840", "nrf", "tinygo.arm", "js", "wasm"],
|
||||
"linker": "arm-none-eabi-gcc",
|
||||
"pre-link-args": [
|
||||
"-nostdlib",
|
||||
"-nostartfiles",
|
||||
"-mcpu=cortex-m4",
|
||||
"-mthumb",
|
||||
"-T", "targets/nrf52840.ld",
|
||||
"-Wl,--gc-sections",
|
||||
"-fno-exceptions", "-fno-unwind-tables",
|
||||
"-ffunction-sections", "-fdata-sections",
|
||||
"-Os",
|
||||
"-DNRF52840_XXAA",
|
||||
"-Ilib/CMSIS/CMSIS/Include",
|
||||
"lib/nrfx/mdk/system_nrf52840.c",
|
||||
"src/device/nrf/nrf52840.s"
|
||||
],
|
||||
"objcopy": "arm-none-eabi-objcopy",
|
||||
"inherits": ["nrf52840"],
|
||||
"build-tags": ["nrf52840_mdk"],
|
||||
"flash": "openocd -f interface/cmsis-dap.cfg -f target/nrf51.cfg -c 'program {hex} reset exit'",
|
||||
"ocd-daemon": ["openocd", "-f", "interface/cmsis-dap.cfg", "-f", "target/nrf51.cfg"],
|
||||
"gdb": "arm-none-eabi-gdb",
|
||||
"gdb-initial-cmds": ["target remote :3333", "monitor halt", "load", "monitor reset", "c"]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"inherits": ["cortex-m"],
|
||||
"llvm-target": "armv7em-none-eabi",
|
||||
"build-tags": ["nrf52840", "nrf"],
|
||||
"pre-link-args": [
|
||||
"-nostdlib",
|
||||
"-nostartfiles",
|
||||
"-mcpu=cortex-m4",
|
||||
"-mthumb",
|
||||
"-T", "targets/nrf52840.ld",
|
||||
"-Wl,--gc-sections",
|
||||
"-fno-exceptions", "-fno-unwind-tables",
|
||||
"-ffunction-sections", "-fdata-sections",
|
||||
"-Os",
|
||||
"-DNRF52840_XXAA",
|
||||
"-Ilib/CMSIS/CMSIS/Include",
|
||||
"lib/nrfx/mdk/system_nrf52840.c",
|
||||
"src/device/nrf/nrf52840.s"
|
||||
]
|
||||
}
|
||||
+2
-21
@@ -1,26 +1,7 @@
|
||||
{
|
||||
"llvm-target": "armv7em-none-eabi",
|
||||
"build-tags": ["pca10040", "nrf52832", "nrf52", "nrf", "tinygo.arm", "js", "wasm"],
|
||||
"linker": "arm-none-eabi-gcc",
|
||||
"rtlib": "compiler-rt",
|
||||
"pre-link-args": [
|
||||
"-nostdlib",
|
||||
"-nostartfiles",
|
||||
"-mcpu=cortex-m4",
|
||||
"-mthumb",
|
||||
"-T", "targets/nrf52.ld",
|
||||
"-Wl,--gc-sections",
|
||||
"-fno-exceptions", "-fno-unwind-tables",
|
||||
"-ffunction-sections", "-fdata-sections",
|
||||
"-Os",
|
||||
"-DNRF52832_XXAA",
|
||||
"-Ilib/CMSIS/CMSIS/Include",
|
||||
"lib/nrfx/mdk/system_nrf52.c",
|
||||
"src/device/nrf/nrf52.s"
|
||||
],
|
||||
"objcopy": "arm-none-eabi-objcopy",
|
||||
"inherits": ["nrf52"],
|
||||
"build-tags": ["pca10040"],
|
||||
"flash": "nrfjprog -f nrf52 --sectorerase --program {hex} --reset",
|
||||
"ocd-daemon": ["openocd", "-f", "interface/jlink.cfg", "-c", "transport select swd", "-f", "target/nrf51.cfg"],
|
||||
"gdb": "arm-none-eabi-gdb",
|
||||
"gdb-initial-cmds": ["target remote :3333", "monitor halt", "load", "monitor reset", "c"]
|
||||
}
|
||||
|
||||
+2
-4
@@ -1,8 +1,7 @@
|
||||
{
|
||||
"inherits": ["cortex-m"],
|
||||
"llvm-target": "armv7m-none-eabi",
|
||||
"build-tags": ["qemu", "lm3s6965", "tinygo.arm", "js", "wasm"],
|
||||
"linker": "arm-none-eabi-gcc",
|
||||
"rtlib": "compiler-rt",
|
||||
"build-tags": ["qemu", "lm3s6965"],
|
||||
"pre-link-args": [
|
||||
"-nostdlib",
|
||||
"-nostartfiles",
|
||||
@@ -15,6 +14,5 @@
|
||||
"-Os",
|
||||
"targets/cortex-m.s"
|
||||
],
|
||||
"objcopy": "arm-none-eabi-objcopy",
|
||||
"emulator": ["qemu-system-arm", "-machine", "lm3s6965evb", "-semihosting", "-nographic", "-kernel"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user