feat(adcbuf): ADCBUF driver implementation and host unit tests #86
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!86
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/85-adcbuf-driver"
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
hal/mss/adcbuf/hal_adcbuf.c/.h— the ADCBUF driver: channel-enable/real-only/IQ-swap configuration (CFG1), per-channel sample-address configuration (CFG2/CFG3, read-modify-write hazard between paired channels), chirp-count configuration (CFG4), sample-buffer pointer accessor, and ECC enable (pollsINITDONEwith a bounded timeout) / clear-error for both ping and pong banks. Self-contained — no cross-module dependency.Why
Continues the driver-implementation phase started by GPIO (#75/#76), ESM (#77/#78), UART (#79/#80), I2C (#81/#82), and SPI (#83/#84).
Related Issue
Closes #85
Type of Change
Impact Assessment
Testing
testing/mss/unit/hal_functionality/test_adcbuf_functionallocally (13 test cases, 59 assertions, all passing, plus 10 repeated back-to-back runs to confirm the threaded ECC-init-done simulation isn't flaky) alongside the full existingctestsuite (235/235 passing, no regressions); ran a full MISRA C:2025 pass (0 unsuppressed findings,-DENABLE_ADCBUF_MODULEadded); reformatted and re-verified against the exact clang-format 18.1.3 the CI runner uses; sanity-checked by swapping the RX0 branch to setRX1ENinstead ofRX0EN, confirming the test suite fails (4 assertions), then reverting.PR Size
Size justification / exemption (if L or XL):
636 raw lines across 6 files, all hand-reviewed (no mechanically-generated content). Not split further — the driver (
hal_adcbuf.c/.h, 324 lines) and its comprehensive Catch2 spec (test_adcbuf.c, 305 lines, covering channel config, address RMW isolation, and the threaded ECC init/enable sequence) don't decompose into independently-reviewable sub-PRs, same rationale as prior driver PRs (#78, #80, #82, #84).Checklist
type(scope): descriptionconvention withRelates to #<issue>footerSummary
hal/mss/adcbuf/hal_adcbuf.c/.h: ADCBUF driver (channel/address/chirp-count config, sample-buffer accessor, ECC enable/clear-error)testing/mss/unit/hal_functionality/test_adcbuf.c(+CMakeLists.txt): Catch2 functional test suite, using a backgroundstd::threadto simulate the ECC-init-done hardware state machine (verified stable across 10 repeated runs, not flaky)tools/misra/run_misra.sh:-DENABLE_ADCBUF_MODULEadded