Skip to content

Decouple TX_SAFETY_CRITICAL build checks from runtime exception handling (#795) - #825

Open
Dev10-sys wants to merge 1 commit into
eclipse-threadx:devfrom
Dev10-sys:feature/safety-critical-separation
Open

Dev10-sys wants to merge 1 commit into
eclipse-threadx:devfrom
Dev10-sys:feature/safety-critical-separation

Conversation

@Dev10-sys

Copy link
Copy Markdown

This PR resolves #795 by decoupling build-time configuration checks from runtime exception handling. TX_SAFETY_CRITICAL has been split into TX_SAFETY_CRITICAL_BUILD_CHECK and TX_SAFETY_CRITICAL_EXCEPTION_ENABLE, while keeping TX_SAFETY_CRITICAL as an umbrella macro so existing setups continue to work without changes.

Previously, enabling safety-critical checks caused build failures with certified profiles because features like TX_ENABLE_STACK_CHECKING were blocked by #error guards, even though stack checking is necessary in safety-critical applications. In addition, the default exception handler had unused parameters that failed on modern compilers with -Werror=unused-parameter.

To fix this, I removed the restrictions on stack checking, notify callbacks, and event tracing from the build check, added TX_PARAMETER_NOT_USED to the default exception handler, and updated all exception trap sites across common, SMP, and module ports. I also added regression tests for both single-core and SMP to verify build-time checks, clean compilation, and exception dispatch.

Fixes #795

Signed-off-by: Dev10-sys kalpanagola9897@gmail.com

- Decouple TX_SAFETY_CRITICAL into granular TX_SAFETY_CRITICAL_BUILD_CHECK
  and TX_SAFETY_CRITICAL_EXCEPTION_ENABLE, retaining TX_SAFETY_CRITICAL as
  a backward-compatible umbrella macro.
- Remove prohibitions on TX_ENABLE_STACK_CHECKING, TX_DISABLE_NOTIFY_CALLBACKS,
  and TX_ENABLE_EVENT_TRACE to align with certified profiles and safety manual.
- Add TX_PARAMETER_NOT_USED to default TX_SAFETY_CRITICAL_EXCEPTION_HANDLER
  to prevent -Werror=unused-parameter compilation failures.
- Update runtime trap call sites across common, common_smp, and all module ports.
- Add regression test cases for both single-core and SMP test suites.

Fixes eclipse-threadx#795

Signed-off-by: Dev10-sys <kalpanagola9897@gmail.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant