Чт ноя 18, 2021 14:33:38
Ser60 писал(а):Они уже вызываются внутри sl_system_init() в main() после конфигурации соответствующих опций проекта.
Чт ноя 18, 2021 15:41:40
Чт ноя 18, 2021 16:31:53
Чт ноя 18, 2021 17:17:58
void sl_system_init(void)
{
sl_platform_init();
sl_driver_init();
sl_service_init();
sl_stack_init();
sl_internal_app_init();
}
void sl_platform_init(void)
{
CHIP_Init();
sl_device_init_nvic();
sl_device_init_dcdc();
sl_hfxo_manager_init_hardware();
sl_device_init_hfxo();
sl_device_init_lfrco();
sl_device_init_clocks();
sl_device_init_emu();
nvm3_initDefault();
sl_power_manager_init();
}
Чт ноя 18, 2021 22:53:07
Нет проблем. Если хотите сделать это без конфигуратора ресурсов, в RM на чип в разделах CMU и Oscillators всё расписано на уровне регистров. Я не знаю с каким чипом Вы работаете, но ниже мой пример инициализации. HFRCO включается чипом дефолтно во всех МК серии Gecko на дефолтной частоте (какая она зависит от модели МК и указана в RM). Например, в случае ERF32MG12 она 19 мгц. Не утверждая, что это правильный подход, ниже грубый пример для этого чипа без использования каких-либо библиотек.parovoZZ писал(а):Я всего лишь хочу средствами SDK включить тактирования ядра и периферии от RC осциллятора. Выбрать частоту и коэффициент деления прескалера.
void EMU_setup(void)
{
EMU->PWRCFG = EMU_PWRCFG_PWRCFG_DCDCTODVDD; // unlock DCDC registers
EMU->DCDCMISCCTRL = 15<<16; // set 320mA current limit
EMU->DCDCCLIMCTRL = 1<<13; // enable current limiter
EMU->DCDCCTRL = 0; // bypass DCDC
EMU->PWRCTRL = EMU_PWRCTRL_REGPWRSEL; // power analog blocks from DVDD
}
void CMU_setup(void)
{
CMU->OSCENCMD = CMU_OSCENCMD_LFXOEN+CMU_OSCENCMD_LFRCODIS+CMU_OSCENCMD_AUXHFRCOEN;
while (!(CMU->STATUS & CMU_STATUS_LFXORDY)){} // wait for LFXO stabilize
CMU->HFCLKSEL = CMU_HFCLKSEL_HF_HFRCO; // select 19 MHz HFRCO as clock source
CMU->HFBUSCLKEN0 = CMU_HFBUSCLKEN0_LE; // enable LE clock access
CMU->LFACLKSEL = CMU_LFACLKSEL_LFA_LFXO; // set LFXO as LFA
CMU->LFECLKSEL = CMU_LFECLKSEL_LFE_LFXO;
}
void GPIO_setup(void) // configure GPIO ports
{
CMU->HFBUSCLKEN0 |= CMU_HFBUSCLKEN0_GPIO;
CMU->DBGCLKSEL = 1;
(GPIO->P[3]).MODEH |= GPIO_P_MODEH_MODE8_PUSHPULL; // red LED control
}
void EMU_setup(void)
{
EMU_DCDCInit_TypeDef dcdcInit = EMU_DCDCINIT_DEFAULT;
EMU_DCDCInit(&dcdcInit); // init DC/DC converter
}
void CMU_setup(void)
{
CMU_LFXOInit_TypeDef lfxoInit = CMU_LFXOINIT_DEFAULT;
CMU_LFXOInit(&lfxoInit);
SystemLFXOClockSet(32768);
CMU_ClockSelectSet(cmuClock_HF, cmuSelect_HFRCO); // select 19 MHz HFRCO as clock source
CMU_ClockEnable(cmuClock_HFLE, true); // enable LE clock access
CMU_ClockSelectSet(cmuClock_LFA, cmuSelect_LFXO);
CMU_ClockSelectSet(cmuClock_LFE, cmuSelect_LFXO);
}
void GPIO_setup(void) // configure GPIO ports
{
CMU_ClockEnable(cmuClock_GPIO, true);
GPIO_PinModeSet(gpioPortD, 8, gpioModePushPull, 0); // red LED control
}
Сб ноя 20, 2021 22:34:33
Вс ноя 21, 2021 00:55:27
Right-click на папку emlib, далее New->File. В Advanced ставим галку на Link to file..., кнопкой Browse выбираем файл и Finish.parovoZZ писал(а):как средствами студии сделать так, чтобы файлы модуля emlib линковались в папку emlib проекта?
Вс дек 19, 2021 02:59:07
Чт дек 23, 2021 02:56:42
Вс янв 02, 2022 20:47:44
Пн янв 03, 2022 04:38:52
Ср апр 27, 2022 04:25:54
Ср май 04, 2022 13:19:51
Ср май 04, 2022 18:50:26
Пн июл 25, 2022 22:35:25
Пт ноя 11, 2022 07:00:29
Сб ноя 12, 2022 19:32:42
Пт янв 06, 2023 08:00:38
Пт янв 06, 2023 11:50:16
Пт янв 06, 2023 16:31:30