forked from Air-duino/Arduino-AirMCU
-
Notifications
You must be signed in to change notification settings - Fork 0
/
platform.txt
217 lines (171 loc) · 10.5 KB
/
platform.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
name=Air MCU
version=0.6.3
## compiler variables 编译器的路径
compiler.path={runtime.tools.xpack-arm-none-eabi-gcc.path}/bin/
##All the command 编译各种文件的命令
compiler.S.cmd=arm-none-eabi-gcc
compiler.c.cmd=arm-none-eabi-gcc
compiler.cpp.cmd=arm-none-eabi-g++
compiler.ar.cmd=arm-none-eabi-ar
compiler.elf.cmd=arm-none-eabi-g++
compiler.c.elf.cmd=arm-none-eabi-g++
compiler.objcopy.cmd=arm-none-eabi-objcopy
compiler.elf2hex.cmd=arm-none-eabi-objcopy
compiler.libraries.ldflags=
# 需要额外引入的头文件的路径
compiler.air.extra_include="-I{build.source.path}" "-I{build.core.path}/avr" "-I{build.core.path}/air" "-I{build.core.path}/air/LL" "-I{build.core.path}/air/usb" "-I{build.core.path}/air/usb/hid" "-I{build.core.path}/air/usb/cdc" {build.virtio_extra_include} {build.drivers_include}
# 编译器警告的参数
compiler.warning_flags=-w
compiler.warning_flags.none=-w
compiler.warning_flags.default=
compiler.warning_flags.more=-Wall
compiler.warning_flags.all=-Wall -Wextra
compiler.extra_flags=-mcpu={build.mcu} {build.fpu} {build.float-abi} -DUSE_FULL_LL_DRIVER -mthumb "@{build.opt.path}"
# 汇编编译器参数
compiler.S.flags={compiler.extra_flags} -c -x assembler-with-cpp {compiler.air.extra_include}
compiler.c.flags={compiler.extra_flags} -c {build.flags.optimize} {build.flags.debug} {compiler.warning_flags} -std={compiler.c.std} -fsingle-precision-constant -ffunction-sections -fdata-sections --param max-inline-insns-single=500 -MMD {compiler.air.extra_include}
compiler.cpp.flags={compiler.extra_flags} -c {build.flags.optimize} {build.flags.debug} {compiler.warning_flags} -std={compiler.cpp.std} -fsingle-precision-constant -ffunction-sections -fdata-sections -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -MMD {compiler.air.extra_include}
compiler.ar.flags=rcs
compiler.c.elf.flags=-mcpu={build.mcu} {build.fpu} {build.float-abi} -mthumb {build.flags.optimize} {build.flags.debug} {build.flags.ldspecs} -Wl,--defsym=LD_FLASH_OFFSET={build.flash_offset} -Wl,--defsym=LD_MAX_SIZE={upload.maximum_size} -Wl,--defsym=LD_MAX_DATA_SIZE={upload.maximum_data_size} -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
compiler.elf2bin.flags=-O binary
compiler.elf2hex.flags=-O ihex
# 编译器的链接参数compiler.ldflags
## 消除链接时候的`LOAD segment with RWX permissions`警告
compiler.ldflags=-Wl,--no-warn-rwx-segments
compiler.size.cmd=arm-none-eabi-size
compiler.define=-DARDUINO=
# These can be overridden in boards.txt 在board.txt中选择的参数会覆盖下面这些
build.board=
build.air_extra_flags=
build.extra_flags=
build.bootloader_flags=
build.ldscript=ldscript.ld
build.variant_h=variant_generic.h
# These can be overridden in platform.local.txt 在platform.local.txt中选择的参数会覆盖下面这些
compiler.c.air_extra_flags={build.peripheral_pins}
compiler.c.extra_flags=
compiler.c.std=gnu17
compiler.c.elf.extra_flags=
compiler.cpp.extra_flags=
compiler.cpp.std=gnu++17
compiler.S.air_extra_flags={build.startup_file}
compiler.S.extra_flags=
compiler.ar.extra_flags=
compiler.elf2bin.extra_flags=
compiler.elf2hex.extra_flags=
compiler.arm.cmsis.c.flags="-I{runtime.tools.CMSIS-5.7.0.path}/CMSIS/Core/Include/" "-I{runtime.tools.CMSIS-5.7.0.path}/CMSIS/DSP/Include" "-I{runtime.tools.CMSIS-5.7.0.path}/CMSIS/DSP/PrivateInclude"
compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.7.0.path}/CMSIS/DSP/Lib/GCC/" -l{build.cmsis_lib_gcc}
# USB Flags USB相关内容,暂时先不写,也许以后有了再说
# ---------
build.usb_flags=-DUSBCON {build.usb_speed} -DUSBD_VID={build.vid} -DUSBD_PID={build.pid} -DHAL_PCD_MODULE_ENABLED
# Specify defaults for vid/pid, since an empty value is impossible to
# detect in the preprocessor, but a 0 can be checked for.
# Boards should specify either both, or neither of these.
build.vid=0
build.pid=0
# To customize the USB manufacturer or product string, must add defines
# for them, e.g.:
# some_board.build.extra_flags='-DUSB_MANUFACTURER_STRING="My Company"' '-DUSB_PRODUCT_STRING="My Product"'
# This cannot be done using build variables and specifying the -D
# options here, since then the default would be a defined, but empty macro
# that the preprocessor cannot detect.
# VirtIO RPMsg Serial Flags
# build.virtio_flags=-DVIRTIOCON -DNO_ATOMIC_64_SUPPORT -DMETAL_INTERNAL -DMETAL_MAX_DEVICE_REGIONS=2 -DVIRTIO_SLAVE_ONLY -DVIRTIO_LOG
# build.virtio_extra_include="-I{build.system.path}/Middlewares/OpenAMP" "-I{build.system.path}/Middlewares/OpenAMP/open-amp/lib/include" "-I{build.system.path}/Middlewares/OpenAMP/libmetal/lib/include" "-I{build.system.path}/Middlewares/OpenAMP/virtual_driver"
build.virtio_extra_include=""
# Build information's 编译的时候打印的日志信息
build.info.flags=-D{build.series} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DBOARD_NAME="{build.board}" -DVARIANT_H="{build.variant_h}"
# Defaults config 默认的配置
build.xSerial=-DHAL_UART_MODULE_ENABLED
build.enable_usb=
build.usb_speed=
build.enable_virtio=
build.peripheral_pins=
build.startup_file=
build.fpu=
build.float-abi=
build.flags.optimize=-Os
build.flags.debug=-DNDEBUG
build.flags.ldspecs=--specs=nano.specs
build.flash_offset=0
# Pre and post build hooks
build.opt.name=build.opt
build.opt.path={build.path}/sketch/{build.opt.name}
extras.path={build.system.path}
# Create {build.opt} if not exists in the output sketch dir and force include of SrcWrapper library
recipe.hooks.prebuild.1.pattern=bash "{extras.path}/extras/prebuild.sh" "{build.path}" "{build.source.path}" "{runtime.platform.path}"
recipe.hooks.prebuild.1.pattern.windows="{extras.path}\extras\prebuild.bat" "{build.path}" "{build.source.path}" "{runtime.platform.path}"
# compile patterns
# ---------------------
## Compile c files
recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} {build.info.flags} {compiler.c.air_extra_flags} {compiler.c.extra_flags} {build.air_extra_flags} {build.extra_flags} {compiler.arm.cmsis.c.flags} {includes} "{source_file}" -o "{object_file}"
## Compile c++ files
recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {build.info.flags} {compiler.cpp.extra_flags} {build.air_extra_flags} {build.extra_flags} {compiler.arm.cmsis.c.flags} {includes} "{source_file}" -o "{object_file}"
## Compile S files
recipe.S.o.pattern="{compiler.path}{compiler.S.cmd}" {compiler.S.flags} {build.info.flags} {compiler.S.air_extra_flags} {compiler.S.extra_flags} {build.air_extra_flags} {build.extra_flags} {compiler.arm.cmsis.c.flags} {includes} "{source_file}" -o "{object_file}"
## Create archives
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}"
## Combine gc-sections, archives, and objects
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} "-Wl,--default-script={build.variant.path}/{build.ldscript}" "-Wl,--script={build.system.path}/ldscript.ld" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} {compiler.ldflags} {compiler.arm.cmsis.ldflags} -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -Wl,--start-group {object_files} {compiler.libraries.ldflags} "{archive_file_path}" -lc -Wl,--end-group -lm -lgcc -lstdc++
## Create output (.bin file)
recipe.objcopy.bin.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.elf2bin.flags} {compiler.elf2bin.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.bin"
## Create output (.hex file)
recipe.objcopy.hex.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex"
build.preferred_out_format=bin
## Save binary
recipe.output.tmp_file={build.project_name}.{build.preferred_out_format}
recipe.output.save_file={build.project_name}.{build.board}.{build.preferred_out_format}
## Compute size
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
recipe.size.regex=^(?:\.text|\.data|\.rodata)\s+([0-9]+).*
recipe.size.regex.data=^(?:\.data|\.bss|\.noinit)\s+([0-9]+).*
recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).*
# Uploader tool
# -------------------
##
## AirISP
##
tools.AirISP.path={runtime.tools.AirISP.path}
tools.AirISP.cmd=AirISP-next
tools.AirISP.cmd.windows=AirISP-next.exe
## Upload Sketch
## -------------
tools.AirISP.upload.protocol=serial
tools.AirISP.upload.params.verbose=
tools.AirISP.upload.params.quiet=
tools.AirISP.upload.pattern_args=--chip "auto" --port "{serial.port}" --baud {upload.speed} --before {upload.boot} --after hard_reset write_flash -e 0x08000000 "{build.path}/{build.project_name}.hex"
tools.AirISP.upload.pattern="{path}/{cmd}" {upload.pattern_args}
## Program Application
## -------------------
tools.AirISP.program.params.verbose=
tools.AirISP.program.params.quiet=
tools.AirISP.program.pattern_args=--chip "auto" --port "{serial.port}" --baud {upload.speed} --before {upload.boot} --after hard_reset write_flash -e 0x08000000 "{build.path}/{build.project_name}.hex"
tools.AirISP.program.pattern="{path}/{cmd}" {program.pattern_args}
## Erase Chip (before burning the bootloader)
## ------------------------------------------
tools.AirISP.erase.protocol=serial
tools.AirISP.erase.params.verbose=
tools.AirISP.erase.params.quiet=
tools.AirISP.erase.pattern_args=---chip "auto" --port "{serial.port}" --baud {upload.speed} --before {upload.boot} --after hard_reset erase_flash
tools.AirISP.erase.pattern="{path}/{cmd}" {erase.pattern_args}
## Burn Bootloader
## ---------------
tools.AirISP.bootloader.protocol=serial
tools.AirISP.bootloader.params.verbose=
tools.AirISP.bootloader.params.quiet=
tools.AirISP.bootloader.pattern=
# Debugger configuration (general options)
# ----------------------------------------
# EXPERIMENTAL feature:
# - this is alpha and may be subject to change without notice
# debug.executable={build.path}/{build.project_name}.elf
# debug.toolchain=gcc
# debug.toolchain.path={compiler.path}
# debug.toolchain.prefix=arm-none-eabi-
# debug.server=pyocd
# debug.server.pyocd.path=
# debug.server.pyocd.scripts_dir=
# debug.server.pyocd.script=
# debug.server.pyocd.cmsisPack="D:\\GitHub\\luatos-soc-air001\\PACK\\Keil.AIR001_DFP.1.1.0.pack"
# debug.server.pyocd.targetId="Air001Dev"