Static Call Graph for image ..\OBJ\bootloader.axf



#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Tue Aug 08 08:48:24 2023

Maximum Stack Usage = 1088 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

main ⇒ BootLoader_Brance ⇒ clear_ota_message_config_block ⇒ W25Q32_Erase64K ⇒ W25Q32_Enable ⇒ W25Q32_WaitBusy ⇒ SPI0_ReadWriteByte

Mutually Recursive functions

  • ADC0_1_IRQHandler   ⇒   ADC0_1_IRQHandler

    Function Pointers

    Global Symbols

    __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
    [Address Reference Count : 1]

    _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))

    _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))

    [Calls]

    __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))

    [Called By]

    _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))

    _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))

    _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))

    __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))

    __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))

    MSR_SP (Thumb, 6 bytes, Stack size 0 bytes, boot.o(.emb_text))

    [Called By]

    Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    ADC0_1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))

    [Calls]


    [Called By]
    [Address Reference Count : 1]

    ADC2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    CAN0_EWMC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    CAN0_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA0_Channel0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA0_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA0_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA0_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA0_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA0_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA0_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA1_Channel0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA1_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    DMA1_Channel3_4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    EXMC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    EXTI10_15_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    EXTI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    EXTI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    EXTI5_9_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    FMC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    I2C0_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    I2C0_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    LVD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    RCU_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    RTC_Alarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    RTC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    SDIO_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    SPI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TAMPER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER0_BRK_TIMER8_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER0_Channel_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER0_TRG_CMT_TIMER10_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER0_UP_TIMER9_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER7_BRK_TIMER11_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER7_Channel_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER7_TRG_CMT_TIMER13_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    TIMER7_UP_TIMER12_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    UART3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    UART4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    USART0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    USART2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    USBD_HP_CAN0_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    USBD_LP_CAN0_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    USBD_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    WWDGT_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_gd32f10x_xd.o(.text))
    [Address Reference Count : 1]

    __aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

    [Called By]

    __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

    __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

    __aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

    [Calls]

    __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))

    [Called By]

    __aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

    _memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)

    [Calls]

    __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))

    [Calls]


    [Called By]

    __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)

    BootLoader_Brance (Thumb, 150 bytes, Stack size 1040 bytes, boot.o(i.BootLoader_Brance))

    [Stack]


    [Calls]
    [Called By]

    BootLoader_Clear (Thumb, 16 bytes, Stack size 8 bytes, boot.o(i.BootLoader_Clear))

    [Stack]


    [Calls]
    [Called By]

    BusFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, gd32f10x_it.o(i.BusFault_Handler))
    [Address Reference Count : 1]

    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, gd32f10x_it.o(i.DebugMon_Handler))
    [Address Reference Count : 1]

    Delay_Init (Thumb, 10 bytes, Stack size 8 bytes, delay.o(i.Delay_Init))

    [Stack]


    [Calls]
    [Called By]

    GD32_EraseFlash (Thumb, 48 bytes, Stack size 16 bytes, fmc.o(i.GD32_EraseFlash))

    [Stack]


    [Calls]
    [Called By]

    GD32_WriteFlash (Thumb, 38 bytes, Stack size 16 bytes, fmc.o(i.GD32_WriteFlash))

    [Stack]


    [Calls]
    [Called By]

    HardFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, gd32f10x_it.o(i.HardFault_Handler))
    [Address Reference Count : 1]

    LOAD_A (Thumb, 44 bytes, Stack size 8 bytes, boot.o(i.LOAD_A))

    [Stack]


    [Calls]
    [Called By]

    MemManage_Handler (Thumb, 4 bytes, Stack size 0 bytes, gd32f10x_it.o(i.MemManage_Handler))
    [Address Reference Count : 1]

    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, gd32f10x_it.o(i.NMI_Handler))
    [Address Reference Count : 1]

    PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, gd32f10x_it.o(i.PendSV_Handler))
    [Address Reference Count : 1]

    SPI0_Init (Thumb, 94 bytes, Stack size 32 bytes, spi.o(i.SPI0_Init))

    [Stack]


    [Calls]
    [Called By]

    SPI0_Read (Thumb, 28 bytes, Stack size 16 bytes, spi.o(i.SPI0_Read))

    [Stack]


    [Calls]
    [Called By]

    SPI0_ReadWriteByte (Thumb, 50 bytes, Stack size 8 bytes, spi.o(i.SPI0_ReadWriteByte))

    [Stack]


    [Calls]
    [Called By]

    SPI0_Write (Thumb, 26 bytes, Stack size 16 bytes, spi.o(i.SPI0_Write))

    [Stack]


    [Calls]
    [Called By]

    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, gd32f10x_it.o(i.SVC_Handler))
    [Address Reference Count : 1]

    SysTick_Handler (Thumb, 2 bytes, Stack size 0 bytes, gd32f10x_it.o(i.SysTick_Handler))
    [Address Reference Count : 1]

    SystemInit (Thumb, 196 bytes, Stack size 8 bytes, system_gd32f10x.o(i.SystemInit))

    [Stack]


    [Calls]
    [Address Reference Count : 1]

    UsageFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, gd32f10x_it.o(i.UsageFault_Handler))
    [Address Reference Count : 1]

    W25Q32_Enable (Thumb, 30 bytes, Stack size 8 bytes, w25q32.o(i.W25Q32_Enable))

    [Stack]


    [Calls]
    [Called By]

    W25Q32_Erase64K (Thumb, 70 bytes, Stack size 16 bytes, w25q32.o(i.W25Q32_Erase64K))

    [Stack]


    [Calls]
    [Called By]

    W25Q32_Init (Thumb, 36 bytes, Stack size 8 bytes, w25q32.o(i.W25Q32_Init))

    [Stack]


    [Calls]
    [Called By]

    W25Q32_Read (Thumb, 70 bytes, Stack size 24 bytes, w25q32.o(i.W25Q32_Read))

    [Stack]


    [Calls]
    [Called By]

    W25Q32_WaitBusy (Thumb, 44 bytes, Stack size 8 bytes, w25q32.o(i.W25Q32_WaitBusy))

    [Stack]


    [Calls]
    [Called By]

    __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)

    __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)

    __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)

    clear_ota_message_config_block (Thumb, 10 bytes, Stack size 8 bytes, ota_message.o(i.clear_ota_message_config_block))

    [Stack]


    [Calls]
    [Called By]

    fmc_bank0_ready_wait (Thumb, 34 bytes, Stack size 4 bytes, gd32f10x_fmc.o(i.fmc_bank0_ready_wait))

    [Stack]


    [Calls]
    [Called By]

    fmc_bank0_state_get (Thumb, 44 bytes, Stack size 0 bytes, gd32f10x_fmc.o(i.fmc_bank0_state_get))

    [Called By]

    fmc_bank1_ready_wait (Thumb, 34 bytes, Stack size 4 bytes, gd32f10x_fmc.o(i.fmc_bank1_ready_wait))

    [Stack]


    [Calls]
    [Called By]

    fmc_bank1_state_get (Thumb, 44 bytes, Stack size 0 bytes, gd32f10x_fmc.o(i.fmc_bank1_state_get))

    [Called By]

    fmc_lock (Thumb, 34 bytes, Stack size 0 bytes, gd32f10x_fmc.o(i.fmc_lock))

    [Called By]

    fmc_page_erase (Thumb, 222 bytes, Stack size 12 bytes, gd32f10x_fmc.o(i.fmc_page_erase))

    [Stack]


    [Calls]
    [Called By]

    fmc_unlock (Thumb, 52 bytes, Stack size 0 bytes, gd32f10x_fmc.o(i.fmc_unlock))

    [Called By]

    fmc_word_program (Thumb, 178 bytes, Stack size 16 bytes, gd32f10x_fmc.o(i.fmc_word_program))

    [Stack]


    [Calls]
    [Called By]

    get_config_params (Thumb, 4 bytes, Stack size 0 bytes, ota_message.o(i.get_config_params))

    [Called By]

    gpio_bit_reset (Thumb, 4 bytes, Stack size 0 bytes, gd32f10x_gpio.o(i.gpio_bit_reset))

    [Called By]

    gpio_bit_set (Thumb, 4 bytes, Stack size 0 bytes, gd32f10x_gpio.o(i.gpio_bit_set))

    [Called By]

    gpio_deinit (Thumb, 186 bytes, Stack size 8 bytes, gd32f10x_gpio.o(i.gpio_deinit))

    [Stack]


    [Calls]
    [Called By]

    gpio_init (Thumb, 172 bytes, Stack size 20 bytes, gd32f10x_gpio.o(i.gpio_init))

    [Stack]


    [Called By]

    load_ota_message_config_params (Thumb, 36 bytes, Stack size 8 bytes, ota_message.o(i.load_ota_message_config_params))

    [Stack]


    [Calls]
    [Called By]

    main (Thumb, 38 bytes, Stack size 0 bytes, main.o(i.main))

    [Stack]


    [Calls]
    [Address Reference Count : 1]

    nvic_vector_table_set (Thumb, 16 bytes, Stack size 0 bytes, gd32f10x_misc.o(i.nvic_vector_table_set))

    [Called By]

    rcu_periph_clock_enable (Thumb, 28 bytes, Stack size 0 bytes, gd32f10x_rcu.o(i.rcu_periph_clock_enable))

    [Called By]

    rcu_periph_reset_disable (Thumb, 28 bytes, Stack size 0 bytes, gd32f10x_rcu.o(i.rcu_periph_reset_disable))

    [Called By]

    rcu_periph_reset_enable (Thumb, 28 bytes, Stack size 0 bytes, gd32f10x_rcu.o(i.rcu_periph_reset_enable))

    [Called By]

    spi_enable (Thumb, 10 bytes, Stack size 0 bytes, gd32f10x_spi.o(i.spi_enable))

    [Called By]

    spi_i2s_data_receive (Thumb, 8 bytes, Stack size 0 bytes, gd32f10x_spi.o(i.spi_i2s_data_receive))

    [Called By]

    spi_i2s_data_transmit (Thumb, 4 bytes, Stack size 0 bytes, gd32f10x_spi.o(i.spi_i2s_data_transmit))

    [Called By]

    spi_i2s_deinit (Thumb, 82 bytes, Stack size 8 bytes, gd32f10x_spi.o(i.spi_i2s_deinit))

    [Stack]


    [Calls]
    [Called By]

    spi_i2s_flag_get (Thumb, 16 bytes, Stack size 0 bytes, gd32f10x_spi.o(i.spi_i2s_flag_get))

    [Called By]

    spi_init (Thumb, 50 bytes, Stack size 0 bytes, gd32f10x_spi.o(i.spi_init))

    [Called By]

    systick_clksource_set (Thumb, 40 bytes, Stack size 0 bytes, gd32f10x_misc.o(i.systick_clksource_set))

    [Called By]

    Local Symbols

    system_clock_108m_hxtal (Thumb, 182 bytes, Stack size 0 bytes, system_gd32f10x.o(i.system_clock_108m_hxtal))

    [Called By]

    system_clock_config (Thumb, 8 bytes, Stack size 8 bytes, system_gd32f10x.o(i.system_clock_config))

    [Stack]


    [Calls]
    [Called By]

    Undefined Global Symbols