pub struct Config {
pub hxt48_enable: ConfigOption<bool>,
pub hrc48_enable: ConfigOption<bool>,
pub dll1: ConfigOption<DllConfig>,
pub dll2: ConfigOption<DllConfig>,
pub clk_sys_sel: ConfigOption<ClkSysSel>,
pub hclk_div: ConfigOption<u8>,
pub pclk1_div: ConfigOption<u8>,
pub pclk2_div: ConfigOption<u8>,
pub usb: ConfigOption<UsbConfig>,
pub tick: ConfigOption<TickConfig>,
pub clk_peri_sel: ConfigOption<ClkPeriSel>,
}Fields§
§hxt48_enable: ConfigOption<bool>Enable the 48MHz external crystal oscillator
hrc48_enable: ConfigOption<bool>Enable the 48MHz internal RC oscillator
dll1: ConfigOption<DllConfig>Configuration for DLL1
dll2: ConfigOption<DllConfig>Configuration for DLL2 Note: Bootloader typically configures this to 288MHz for PSRAM and external flash
clk_sys_sel: ConfigOption<ClkSysSel>Select the clock source for system clock (clk_sys)
hclk_div: ConfigOption<u8>HCLK divider: HCLK = CLK_SYS / hclk_div Valid range: 0 to 255
pclk1_div: ConfigOption<u8>PCLK1 divider: PCLK1 = HCLK / 2^pclk1_div Valid range: 0 to 7
pclk2_div: ConfigOption<u8>PCLK2 divider: PCLK2 = HCLK / 2^pclk2_div Valid range: 0 to 7
usb: ConfigOption<UsbConfig>USB clock configuration
tick: ConfigOption<TickConfig>Tick clock configuration
clk_peri_sel: ConfigOption<ClkPeriSel>Select the clock source for peripheral clock
Implementations§
Source§impl Config
impl Config
pub fn new_keep() -> Self
Sourcepub unsafe fn apply(&self)
pub unsafe fn apply(&self)
Apply the RCC clock configuration to the hardware registers
Safety This function is typically called by sifli_hal::init() (configured in sifli_hal::Config.rcc), but can also be called independently as long as it does not interfere with the clocks of already initialized peripherals. In the Bootloader, FLASH and PSRAM have already been initialized. You must ensure that their clocks are not broken. If configuring the clock after calling sifli_hal::init(), make sure not to break the clock of Timer used as the time driver.