Skip to content

feat(x5h): before/after actuation parameter profiles for the MRM demo - #5

Closed
youtalk wants to merge 4 commits into
feat/freertos-x5h-netiffrom
feat/x5h-actuation-param-profiles
Closed

youtalk wants to merge 4 commits into
feat/freertos-x5h-netiffrom
feat/x5h-actuation-param-profiles

Conversation

@youtalk

@youtalk youtalk commented Aug 20, 2026 •

Copy link
Copy Markdown
Owner

Adds a compile-time ACTUATION_PARAM_PROFILE (after = current tuned values, default; identical actuation parameter values and controller code to the pre-existing build, but the boot banner's new "actuation_param_profile=after" string means .rodata differs from that predecessor by that string alone; before = the CES 2026 untuned deceleration limits) selected via build.sh --param-profile, stamped into the boot banner and .rodata, verified by check-elf-contract.sh's new third argument, and built as a separate CI artifact (freertos-x5h-before-elfs). Part of the openadkit X5H MRM before/after demo (autowarefoundation/openadkit#120 follow-on).

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
… profile

The header and CMakeLists.txt comments claimed an unconfigured "after"
build is byte-identical to its predecessor on every target; the boot
banner's new profile-identity string makes that false for freertos_x5h
specifically (Zephyr/S32Z2/POSIX are unaffected). Reword both comments
to state what actually holds: identical parameter values and code
everywhere, identical .rodata except for that string on freertos_x5h.

Also apply the after/before convention consistently to the diag ELF
contract re-verification steps (they build an "after" image but omitted
the argument), note in the before block why only actuation_x5h.elf is
re-verified there, and document --param-profile, check-elf-contract.sh's
full argument list, and the two CI artifact names in the freertos_x5h
README.

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
@youtalk

youtalk commented Aug 21, 2026

Copy link
Copy Markdown
Owner Author

Superseded by autowarefoundation#47, which carries the same 4 commits upstream on top of feat/freertos-x5h-netif (stacking on autowarefoundation#45). Closing this fork PR; review happens upstream.

@youtalk youtalk closed this Aug 21, 2026
youtalk added a commit that referenced this pull request Aug 31, 2026
Fixes 5 Important and 5 Minor findings from the round-1 code review of
the DDS static-peer config for the CR52/AutoSD RPMsg link:

- check-dds-config.sh now asserts the four frozen wire constants
  directly against build-edge-ecu-peer-arm64.sh's cmake -D flags, the
  actual Linux-side mechanism, rather than only the never-parsed-at-
  runtime cyclonedds-x5h.xml (Important #1).
- XML-side checks now use `xmllint --xpath` against the parsed DOM
  with value-equality comparison, instead of comment-stripping grep,
  closing a false-PASS a commented-out <Peers> node produced
  (Important #2).
- arm64 peer binaries get $ORIGIN/lib RUNPATH via CMAKE_INSTALL_RPATH
  at configure time and an authoritative patchelf --set-rpath pass in
  a native (non-emulated) container, replacing the container-internal
  path that would have failed to load on the board (Important #3).
- check-dds-config.sh is wired into build.sh's freertos-x5h path and
  documented in the target README (Important #4).
- build-edge-ecu-peer-arm64.sh gets a top-of-file comment marking it
  as the only script that builds the AutoSD edge_ecu_peer bundle
  (Important #5c; #5a/#5b are plan-level handoff notes only).
- Splits the CycloneDDS host-tools cache from the per-run build
  scratch so it survives across runs, switches comment-stripping from
  grep -Ev to sed -E (fixes a set -e abort on all-comment input and
  now strips trailing comments too), pins both container images by
  digest, and sets CMAKE_BUILD_TYPE=Release for the peer build
  (Minors #1-#5).

Verified via a 12-case perturbation matrix (each constant, on each
side, wrong or missing) plus a dedicated Minor #3 regression case, all
correctly failing and naming the right constant; readelf -d confirms
the RUNPATH fix on the already-built arm64 binaries without requiring
another emulated build.

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
youtalk added a commit that referenced this pull request Sep 22, 2026
Fixes 5 Important and 5 Minor findings from the round-1 code review of
the DDS static-peer config for the CR52/AutoSD RPMsg link:

- check-dds-config.sh now asserts the four frozen wire constants
  directly against build-edge-ecu-peer-arm64.sh's cmake -D flags, the
  actual Linux-side mechanism, rather than only the never-parsed-at-
  runtime cyclonedds-x5h.xml (Important #1).
- XML-side checks now use `xmllint --xpath` against the parsed DOM
  with value-equality comparison, instead of comment-stripping grep,
  closing a false-PASS a commented-out <Peers> node produced
  (Important #2).
- arm64 peer binaries get $ORIGIN/lib RUNPATH via CMAKE_INSTALL_RPATH
  at configure time and an authoritative patchelf --set-rpath pass in
  a native (non-emulated) container, replacing the container-internal
  path that would have failed to load on the board (Important #3).
- check-dds-config.sh is wired into build.sh's freertos-x5h path and
  documented in the target README (Important #4).
- build-edge-ecu-peer-arm64.sh gets a top-of-file comment marking it
  as the only script that builds the AutoSD edge_ecu_peer bundle
  (Important #5c; #5a/#5b are plan-level handoff notes only).
- Splits the CycloneDDS host-tools cache from the per-run build
  scratch so it survives across runs, switches comment-stripping from
  grep -Ev to sed -E (fixes a set -e abort on all-comment input and
  now strips trailing comments too), pins both container images by
  digest, and sets CMAKE_BUILD_TYPE=Release for the peer build
  (Minors #1-#5).

Verified via a 12-case perturbation matrix (each constant, on each
side, wrong or missing) plus a dedicated Minor #3 regression case, all
correctly failing and naming the right constant; readelf -d confirms
the RUNPATH fix on the already-built arm64 binaries without requiring
another emulated build.

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
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