[FL-2733] multitarget support for fbt (#2209)
* First part of multitarget porting * Delete firmware/targets/f7/Inc directory * Delete firmware/targets/f7/Src directory * gpio: cli fixes; about: using version from HAL * sdk: path fixes * gui: include fixes * applications: more include fixes * gpio: ported to new apis * hal: introduced furi_hal_target_hw.h; libs: added one_wire * hal: f18 target * github: also build f18 by default * typo fix * fbt: removed extra checks on app list * api: explicitly bundling select mlib headers with sdk * hal: f18: changed INPUT_DEBOUNCE_TICKS to match f7 * cleaned up commented out code * docs: added info on hw targets * docs: targets: formatting fixes * f18: fixed link error * f18: fixed API version to match f7 * docs: hardware: minor wording fixes * faploader: added fw target check * docs: typo fixes * github: not building komi target by default * fbt: support for `targets` field for built-in apps * github: reworked build flow to exclude app_set; fbt: removed komi-specific appset; added additional target buildset check * github: fixed build; nfc: fixed pvs warnings * attempt to fix target id * f7, f18: removed certain HAL function from public API * apps: debug: enabled bt_debug_app for f18 * Targets: backport input pins configuration routine from F7 to F18 Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
@@ -79,6 +79,7 @@ vars.AddVariables(
|
||||
default="7",
|
||||
allowed_values=[
|
||||
"7",
|
||||
"18",
|
||||
],
|
||||
),
|
||||
(
|
||||
@@ -197,7 +198,7 @@ vars.AddVariables(
|
||||
# "basic_plugins",
|
||||
# Debug
|
||||
# "debug_apps",
|
||||
)
|
||||
),
|
||||
},
|
||||
),
|
||||
(
|
||||
|
@@ -16,7 +16,7 @@ appenv = ENV["APPENV"] = ENV.Clone(
|
||||
)
|
||||
|
||||
appenv.Replace(
|
||||
LINKER_SCRIPT=appenv.subst("$APP_LINKER_SCRIPT"),
|
||||
LINKER_SCRIPT_PATH=appenv["APP_LINKER_SCRIPT_PATH"],
|
||||
)
|
||||
|
||||
appenv.AppendUnique(
|
||||
@@ -78,17 +78,20 @@ known_extapps = [
|
||||
if extra_app_list := GetOption("extra_ext_apps"):
|
||||
known_extapps.extend(map(appenv["APPMGR"].get, extra_app_list.split(",")))
|
||||
|
||||
incompatible_apps = []
|
||||
for app in known_extapps:
|
||||
if not any(map(lambda t: t in app.targets, ["all", appenv.subst("f${TARGET_HW}")])):
|
||||
warn(
|
||||
WarningOnByDefault,
|
||||
f"Can't build '{app.name}' (id '{app.appid}'): target mismatch"
|
||||
f" (building for {appenv.subst('f${TARGET_HW}')}, app supports {app.targets}",
|
||||
)
|
||||
if not app.supports_hardware_target(appenv.subst("f${TARGET_HW}")):
|
||||
incompatible_apps.append(app)
|
||||
continue
|
||||
|
||||
appenv.BuildAppElf(app)
|
||||
|
||||
if incompatible_apps:
|
||||
warn(
|
||||
WarningOnByDefault,
|
||||
f"Skipping build of {len(incompatible_apps)} incompatible app(s): "
|
||||
+ ", ".join(f"'{app.name}' (id '{app.appid}')" for app in incompatible_apps),
|
||||
)
|
||||
|
||||
if appenv["FORCE"]:
|
||||
appenv.AlwaysBuild(
|
||||
|
@@ -49,18 +49,15 @@ ENV.AppendUnique(
|
||||
],
|
||||
)
|
||||
|
||||
ENV.SetDefault(
|
||||
LINKER_SCRIPT_PATH="firmware/targets/f${TARGET_HW}/${LINKER_SCRIPT}.ld",
|
||||
)
|
||||
|
||||
if ENV["FIRMWARE_BUILD_CFG"] == "updater":
|
||||
ENV.Append(
|
||||
IMAGE_BASE_ADDRESS="0x20000000",
|
||||
LINKER_SCRIPT="stm32wb55xx_ram_fw",
|
||||
LINKER_SCRIPT_PATH=ENV["TARGET_CFG"].linker_script_ram,
|
||||
)
|
||||
else:
|
||||
ENV.Append(
|
||||
IMAGE_BASE_ADDRESS="0x8000000",
|
||||
LINKER_SCRIPT="stm32wb55xx_flash",
|
||||
APP_LINKER_SCRIPT="application_ext",
|
||||
LINKER_SCRIPT_PATH=ENV["TARGET_CFG"].linker_script_flash,
|
||||
APP_LINKER_SCRIPT_PATH=ENV["TARGET_CFG"].linker_script_app,
|
||||
)
|
||||
|
Reference in New Issue
Block a user