feat(adcbuf): add CMSIS register description for ADCBUF #10
No reviewers
Labels
No labels
Category
App
Category
Documentation
Category
Firmware
Category
Hardware
Category
Qms
PR_Size
L
PR_Size
M
PR_Size
S
PR_Size
XL
PR_Size
XS
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Priority
Very Low Priority
Size
Epic
Size
Feature
Size
Task
Status
Blocked
Status
Draft
Status
Needs-review
Team
Board
Team
Dev
Team
Management
Type
Bug
Type
Capa
Type
Improvement
Type
New-feature
Type
Regulatory
Type
Usability
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
opendutchsolutions.public/hal_awr6843!10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "refs/pull/10/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Adds the ADCBUF slice of the CMSIS register description epic (#4): a shared CMSIS access-qualifier header, a CMSIS-SVD entry for ADCBUF, and an automated cross-check between the two, wired into the test suite.
Why
Change justification per ISO 9001 section 7.5.2:
hal/registers/component/adcbuf.h(like every other component header) redefined__I/__O/__IO/_U_itself, and there was no machine-readable register description an IDE/debugger or a validation tool could consume — only the hand-rolled C headers. ADCBUF is the first peripheral task under epic #4 to close, so it's also the one introducing the shared infrastructure (core_cr4f.h, the SVD file, the checker script) that the remaining peripheral tasks will reuse instead of re-deriving.testing/CMakeLists.txtis committed here in a deliberately minimal form (just the SVD check), not its full pre-existing local content (Catch2/fff,hw_fakes, the driver unit-test suites) — those referencehal/mss,hal/dss, andtesting/supportfixtures that aren't tracked in any branch yet. Bundling them into an ADCBUF-scoped PR would both violate scope and leave the file referencing directories that don't exist on a fresh checkout. That fuller test tree returns in whichever PR actually commits it.Related Issue
Closes #5
Type of Change
Impact Assessment
Testing
cmake -S testing -B build && ctest --test-dir build: configures cleanly andsvd_check_adcbufpasses 1/1. (An earlier version of this PR body claimed a 307-test run — that was a false positive from untracked local files filling in gaps in atesting/CMakeLists.txtthat referenced directories not actually in this branch; see the two follow-up commits that fixed this.)tools/svd/check_svd.pydirectly against the new SVD/header; deliberately pointed it at wrong base-address macros for both the ECC and CFG clusters independently to confirm each is actually being checked (not just the peripheral's overall base address) and that mismatches are reported, not silently passed.PR Size
Size justification / exemption (if L or XL):
~1,150 lines across 5 files, but they're one functionally indivisible unit: the shared qualifier header, the SVD entry, the checker script, and the instance header the checker validates against all only make sense together — splitting them would leave issue #5's acceptance criteria partially unverifiable until every piece landed anyway. Most of the line count is the SVD XML itself (field-for-field transcription of ADCBUF's existing bitfields), not new logic.
Checklist
type(scope): descriptionconvention withRelates to #<issue>footerctest, not just the local working treeSummary
hal/registers/core_cr4f.h— shared CMSIS__I/__O/__IO/_U_header (this project's stand-in for the CMSIS-Core header ARM doesn't publish for Cortex-R)hal/registers/component/adcbuf.h— now includescore_cr4f.hinstead of redefining those qualifiers locallyhal/registers/instance/adcbuf.h— base-address macros the checker cross-checks againsthal/registers/svd/AWR6843AOP_MSS.svd— new CMSIS-SVD device file with a field-for-field ADCBUF peripheral entry (ECC + CFG clusters)tools/svd/check_svd.py— cross-checks a CMSIS-SVD peripheral against a component/instance header's offset/field/base-address macros (repeatableClusterName=MACROpairs, one per dual-mapped sub-region)testing/CMakeLists.txt— new, minimal: wires the checker in as thesvd_check_adcbufctest