GCC Code Coverage Report


Directory: lib/fprime-samd/fprime-samd/
File: Drv/Types/Sercom.cpp
Date: 2026-10-20 16:48:53
Exec Total Coverage
Lines: 28 32 87.5%
Functions: 2 2 100.0%
Branches: 12 14 85.7%

Line Branch Exec Source
1 // ======================================================================
2 // \title Sercom.cpp
3 // \author tumbar
4 // \brief cpp file for SERCOM ISR utilities
5 // ======================================================================
6
7 #include "fprime-samd/Drv/Types/Sercom.hpp"
8 #include "Fw/Types/Assert.hpp"
9 #include "fprime-samd/Drv/Types/SercomKindEnumAc.hpp"
10
11 namespace Samd21 {
12 71 Dma::TriggerSource SercomUtil::rxDmaTrigger(SercomKind sercom) {
13
6/7
✓ Branch 3 taken 59 times.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 4 times.
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
71 switch (sercom) {
14 59 case SercomKind::SERCOM_0:
15 59 return Dma::TriggerSource::SERCOM0_RX;
16 2 case SercomKind::SERCOM_1:
17 2 return Dma::TriggerSource::SERCOM1_RX;
18 2 case SercomKind::SERCOM_2:
19 2 return Dma::TriggerSource::SERCOM2_RX;
20 4 case SercomKind::SERCOM_3:
21 4 return Dma::TriggerSource::SERCOM3_RX;
22 2 case SercomKind::SERCOM_4:
23 2 return Dma::TriggerSource::SERCOM4_RX;
24 2 case SercomKind::SERCOM_5:
25 2 return Dma::TriggerSource::SERCOM5_RX;
26 ✗ default:
27 ✗ FW_ASSERT(false, static_cast<FwAssertArgType>(sercom));
28 return Dma::TriggerSource::SERCOM0_RX;
29 }
30 }
31
32 33 Dma::TriggerSource SercomUtil::txDmaTrigger(SercomKind sercom) {
33
6/7
✓ Branch 3 taken 28 times.
✓ Branch 4 taken 1 times.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
33 switch (sercom) {
34 28 case SercomKind::SERCOM_0:
35 28 return Dma::TriggerSource::SERCOM0_TX;
36 1 case SercomKind::SERCOM_1:
37 1 return Dma::TriggerSource::SERCOM1_TX;
38 1 case SercomKind::SERCOM_2:
39 1 return Dma::TriggerSource::SERCOM2_TX;
40 1 case SercomKind::SERCOM_3:
41 1 return Dma::TriggerSource::SERCOM3_TX;
42 1 case SercomKind::SERCOM_4:
43 1 return Dma::TriggerSource::SERCOM4_TX;
44 1 case SercomKind::SERCOM_5:
45 1 return Dma::TriggerSource::SERCOM5_TX;
46 ✗ default:
47 ✗ FW_ASSERT(false, static_cast<FwAssertArgType>(sercom));
48 return Dma::TriggerSource::SERCOM0_TX;
49 }
50 }
51
52 } // namespace Samd21
53