diff --git a/gecko_sdk_extensions/nc_efr32_watchdog_extension/inc/nc_efr32_wdog.h b/gecko_sdk_extensions/nc_efr32_watchdog_extension/inc/nc_efr32_wdog.h index d1af5b8b..db43de3f 100644 --- a/gecko_sdk_extensions/nc_efr32_watchdog_extension/inc/nc_efr32_wdog.h +++ b/gecko_sdk_extensions/nc_efr32_watchdog_extension/inc/nc_efr32_wdog.h @@ -19,8 +19,7 @@ #include "em_cmu.h" #include "em_wdog.h" #include "em_rmu.h" -#include "sli_cpc_timer.h" #include "sl_component_catalog.h" void nc_enable_watchdog(void); -void nc_periodic_timer(sli_cpc_timer_handle_t *handle, void *data); \ No newline at end of file +void nc_poke_watchdog(void); diff --git a/gecko_sdk_extensions/nc_efr32_watchdog_extension/src/nc_efr32_wdog.c b/gecko_sdk_extensions/nc_efr32_watchdog_extension/src/nc_efr32_wdog.c index 21979c00..f18b5a85 100644 --- a/gecko_sdk_extensions/nc_efr32_watchdog_extension/src/nc_efr32_wdog.c +++ b/gecko_sdk_extensions/nc_efr32_watchdog_extension/src/nc_efr32_wdog.c @@ -83,7 +83,7 @@ void nc_enable_watchdog(void) } -void nc_poke_watchdog() +void nc_poke_watchdog(void) { CORE_DECLARE_IRQ_STATE; CORE_ENTER_ATOMIC(); diff --git a/src/rcp-uart-802154/app.c b/src/rcp-uart-802154/app.c index 9f3b75ab..e0d57863 100644 --- a/src/rcp-uart-802154/app.c +++ b/src/rcp-uart-802154/app.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "openthread-system.h" #include "app.h" diff --git a/tools/build_project.py b/tools/build_project.py index 5e72582d..5dba1adf 100755 --- a/tools/build_project.py +++ b/tools/build_project.py @@ -322,11 +322,18 @@ def main(): LOGGER.warning( "Component %s is not present in manifest, cannot remove", component ) + sys.exit(1) # Extend configuration and C defines for input_config, output_config in [ - (manifest.get("configuration", {}), output_project.get("configuration", [])), - (manifest.get("slcp_defines", {}), output_project.get("define", [])), + ( + manifest.get("configuration", {}), + output_project.setdefault("configuration", []), + ), + ( + manifest.get("slcp_defines", {}), + output_project.setdefault("define", []), + ), ]: for name, value in input_config.items(): # Values are always strings @@ -542,6 +549,18 @@ def main(): LOGGER.error("Defines were unused, aborting: %s", unused_defines) sys.exit(1) + # Fix Gecko SDK bugs + sl_rail_util_pti_config_h = args.build_dir / "config/sl_rail_util_pti_config.h" + + # PTI seemingly cannot be excluded, even if it is disabled + if sl_rail_util_pti_config_h.exists(): + sl_rail_util_pti_config_h.write_text( + sl_rail_util_pti_config_h.read_text().replace( + '#warning "RAIL PTI peripheral not configured"\n', + '// #warning "RAIL PTI peripheral not configured"\n', + ) + ) + # Remove absolute paths from the build for reproducibility extra_compiler_flags = [ f"-ffile-prefix-map={str(src.absolute())}={dst}" @@ -550,7 +569,7 @@ def main(): args.build_dir: "/src", toolchain: "/toolchain", }.items() - ] + ] + ["-Wall", "-Wextra", "-Werror"] output_artifact = (args.build_dir / "build/debug" / base_project_name).with_suffix( ".gbl"