Cflow
Jump to navigation
Jump to search
Cflow can trace routine call frames, can follow all routine calls neglecting whether tests would skip the calls at run time. Useful for seeing which execution paths could possibly be called.
ted@localhost:~/projects/zephyr-project/zephyr/drivers$ cflow -m stm32_clock_control_init ~/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c cflow:/home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:99: plln_mul redefined cflow:/home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:94: this is the place of previous definition cflow:/home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:99: pllout_div redefined cflow:/home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:95: this is the place of previous definition cflow:/home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:107: __unused redefined cflow:/home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:91: this is the place of previous definition cflow:/home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:530: __unused redefined cflow:/home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:107: this is the place of previous definition cflow:/home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:548: __unused redefined cflow:/home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:530: this is the place of previous definition stm32_clock_control_init() <int stm32_clock_control_init (const struct device *dev) at /home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:825>: ARG_UNUSED() config_enable_default_clocks() config_regulator_voltage() <void __weak config_regulator_voltage (uint32_t hclk_freq) at /home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:934> RCC_CALC_FLASH_FREQ() HAL_RCC_GetSysClockFreq() GET_CURRENT_FLASH_PRESCALER() LL_SetFlashLatency() set_up_fixed_clock_sources() <void set_up_fixed_clock_sources (void) at /home/ted/projects/zephyr-project/zephyr/drivers/clock_control/clock_stm32_ll_common.c:636>: IS_ENABLED() LL_RCC_HSE_EnableBypass() LL_RCC_HSE_DisableBypass() LL_RCC_HSE_EnableTcxo() LL_RCC_HSE_EnableDiv2() LL_RCC_HSE_Enable() LL_RCC_HSE_IsReady() z_arm_nmi_set_handler() LL_RCC_HSE_EnableCSS() LL_RCC_HSI_IsReady() LL_RCC_HSI_Enable() LL_RCC_SetHSIDiv() hsi_divider() LL_RCC_MSI_EnableRangeSelection() LL_RCC_MSI_SetRange() LL_RCC_MSI_EnablePLLMode() LL_RCC_MSI_SetCalibTrimming() LL_RCC_MSI_IsReady() LL_RCC_MSI_Enable() LL_RCC_LSI1_Enable() LL_RCC_LSI1_IsReady() LL_RCC_LSI_Enable() LL_RCC_LSI_IsReady() z_stm32_hsem_lock() stm32_backup_domain_enable_access() LL_RCC_LSE_SetDriveCapability() LL_RCC_LSE_EnableBypass() LL_RCC_LSE_Enable() LL_RCC_LSE_IsReady() LL_RCC_LSE_EnablePropagation() LL_RCC_LSE_IsPropagationReady() stm32_backup_domain_disable_access() z_stm32_hsem_unlock() LL_RCC_HSI14_Enable() LL_RCC_HSI14_IsReady() LL_APB2_GRP1_EnableClock() LL_SYSCFG_VREFINT_EnableHSI48() LL_RCC_HSI48_Enable() LL_RCC_HSI48_IsReady() set_up_plls() DT_PROP() DT_NODELABEL() ahb_prescaler() MHZ() LL_RCC_SetAHBPrescaler() LL_RCC_SetSysClkSource() LL_RCC_GetSysClkSource() stm32_clock_switch_to_hsi() LL_RCC_SetAPB1Prescaler() apb1_prescaler() LL_RCC_SetAPB2Prescaler() apb2_prescaler() LL_C2_RCC_SetAHBPrescaler() LL_RCC_SetAHB3Prescaler() LL_RCC_SetAHB4Prescaler() LL_RCC_SetADCClockSource() adc12_prescaler() adc34_prescaler() ted@localhost:~/projects/zephyr-project/zephyr/drivers$