Skip to content

feat(platform): adopt pinned CMSIS Core 6.4 - #35

Merged
VectorQiu merged 2 commits into
mainfrom
feat/cmsis6-20261025
Oct 26, 2026
Merged

VectorQiu merged 2 commits into
mainfrom
feat/cmsis6-20261025

Conversation

@VectorQiu

@VectorQiu VectorQiu commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Problem and resulting behavior

Unify STM32F103/F407/G474/H743/U575 and GD32F303/F470 on official CMSIS-Core v6.4.0, commit af1b110e46a1720349f6f125e386e126767699bd. Private CMake targets select the same Core headers for providers, startup and standalone components, and the installed Source SDK exports the complete nested include tree.

Requirement: CMSIS6 adaptation across the maintained platform. Accountable roles: technical-lead, bsp-ports, build-release and quality-hil, managed by Codex under .github/maintainer-roles.json.

Contract and scope

  • Use current DCB/NVIC definitions with deprecated Core aliases disabled. Keep ST HAL/Device pairings and GD32 imported SDK bytes pinned.
  • Validate real C11/C++17 Device/Core include closure and reject mixed or foreign Core trees.
  • Keep real-Core host register models on the unchanged GNU-compatible compiler declarations, including Arm instruction bodies and C++ linkage. Completely mocked Core targets select only their model. Neither host mechanism enters firmware or SDK exports.
  • Accept a matching, clean stage-0 Gitlink during an explicit dependency upgrade. Installed SDK publication still requires clean committed source.
  • Preserve Nexus public interfaces, static factories, ownership and lifecycle contracts. Update the maintained English/Chinese documentation.

The official Git tag and Core macros are v6.4.0; the upstream PDSC's 6.4.0-rc entry is recorded separately.

Executed validation

Evidence Exact identity and executed result
Source Remote f9db4fe383ddc68b82d6933684b6c1d8c5cde380; locally gated 8864b3828f4456c4f7134f5c0283752a07ac360e; both have verified tree aaf41e50f7467627fd54663529f6e70175bf2eb8
Ordinary commit hooks Executed on local commit 8864b382: style, offline documentation/configuration checks, Actions DSL lint, complete-index TDD and Conventional Commit checks passed
Tool contracts 1,513 testing + 1,035 configure + 485 CI + 159 workflow tests = 3,192; no skips or failures
Native model execution 352 GoogleTest/GoogleMock programs; 6,352 discovered and executed cases, no failures or skips; fresh XML and unchanged staged tree
Bounded I/O properties 203 assertion-anchor contracts consumed this same execution; not a formal proof or exhaustive interleaving check
ARM header coverage Actual Device/Core C11/C++17 probes are exercised by the complete tool suite, including U575 secure/nonsecure contexts
Static analysis Complete local cppcheck 2.13: 953 translation units / 863 contexts passed. Clang14 rechecked all 14 changed mock-Core contexts; the new remote run independently checks the complete Clang scope. GCC and Clang19 host-boundary suites each passed 11/11.
Final installed SDK / board qualification To run against the exact clean merge commit; no earlier S1 result is relabelled as CMSIS6
Physical station not_executed; hardware is not connected

Executed through ordinary git commit -F .../commit-message.txt, with its unmodified pre-commit configuration. The hook ran python scripts/ci/tdd_gate.py --staged and all four tool domains. Current raw results are in build/native-debug/tdd/ and the local retained attempt under .git/local-recovery/cmsis6-followup-20261026/ordinary-clang-fix-1793024168610997459/.

TDD record

Step Actual record
RED PYTHONPATH=tests/contracts python -B -m unittest test_source_sdk.CMSISCoreSelectionTests -v failed because the export admitted unrelated/missing/nonregular Core payloads. python -B -m unittest tools.configure.test_descriptors.CMSISCoreDescriptorContracts -v failed because six families selected CMSIS5 and GD470 had no shared Core dependency.
GREEN Focused SDK and descriptor suites passed after the minimal dependency/export changes. Original records, including intermediate prerequisite failures, are retained in payload/dependencies/review.json and the corresponding raw files in the frozen evidence archive.
Regression The actual ordinary complete-index commit above passed all 3,192 tool tests and 6,352 GoogleTest cases on the final tree. Prior failed/cancelled attempts remain distinct.

Historical development evidence archive SHA256: dc870b6ca0b4f30af25bdd70c090d36ac0952528830c328f78f067f78f722985. It records original source identities; local records are not claimed to be public CI artifacts. Independent GitHub checks bind this PR head. The first remote Clang run exposed the host ACLE selection boundary; its failed logs are retained. The host bridge and mock-Core isolation regressions were executed RED then GREEN before the complete local gate.

The CLI credential expired before synchronization. The connected GitHub API transported the eight already committed files, verified the resulting tree against local commit 8864b382, and advanced the branch with an expected-parent check and force=false. The remote commit has different author/time metadata; it is not claimed to have executed local commit hooks. The ordinary local commit and its original evidence remain retained.

Review and delivery

  • Changed files pass existing format and backslash Doxygen rules.
  • Existing ownership/failure paths retain behavioral coverage.
  • Supported software scope and external-consumer migration are explicit.
  • Local execution binds the exact source tree.
  • Complete exact-main Source SDK, bilingual documentation and external examples validation after merge.
  • Physical HIL remains deferred.

VectorQiu and others added 2 commits October 26, 2026 12:32
Unify all seven maintained MCU families on the reviewed CMSIS Core
commit, with private target dependencies and strict current symbols.
Keep vendor imports intact and validate real C/C++ Device/Core include
closures, Native isolation and explicit staged dependency upgrades.

Export the complete Core include tree and notices in the Source SDK;
update provider models and the maintained English/Chinese documentation.
Select unchanged GNU-compatible CMSIS declarations only for real Core host
models, preserving Arm instruction bodies and C++ linkage. Keep complete
mock Core targets independent of the vendor Core dependency.
@VectorQiu
VectorQiu merged commit 890a602 into main Oct 26, 2026
65 of 67 checks passed
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