feat(uart): UART (SCI) driver implementation and host unit tests #80
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!80
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/79-uart-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/uart/hal_uart.c/.h— the UART (SCI) driver: baud/parity/stop-bit init (TRM-derivedSCIBAUDdivisor formula against the 200MHz VCLK), blocking transmit/receive with bounded ready-poll timeouts, IRQ source enable/disable/priority, and the four instance/priority-line raw handlers decodingSCIFLRto a weak, application-overridablehal_uart_irq_handler()hook. Self-contained — no cross-module dependency, unlike ESM's VIM calls.Why
Continues the driver-implementation phase started by GPIO (#75/#76) and ESM (#77/#78).
Related Issue
Closes #79
Type of Change
Impact Assessment
Testing
testing/mss/unit/hal_functionality/test_uart_functionallocally (24 test cases, 104 assertions, all passing) alongside the full existingctestsuite (189/189 passing, no regressions); ran a full MISRA C:2025 pass (0 unsuppressed findings,-DENABLE_UART_MODULEadded); reformatted and re-verified against the exact clang-format 18.1.3 the CI runner uses (pulled from theccstudioimage directly) before pushing, to avoid the version-mismatch fixup GPIO's PR needed; sanity-checked by changing the baud-divisor adjustment from-1to-2, confirming the test suite fails (3 assertions), then reverting.PR Size
Size justification / exemption (if L or XL):
965 raw lines across 6 files, all hand-reviewed (no mechanically-generated content). Not split further — the driver (
hal_uart.c/.h, 505 lines) and its comprehensive Catch2 spec (test_uart.c, 453 lines, covering both instances, every parity/stop-bit combination, and all four IRQ handlers) don't decompose into independently-reviewable sub-PRs, same rationale as ESM's PR (#78).Checklist
type(scope): descriptionconvention withRelates to #<issue>footerSummary
hal/mss/uart/hal_uart.c/.h: UART driver (init/baud derivation, blocking TX/RX, IRQ enable/disable/priority, IRQ handlers)ti/drivers/uart/src/uartsci.c(uses a slightly different but numerically comparable expression) and this project's TRM citation (Section 27.7.11) — algebraically consistent, no correction neededtesting/mss/unit/hal_functionality/test_uart.c(+CMakeLists.txt): Catch2 functional test suitetools/misra/run_misra.sh:-DENABLE_UART_MODULEadded