fix: align FBF target with OTA-ready layout
This commit is contained in:
@@ -3,7 +3,7 @@ Number_of_Images = 1
|
|||||||
1_Image_Enable = 1
|
1_Image_Enable = 1
|
||||||
1_Image_Image_ID = 0x30
|
1_Image_Image_ID = 0x30
|
||||||
1_Image_Path = customer_app.bin
|
1_Image_Path = customer_app.bin
|
||||||
1_Image_Flash_Entry_Address = 0x0000322000
|
1_Image_Flash_Entry_Address = 0x00002E5000
|
||||||
1_Image_ID_Name = 1
|
1_Image_ID_Name = 1
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ GNSS_BOOT_IMAGE = ROOT / "ql-config/config/EG800AKCN_11LG/gnss_boot.pkg"
|
|||||||
GNSS_FIRM_IMAGE = ROOT / "ql-config/config/EG800AKCN_11LG/gnss_firm.pkg"
|
GNSS_FIRM_IMAGE = ROOT / "ql-config/config/EG800AKCN_11LG/gnss_firm.pkg"
|
||||||
KERNEL_FLAGS = ROOT / "ql-kernel/threadx/config/common/default_dflags_1602.mk"
|
KERNEL_FLAGS = ROOT / "ql-kernel/threadx/config/common/default_dflags_1602.mk"
|
||||||
FOTA_HEADER = ROOT / "ql-application/threadx/common/include/ql_fota.h"
|
FOTA_HEADER = ROOT / "ql-application/threadx/common/include/ql_fota.h"
|
||||||
|
FBF_CONFIG = ROOT / "ql-bootloader/updater/tool/config"
|
||||||
BASELINE_HEADER = ROOT / "ql-application/threadx/interface/custom_app/inc/ota_baseline.h"
|
BASELINE_HEADER = ROOT / "ql-application/threadx/interface/custom_app/inc/ota_baseline.h"
|
||||||
BUILD_MACRO = ROOT / "ql-application/threadx/interface/custom_app/lib/hal/build_macro.h"
|
BUILD_MACRO = ROOT / "ql-application/threadx/interface/custom_app/lib/hal/build_macro.h"
|
||||||
APP_MAKEFILE = ROOT / "ql-application/threadx/interface/custom_app/Makefile"
|
APP_MAKEFILE = ROOT / "ql-application/threadx/interface/custom_app/Makefile"
|
||||||
@@ -166,6 +167,22 @@ def verify_fota_contract() -> None:
|
|||||||
):
|
):
|
||||||
if symbol not in api:
|
if symbol not in api:
|
||||||
fail(f"SDK FULLOTA2 API {symbol} is missing")
|
fail(f"SDK FULLOTA2 API {symbol} is missing")
|
||||||
|
|
||||||
|
fbf_config = FBF_CONFIG.read_text(encoding="utf-8", errors="replace")
|
||||||
|
fbf_image_path = re.search(r"(?m)^1_Image_Path\s*=\s*(\S+)\s*$", fbf_config)
|
||||||
|
fbf_entry = re.search(
|
||||||
|
r"(?m)^1_Image_Flash_Entry_Address\s*=\s*(0x[0-9A-Fa-f]+)\s*$",
|
||||||
|
fbf_config,
|
||||||
|
)
|
||||||
|
if not fbf_image_path or fbf_image_path.group(1) != "customer_app.bin":
|
||||||
|
fail("FBF config does not package customer_app.bin")
|
||||||
|
if not fbf_entry or int(fbf_entry.group(1), 16) != EXPECTED["app_start"]:
|
||||||
|
actual = fbf_entry.group(1) if fbf_entry else "missing"
|
||||||
|
fail(
|
||||||
|
f"FBF target address is {actual}; expected "
|
||||||
|
f"0x{EXPECTED['app_start']:08X}"
|
||||||
|
)
|
||||||
|
|
||||||
identity = BASELINE_HEADER.read_text(encoding="utf-8")
|
identity = BASELINE_HEADER.read_text(encoding="utf-8")
|
||||||
if "eg800akcn_11lg-hxgnss-fs576-app2e5000" not in identity:
|
if "eg800akcn_11lg-hxgnss-fs576-app2e5000" not in identity:
|
||||||
fail("application layout identity is missing")
|
fail("application layout identity is missing")
|
||||||
|
|||||||
Reference in New Issue
Block a user