probe_rs/vendor/silabs/
mod.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//! Silicon Labs vendor support.

use probe_rs_target::Chip;

use crate::{
    config::DebugSequence,
    vendor::{silabs::sequences::efm32xg2::EFM32xG2, Vendor},
};

pub mod sequences;

/// Silicon Labs
#[derive(docsplay::Display)]
pub struct SiliconLabs;

impl Vendor for SiliconLabs {
    fn try_create_debug_sequence(&self, chip: &Chip) -> Option<DebugSequence> {
        let sequence = if chip.name.starts_with("EFM32PG2")
            || chip.name.starts_with("EFR32BG2")
            || chip.name.starts_with("EFR32FG2")
            || chip.name.starts_with("EFR32MG2")
            || chip.name.starts_with("EFR32ZG2")
        {
            DebugSequence::Arm(EFM32xG2::create())
        } else {
            return None;
        };

        Some(sequence)
    }
}