feat(dss-adcbuf): DSS ADCBUF driver implementation and host unit tests #106
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!106
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/105-dss-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/dss/adcbuf/hal_dss_adcbuf.c/.h— the DSS-side counterpart of the already-landed MSS ADCBUF driver (#85/#86). ADCBUF is physically dual-mapped (same register block and sample-data memory window visible at different base addresses depending on which core accesses them), so this driver targets the DSS-visibleDSS_ADCBUF_CFG/DSS_ADCBUF_ECC/DSS_ADCBUF_MEMaddresses with the identical register semantics and functional scope as the MSS driver: channel-enable/real-only/IQ-swap configuration, per-channel sample-address configuration (read-modify-write-guarded), chirp-count configuration, sample-buffer pointer accessor, and ECC enable (boundedINITDONEpoll)/clear-error for both ping and pong banks. Self-contained — no cross-module dependency.Why
Continues the DSS-side driver batch (Mailbox, EDMA, VIM already landed).
Related Issue
Closes #105
Type of Change
Impact Assessment
Testing
testing/dss/adcbuf/test_dss_adcbuflocally (13 test cases, 59 assertions, all passing) alongside the full existingctestsuite (366/366 passing, no regressions); ran a full MISRA C:2025 pass (0 unsuppressed findings,-DENABLE_DSS_ADCBUF_MODULEadded); reformatted and re-verified against the exact clang-format 18.1.3 the CI runner uses; sanity-checked by swapping RX0's CFG2 mask fromADCBUFADDRX0_MsktoADCBUFADDRX1_Mskinhal_dss_adcbuf_set_channel_address(), confirming the test suite fails (1 assertion), then reverting.PR Size
Size justification / exemption (if L or XL):
618 raw lines across 6 files, all hand-reviewed (no mechanically-generated content). Not split further — the driver (
hal_dss_adcbuf.c/.h, 337 lines) and its comprehensive Catch2 spec (test_dss_adcbuf.c, 276 lines, covering channel configuration, address read-modify-write isolation, and the ECC init/enable sequence) don't decompose into independently-reviewable sub-PRs, same rationale as every prior driver PR in this project. The remaining files are small CMake/MISRA wiring diffs, also not independently reviewable apart from the driver they enable.Checklist
type(scope): descriptionconvention withRelates to #<issue>footerSummary
hal/dss/adcbuf/hal_dss_adcbuf.c/.h: DSS ADCBUF driver — DSS-side counterpart ofhal_adcbuf.c, same register semantics/functional scope, targetingDSS_ADCBUF_CFG/DSS_ADCBUF_ECC/DSS_ADCBUF_MEMtesting/dss/adcbuf/test_dss_adcbuf.c(+CMakeLists.txt): Catch2 functional test suite. No naming collision withti_hal_comparison(that suite's ADCBUF test istest_adcbuf, nottest_dss_adcbuf).testing/CMakeLists.txt:add_subdirectory(dss/adcbuf)andENABLE_DSS_ADCBUF_MODULEin the sharedhw_fakescompile definitionstools/misra/run_misra.sh:-DENABLE_DSS_ADCBUF_MODULEadded