forked from Next-Flip/Momentum-Firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fbt_options.py
128 lines (103 loc) · 3.26 KB
/
fbt_options.py
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
from pathlib import Path
import posixpath
import os
# For more details on these options, run 'fbt -h'
FIRMWARE_ORIGIN = "Momentum"
# Default hardware target
TARGET_HW = 7
# Optimization flags
## Optimize for size
COMPACT = 1
## Optimize for debugging experience
DEBUG = 0
# Suffix to add to files when building distribution
# If OS environment has DIST_SUFFIX set, it will be used instead
if not os.environ.get("DIST_SUFFIX"):
# Check scripts/get_env.py to mirror CI naming
def git(*args):
import subprocess
return (
subprocess.check_output(["git", *args], stderr=subprocess.DEVNULL)
.decode()
.strip()
)
try:
# For tags, dist name is just the tag name: mntm-(ver)
DIST_SUFFIX = git("describe", "--tags", "--abbrev=0", "--exact-match")
except Exception:
# If not a tag, dist name is: mntm-(branch)-(commmit)
branch_name = git("rev-parse", "--abbrev-ref", "HEAD").removeprefix("mntm-")
commit_sha = git("rev-parse", "HEAD")[:8]
DIST_SUFFIX = f"mntm-{branch_name}-{commit_sha}"
# Dist name is only for naming of output files
DIST_SUFFIX = DIST_SUFFIX.replace("/", "-")
# Instead, FW version uses tag name (mntm-xxx), or "mntm-dev" if not a tag (see scripts/version.py)
# You can get commit and branch info in firmware with appropriate version_get_*() calls
# Skip external apps by default
SKIP_EXTERNAL = False
# Appid's to include even when skipping externals
EXTRA_EXT_APPS = []
# Coprocessor firmware
COPRO_OB_DATA = "scripts/ob.data"
# Must match lib/stm32wb_copro version
COPRO_CUBE_VERSION = "1.20.0"
COPRO_CUBE_DIR = "lib/stm32wb_copro"
# Default radio stack
COPRO_STACK_BIN = "stm32wb5x_BLE_Stack_light_fw.bin"
# Firmware also supports "ble_full", but it might not fit into debug builds
COPRO_STACK_TYPE = "ble_light"
# Leave 0 to let scripts automatically calculate it
COPRO_STACK_ADDR = "0x0"
# If you override COPRO_CUBE_DIR on commandline, override this as well
COPRO_STACK_BIN_DIR = posixpath.join(COPRO_CUBE_DIR, "firmware")
# Supported toolchain versions
# Also specify in scripts/ufbt/SConstruct
FBT_TOOLCHAIN_VERSIONS = (" 12.3.", " 13.2.")
OPENOCD_OPTS = [
"-f",
"interface/stlink.cfg",
"-c",
"transport select hla_swd",
"-f",
"${FBT_DEBUG_DIR}/stm32wbx.cfg",
"-c",
"stm32wbx.cpu configure -rtos auto",
]
SVD_FILE = "${FBT_DEBUG_DIR}/STM32WB55_CM4.svd"
# Look for blackmagic probe on serial ports and local network
BLACKMAGIC = "auto"
# Application to start on boot
LOADER_AUTOSTART = ""
FIRMWARE_APPS = {
"default": [
# Svc
"basic_services",
# Apps
"main_apps",
"system_apps",
# Settings
"settings_apps",
],
"unit_tests": [
# Svc
"basic_services",
# Apps
"main_apps",
"system_apps",
# Settings
"settings_apps",
# Tests
"unit_tests",
],
"unit_tests_min": [
"basic_services",
"updater_app",
"radio_device_cc1101_ext",
"unit_tests",
"js_app",
],
}
FIRMWARE_APP_SET = "default"
custom_options_fn = "fbt_options_local.py"
if Path(custom_options_fn).exists():
exec(compile(Path(custom_options_fn).read_text(), custom_options_fn, "exec"))