# Static Call Graph for image .\obj\SPI_Flash_sb_MSS_CM3_app.axf

#<CALLGRAPH># ARM Linker, 5050169: Last Updated: Fri Mar 04 14:57:03 2016

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

### Call chain for Maximum Stack Depth:

main ⇒ Init ⇒ Flash_write ⇒ Init (Cycle)

### Mutually Recursive functions

- Flash_write ⇒ Init
- NMI_Handler ⇒ NMI_Handler
- HardFault_Handler ⇒ HardFault_Handler
- MemManage_Handler ⇒ MemManage_Handler
- BusFault_Handler ⇒ BusFault_Handler
- UsageFault_Handler ⇒ UsageFault_Handler
- SVC_Handler ⇒ SVC_Handler
- DebugMon_Handler ⇒ DebugMon_Handler
- PendSV_Handler ⇒ PendSV_Handler
- SysTick_Handler ⇒ SysTick_Handler
- CAN_IRQHandler ⇒ CAN_IRQHandler

  ### Function Pointers

  - BusFault_Handler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - CAN_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - CacheError_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - ComBlk_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - CommSwitchError_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - DDR_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - DMA_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - DebugMon_Handler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - ECC_Error_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - ENVM0_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - ENVM1_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - EthernetMAC_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FAB_PLL_LockLost_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FAB_PLL_Lock_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FIC64_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq0_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq10_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq11_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq12_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq13_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq14_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq15_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq1_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq2_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq3_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq4_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq5_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq6_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq7_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq8_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - FabricIrq9_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO0_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO10_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO11_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO12_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO13_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO14_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO15_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO16_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO17_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO18_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO19_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO1_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO20_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO21_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO22_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO23_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO24_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO25_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO26_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO27_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO28_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO29_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO2_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO30_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO31_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO3_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO4_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO5_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO6_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO7_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO8_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - GPIO9_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - HPDMA_Complete_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - HPDMA_Error_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - HardFault_Handler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - I2C0_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - I2C0_SMBAlert_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - I2C0_SMBus_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - I2C1_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - I2C1_SMBAlert_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - I2C1_SMBus_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - MDDR_IOCalib_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - MemManage_Handler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - NMI_Handler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - PLL_LockLost_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - PLL_Lock_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - PendSV_Handler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - RTC_Wakeup_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - Reset_Handler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - SPI0_IRQHandler from mss_spi.o(.text) referenced from startup_m2sxxx.o(RESET)
  - SPI1_IRQHandler from mss_spi.o(.text) referenced from startup_m2sxxx.o(RESET)
  - SVC_Handler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - SysTick_Handler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - SystemInit from system_m2sxxx.o(.text) referenced from startup_m2sxxx.o(.text)
  - Timer1_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - Timer2_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - UART0_IRQHandler from mss_uart.o(.text) referenced from startup_m2sxxx.o(RESET)
  - UART1_IRQHandler from mss_uart.o(.text) referenced from startup_m2sxxx.o(RESET)
  - USB_DMA_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - USB_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - UsageFault_Handler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - WdogWakeup_IRQHandler from startup_m2sxxx.o(.text) referenced from startup_m2sxxx.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_m2sxxx.o(.text)
  - default_tx_handler from mss_uart.o(.text) referenced 2 times from mss_uart.o(.text)
  - fputc from retarget.o(.text) referenced from printf1.o(i.__0printf$1)
  - low_level_init from low_level_init.o(.text) referenced from startup_m2sxxx.o(.text)
  - main from main.o(.text) referenced from entry9a.o(.ARM.Collect$$$$0000000B)

  ### Global Symbols

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

  - startup_m2sxxx.o(.text)

  _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]

  - >> __scatterload

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

  - >> __scatterload

  _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))

  Flash_read (Thumb, 108 bytes, Stack size 8 bytes, main.o(.text))
  [Stack]

  - Max Depth = 168
  - Call Chain = Flash_read ⇒ FLASH_read ⇒ wait_ready ⇒ MSS_SPI_transfer_block ⇒ recover_from_rx_overflow
  [Calls]
  - >> __2printf
  - >> FLASH_read
  [Called By]
  - >> Init

  UART_Polled_Rx (Thumb, 36 bytes, Stack size 8 bytes, main.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = UART_Polled_Rx
  [Called By]
  - >> scannumber

  scannumber (Thumb, 78 bytes, Stack size 32 bytes, main.o(.text))
  [Stack]

  - Max Depth = 120
  - Call Chain = scannumber ⇒ atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> UART_Polled_Rx
  - >> atoi
  [Called By]
  - >> Init
  - >> Flash_write

  Flash_write (Thumb, 144 bytes, Stack size 8 bytes, main.o(.text))
  [Stack]

  - Max Depth = 712 + In Cycle
  - Call Chain = Flash_write ⇒ Init (Cycle)
  [Calls]
  - >> __2printf
  - >> MSS_UART_polled_tx_string
  - >> FLASH_program
  - >> FLASH_erase_64k_block
  - >> Init
  - >> scannumber
  [Called By]
  - >> Init

  Init (Thumb, 56 bytes, Stack size 8 bytes, main.o(.text))
  [Stack]

  - Max Depth = 720
  - Call Chain = Init ⇒ Flash_write ⇒ Init (Cycle)
  [Calls]
  - >> MSS_UART_polled_tx_string
  - >> Flash_write
  - >> scannumber
  - >> Flash_read
  [Called By]
  - >> main
  - >> Flash_write

  main (Thumb, 50 bytes, Stack size 8 bytes, main.o(.text))
  [Stack]

  - Max Depth = 728
  - Call Chain = main ⇒ Init ⇒ Flash_write ⇒ Init (Cycle)
  [Calls]
  - >> MSS_UART_polled_tx_string
  - >> MSS_UART_init
  - >> FLASH_init
  - >> FLASH_global_unprotect
  - >> Init
  [Address Reference Count : 1]
  - entry9a.o(.ARM.Collect$$$$0000000B)

  MSS_UART_init (Thumb, 60 bytes, Stack size 16 bytes, mss_uart.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = MSS_UART_init ⇒ global_init ⇒ config_baud_divisors ⇒ SystemCoreClockUpdate
  [Calls]
  - >> clear_bit_reg8
  - >> global_init
  [Called By]
  - >> main
  - >> sendchar

  MSS_UART_lin_init (Thumb, 56 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8
  - >> set_bit_reg8
  - >> global_init

  MSS_UART_irda_init (Thumb, 158 bytes, Stack size 32 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8
  - >> set_bit_reg8
  - >> global_init

  MSS_UART_smartcard_init (Thumb, 76 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8
  - >> set_bit_reg8
  - >> global_init

  MSS_UART_polled_tx (Thumb, 108 bytes, Stack size 20 bytes, mss_uart.o(.text), UNUSED)

  MSS_UART_polled_tx_string (Thumb, 68 bytes, Stack size 16 bytes, mss_uart.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = MSS_UART_polled_tx_string
  [Called By]
  - >> main
  - >> Init
  - >> Flash_write

  MSS_UART_irq_tx (Thumb, 64 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_tx_complete (Thumb, 42 bytes, Stack size 0 bytes, mss_uart.o(.text), UNUSED)

  MSS_UART_get_rx (Thumb, 66 bytes, Stack size 12 bytes, mss_uart.o(.text), UNUSED)
  [Called By]

  - >> fgetc

  MSS_UART_enable_irq (Thumb, 76 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_disable_irq (Thumb, 90 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> NVIC_ClearPendingIRQ

  MSS_UART_set_rx_handler (Thumb, 70 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_set_loopback (Thumb, 118 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8
  - >> set_bit_reg8

  UART0_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, mss_uart.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = UART0_IRQHandler ⇒ MSS_UART_isr
  [Calls]
  - >> MSS_UART_isr
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  UART1_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, mss_uart.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = UART1_IRQHandler ⇒ MSS_UART_isr
  [Calls]
  - >> MSS_UART_isr
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  MSS_UART_set_rxstatus_handler (Thumb, 50 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_set_tx_handler (Thumb, 56 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_set_modemstatus_handler (Thumb, 66 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_fill_tx_fifo (Thumb, 68 bytes, Stack size 20 bytes, mss_uart.o(.text), UNUSED)

  MSS_UART_get_rx_status (Thumb, 38 bytes, Stack size 0 bytes, mss_uart.o(.text), UNUSED)

  MSS_UART_get_modem_status (Thumb, 22 bytes, Stack size 0 bytes, mss_uart.o(.text), UNUSED)

  MSS_UART_get_tx_status (Thumb, 32 bytes, Stack size 0 bytes, mss_uart.o(.text), UNUSED)

  MSS_UART_set_break (Thumb, 30 bytes, Stack size 8 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8

  MSS_UART_clear_break (Thumb, 30 bytes, Stack size 8 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8

  MSS_UART_set_pidpei_handler (Thumb, 52 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_set_linbreak_handler (Thumb, 52 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_set_linsync_handler (Thumb, 52 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_set_nack_handler (Thumb, 52 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_set_rx_timeout_handler (Thumb, 52 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_EnableIRQ

  MSS_UART_enable_half_duplex (Thumb, 30 bytes, Stack size 8 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8

  MSS_UART_disable_half_duplex (Thumb, 30 bytes, Stack size 8 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8

  MSS_UART_set_rx_endian (Thumb, 52 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8
  - >> set_bit_reg8

  MSS_UART_set_tx_endian (Thumb, 52 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8
  - >> set_bit_reg8

  MSS_UART_set_filter_length (Thumb, 24 bytes, Stack size 0 bytes, mss_uart.o(.text), UNUSED)

  MSS_UART_enable_afm (Thumb, 30 bytes, Stack size 8 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8

  MSS_UART_disable_afm (Thumb, 30 bytes, Stack size 8 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8

  MSS_UART_enable_afclear (Thumb, 30 bytes, Stack size 8 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8

  MSS_UART_disable_afclear (Thumb, 30 bytes, Stack size 8 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8

  MSS_UART_enable_rx_timeout (Thumb, 38 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8

  MSS_UART_disable_rx_timeout (Thumb, 30 bytes, Stack size 8 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8

  MSS_UART_enable_tx_time_guard (Thumb, 38 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> set_bit_reg8

  MSS_UART_disable_tx_time_guard (Thumb, 30 bytes, Stack size 8 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8

  MSS_UART_set_address (Thumb, 20 bytes, Stack size 0 bytes, mss_uart.o(.text), UNUSED)

  MSS_UART_set_ready_mode (Thumb, 60 bytes, Stack size 16 bytes, mss_uart.o(.text), UNUSED)
  [Calls]

  - >> clear_bit_reg8
  - >> set_bit_reg8

  MSS_UART_set_usart_mode (Thumb, 48 bytes, Stack size 0 bytes, mss_uart.o(.text), UNUSED)

  FLASH_init (Thumb, 28 bytes, Stack size 8 bytes, winbondflash.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = FLASH_init ⇒ MSS_SPI_configure_master_mode
  [Calls]
  - >> MSS_SPI_init
  - >> MSS_SPI_configure_master_mode
  [Called By]
  - >> main

  FLASH_read_device_id (Thumb, 72 bytes, Stack size 32 bytes, winbondflash.o(.text), UNUSED)
  [Calls]

  - >> MSS_SPI_transfer_block
  - >> MSS_SPI_set_slave_select
  - >> MSS_SPI_clear_slave_select

  FLASH_read (Thumb, 84 bytes, Stack size 32 bytes, winbondflash.o(.text))
  [Stack]

  - Max Depth = 160
  - Call Chain = FLASH_read ⇒ wait_ready ⇒ MSS_SPI_transfer_block ⇒ recover_from_rx_overflow
  [Calls]
  - >> MSS_SPI_transfer_block
  - >> MSS_SPI_set_slave_select
  - >> MSS_SPI_clear_slave_select
  - >> wait_ready
  [Called By]
  - >> Flash_read

  FLASH_global_unprotect (Thumb, 82 bytes, Stack size 16 bytes, winbondflash.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = FLASH_global_unprotect ⇒ wait_ready ⇒ MSS_SPI_transfer_block ⇒ recover_from_rx_overflow
  [Calls]
  - >> MSS_SPI_transfer_block
  - >> MSS_SPI_set_slave_select
  - >> MSS_SPI_clear_slave_select
  - >> wait_ready
  [Called By]
  - >> main

  FLASH_chip_erase (Thumb, 72 bytes, Stack size 16 bytes, winbondflash.o(.text), UNUSED)
  [Calls]

  - >> MSS_SPI_transfer_block
  - >> MSS_SPI_set_slave_select
  - >> MSS_SPI_clear_slave_select
  - >> wait_ready

  FLASH_erase_4k_block (Thumb, 96 bytes, Stack size 16 bytes, winbondflash.o(.text), UNUSED)
  [Calls]

  - >> MSS_SPI_transfer_block
  - >> MSS_SPI_set_slave_select
  - >> MSS_SPI_clear_slave_select
  - >> wait_ready

  FLASH_erase_64k_block (Thumb, 96 bytes, Stack size 16 bytes, winbondflash.o(.text))
  [Stack]

  - Max Depth = 144
  - Call Chain = FLASH_erase_64k_block ⇒ wait_ready ⇒ MSS_SPI_transfer_block ⇒ recover_from_rx_overflow
  [Calls]
  - >> MSS_SPI_transfer_block
  - >> MSS_SPI_set_slave_select
  - >> MSS_SPI_clear_slave_select
  - >> wait_ready
  [Called By]
  - >> Flash_write

  write_cmd_data (Thumb, 104 bytes, Stack size 552 bytes, winbondflash.o(.text))
  [Stack]

  - Max Depth = 664
  - Call Chain = write_cmd_data ⇒ MSS_SPI_transfer_block ⇒ recover_from_rx_overflow
  [Calls]
  - >> MSS_SPI_tx_done
  - >> MSS_SPI_transfer_block
  [Called By]
  - >> FLASH_program

  FLASH_program (Thumb, 260 bytes, Stack size 40 bytes, winbondflash.o(.text))
  [Stack]

  - Max Depth = 704
  - Call Chain = FLASH_program ⇒ write_cmd_data ⇒ MSS_SPI_transfer_block ⇒ recover_from_rx_overflow
  [Calls]
  - >> MSS_SPI_transfer_block
  - >> MSS_SPI_set_slave_select
  - >> MSS_SPI_clear_slave_select
  - >> write_cmd_data
  - >> wait_ready
  [Called By]
  - >> Flash_write

  FLASH_get_status (Thumb, 28 bytes, Stack size 16 bytes, winbondflash.o(.text), UNUSED)
  [Calls]

  - >> MSS_SPI_transfer_block

  SystemInit (Thumb, 24 bytes, Stack size 8 bytes, system_m2sxxx.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = SystemInit ⇒ silicon_workarounds
  [Calls]
  - >> mscc_post_hw_cfg_init
  - >> silicon_workarounds
  [Address Reference Count : 1]
  - startup_m2sxxx.o(.text)

  SystemCoreClockUpdate (Thumb, 164 bytes, Stack size 32 bytes, system_m2sxxx.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = SystemCoreClockUpdate
  [Calls]
  - >> get_rcosc_25_50mhz_frequency
  - >> set_clock_frequency_globals
  [Called By]
  - >> config_baud_divisors

  MSS_SPI_init (Thumb, 146 bytes, Stack size 16 bytes, mss_spi.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = MSS_SPI_init
  [Calls]
  - >> __aeabi_memclr4
  - >> NVIC_ClearPendingIRQ
  - >> NVIC_DisableIRQ
  [Called By]
  - >> FLASH_init

  MSS_SPI_configure_slave_mode (Thumb, 106 bytes, Stack size 16 bytes, mss_spi.o(.text), UNUSED)
  [Calls]

  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ

  MSS_SPI_configure_master_mode (Thumb, 166 bytes, Stack size 24 bytes, mss_spi.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = MSS_SPI_configure_master_mode
  [Calls]
  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ
  [Called By]
  - >> FLASH_init

  MSS_SPI_set_slave_select (Thumb, 118 bytes, Stack size 16 bytes, mss_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = MSS_SPI_set_slave_select ⇒ recover_from_rx_overflow
  [Calls]
  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ
  - >> recover_from_rx_overflow
  [Called By]
  - >> FLASH_erase_4k_block
  - >> FLASH_chip_erase
  - >> FLASH_read_device_id
  - >> FLASH_read
  - >> FLASH_program
  - >> FLASH_global_unprotect
  - >> FLASH_erase_64k_block

  MSS_SPI_clear_slave_select (Thumb, 54 bytes, Stack size 16 bytes, mss_spi.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = MSS_SPI_clear_slave_select ⇒ recover_from_rx_overflow
  [Calls]
  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ
  - >> recover_from_rx_overflow
  [Called By]
  - >> FLASH_erase_4k_block
  - >> FLASH_chip_erase
  - >> FLASH_read_device_id
  - >> FLASH_read
  - >> FLASH_program
  - >> FLASH_global_unprotect
  - >> FLASH_erase_64k_block

  MSS_SPI_transfer_frame (Thumb, 86 bytes, Stack size 12 bytes, mss_spi.o(.text), UNUSED)

  MSS_SPI_transfer_block (Thumb, 358 bytes, Stack size 72 bytes, mss_spi.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = MSS_SPI_transfer_block ⇒ recover_from_rx_overflow
  [Calls]
  - >> recover_from_rx_overflow
  [Called By]
  - >> FLASH_get_status
  - >> write_cmd_data
  - >> FLASH_erase_4k_block
  - >> FLASH_chip_erase
  - >> FLASH_read_device_id
  - >> wait_ready
  - >> FLASH_read
  - >> FLASH_program
  - >> FLASH_global_unprotect
  - >> FLASH_erase_64k_block

  MSS_SPI_set_frame_rx_handler (Thumb, 118 bytes, Stack size 16 bytes, mss_spi.o(.text), UNUSED)
  [Calls]

  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ

  MSS_SPI_set_slave_tx_frame (Thumb, 132 bytes, Stack size 16 bytes, mss_spi.o(.text), UNUSED)
  [Calls]

  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ

  MSS_SPI_set_slave_block_buffers (Thumb, 344 bytes, Stack size 40 bytes, mss_spi.o(.text), UNUSED)
  [Calls]

  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ
  - >> recover_from_rx_overflow

  MSS_SPI_set_cmd_handler (Thumb, 112 bytes, Stack size 16 bytes, mss_spi.o(.text), UNUSED)
  [Calls]

  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ
  - >> fill_slave_tx_fifo

  MSS_SPI_set_cmd_response (Thumb, 28 bytes, Stack size 16 bytes, mss_spi.o(.text), UNUSED)
  [Calls]

  - >> fill_slave_tx_fifo

  MSS_SPI_enable (Thumb, 34 bytes, Stack size 8 bytes, mss_spi.o(.text), UNUSED)
  [Calls]

  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ

  MSS_SPI_disable (Thumb, 34 bytes, Stack size 8 bytes, mss_spi.o(.text), UNUSED)
  [Calls]

  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ

  MSS_SPI_set_transfer_byte_count (Thumb, 66 bytes, Stack size 16 bytes, mss_spi.o(.text), UNUSED)
  [Calls]

  - >> NVIC_DisableIRQ
  - >> NVIC_EnableIRQ

  MSS_SPI_tx_done (Thumb, 12 bytes, Stack size 0 bytes, mss_spi.o(.text))
  [Called By]

  - >> write_cmd_data

  SPI0_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, mss_spi.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = SPI0_IRQHandler ⇒ mss_spi_isr ⇒ recover_from_rx_overflow
  [Calls]
  - >> mss_spi_isr
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  SPI1_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, mss_spi.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = SPI1_IRQHandler ⇒ mss_spi_isr ⇒ recover_from_rx_overflow
  [Calls]
  - >> mss_spi_isr
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  Reset_Handler (Thumb, 112 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> fill_memory
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> NMI_Handler
  [Called By]
  - >> NMI_Handler
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> HardFault_Handler
  [Called By]
  - >> HardFault_Handler
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> MemManage_Handler
  [Called By]
  - >> MemManage_Handler
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> BusFault_Handler
  [Called By]
  - >> BusFault_Handler
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> UsageFault_Handler
  [Called By]
  - >> UsageFault_Handler
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> SVC_Handler
  [Called By]
  - >> SVC_Handler
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> DebugMon_Handler
  [Called By]
  - >> DebugMon_Handler
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> PendSV_Handler
  [Called By]
  - >> PendSV_Handler
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  SysTick_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> SysTick_Handler
  [Called By]
  - >> SysTick_Handler
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

  CAN_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Calls]

  - >> CAN_IRQHandler
  [Called By]
  - >> CAN_IRQHandler
  [Address Reference Count : 1]
  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

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

  - startup_m2sxxx.o(RESET)

  mscc_post_hw_cfg_init (Thumb, 2 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Called By]

  - >> SystemInit

  low_level_init (Thumb, 38 bytes, Stack size 12 bytes, low_level_init.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = low_level_init
  [Address Reference Count : 1]
  - startup_m2sxxx.o(.text)

  __aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
  [Called By]

  - >> _memset$wrapper
  - >> __aeabi_memclr

  __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_memset

  __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
  [Called By]

  - >> MSS_SPI_init

  __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]

  - >> __aeabi_memset

  atoi (Thumb, 26 bytes, Stack size 16 bytes, atoi.o(.text))
  [Stack]

  - Max Depth = 88
  - Call Chain = atoi ⇒ strtol ⇒ _strtoul
  [Calls]
  - >> strtol
  - >> __aeabi_errno_addr
  [Called By]
  - >> scannumber

  sendchar (Thumb, 60 bytes, Stack size 16 bytes, retarget.o(.text))
  [Stack]

  - Max Depth = 112
  - Call Chain = sendchar ⇒ MSS_UART_init ⇒ global_init ⇒ config_baud_divisors ⇒ SystemCoreClockUpdate
  [Calls]
  - >> MSS_UART_init
  [Called By]
  - >> fputc
  - >> _ttywrch

  fputc (Thumb, 14 bytes, Stack size 16 bytes, retarget.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = fputc ⇒ sendchar ⇒ MSS_UART_init ⇒ global_init ⇒ config_baud_divisors ⇒ SystemCoreClockUpdate
  [Calls]
  - >> sendchar
  [Address Reference Count : 1]
  - printf1.o(i.__0printf$1)

  fgetc (Thumb, 30 bytes, Stack size 16 bytes, retarget.o(.text), UNUSED)
  [Calls]

  - >> MSS_UART_get_rx

  ferror (Thumb, 8 bytes, Stack size 0 bytes, retarget.o(.text), UNUSED)

  _ttywrch (Thumb, 12 bytes, Stack size 8 bytes, retarget.o(.text), UNUSED)
  [Calls]

  - >> sendchar

  _sys_exit (Thumb, 4 bytes, Stack size 0 bytes, retarget.o(.text), UNUSED)

  __aeabi_uidiv (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)

  __aeabi_uidivmod (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
  [Called By]

  - >> _printf_core

  strtol (Thumb, 112 bytes, Stack size 32 bytes, strtol.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = strtol ⇒ _strtoul
  [Calls]
  - >> _strtoul
  - >> __rt_ctype_table
  - >> __aeabi_errno_addr
  [Called By]
  - >> atoi

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

  - >> __main_after_scatterload
  [Called By]
  - >> _main_scatterload

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

  __rt_ctype_table (Thumb, 4 bytes, Stack size 0 bytes, ctype_o.o(.text))
  [Called By]

  - >> strtol

  _strtoul (Thumb, 158 bytes, Stack size 40 bytes, _strtoul.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = _strtoul
  [Calls]
  - >> _chval
  - >> __aeabi_errno_addr
  [Called By]
  - >> strtol

  _chval (Thumb, 28 bytes, Stack size 0 bytes, _chval.o(.text))
  [Called By]

  - >> _strtoul

  __0printf$1 (Thumb, 22 bytes, Stack size 24 bytes, printf1.o(i.__0printf$1), UNUSED)
  [Calls]

  - >> _printf_core

  __1printf$1 (Thumb, 0 bytes, Stack size 24 bytes, printf1.o(i.__0printf$1), UNUSED)

  __2printf (Thumb, 0 bytes, Stack size 24 bytes, printf1.o(i.__0printf$1))
  [Stack]

  - Max Depth = 24
  - Call Chain = __2printf
  [Called By]
  - >> Flash_write
  - >> Flash_read

  __aeabi_errno_addr (Thumb, 4 bytes, Stack size 0 bytes, errno.o(i.__aeabi_errno_addr))
  [Called By]

  - >> _strtoul
  - >> strtol
  - >> atoi

  __rt_errno_addr (Thumb, 0 bytes, Stack size 0 bytes, errno.o(i.__aeabi_errno_addr), UNUSED)

  __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)

  ### Local Symbols

  default_tx_handler (Thumb, 108 bytes, Stack size 16 bytes, mss_uart.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = default_tx_handler ⇒ clear_bit_reg8
  [Calls]
  - >> clear_bit_reg8
  [Address Reference Count : 1]
  - mss_uart.o(.text)

  config_baud_divisors (Thumb, 192 bytes, Stack size 32 bytes, mss_uart.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = config_baud_divisors ⇒ SystemCoreClockUpdate
  [Calls]
  - >> SystemCoreClockUpdate
  - >> clear_bit_reg8
  - >> set_bit_reg8
  [Called By]
  - >> global_init

  global_init (Thumb, 314 bytes, Stack size 16 bytes, mss_uart.o(.text))
  [Stack]

  - Max Depth = 80
  - Call Chain = global_init ⇒ config_baud_divisors ⇒ SystemCoreClockUpdate
  [Calls]
  - >> clear_bit_reg8
  - >> set_bit_reg8
  - >> NVIC_ClearPendingIRQ
  - >> config_baud_divisors
  [Called By]
  - >> MSS_UART_smartcard_init
  - >> MSS_UART_irda_init
  - >> MSS_UART_lin_init
  - >> MSS_UART_init

  MSS_UART_isr (Thumb, 230 bytes, Stack size 16 bytes, mss_uart.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = MSS_UART_isr
  [Calls]
  - >> read_bit_reg8
  [Called By]
  - >> UART1_IRQHandler
  - >> UART0_IRQHandler

  NVIC_EnableIRQ (Thumb, 22 bytes, Stack size 0 bytes, mss_uart.o(.text), UNUSED)
  [Called By]

  - >> MSS_UART_set_rx_timeout_handler
  - >> MSS_UART_set_nack_handler
  - >> MSS_UART_set_linsync_handler
  - >> MSS_UART_set_linbreak_handler
  - >> MSS_UART_set_pidpei_handler
  - >> MSS_UART_set_modemstatus_handler
  - >> MSS_UART_set_tx_handler
  - >> MSS_UART_set_rxstatus_handler
  - >> MSS_UART_set_rx_handler
  - >> MSS_UART_enable_irq
  - >> MSS_UART_irq_tx

  NVIC_ClearPendingIRQ (Thumb, 18 bytes, Stack size 0 bytes, mss_uart.o(.text))
  [Called By]

  - >> MSS_UART_set_rx_timeout_handler
  - >> MSS_UART_set_nack_handler
  - >> MSS_UART_set_linsync_handler
  - >> MSS_UART_set_linbreak_handler
  - >> MSS_UART_set_pidpei_handler
  - >> MSS_UART_set_modemstatus_handler
  - >> MSS_UART_set_tx_handler
  - >> MSS_UART_set_rxstatus_handler
  - >> MSS_UART_set_rx_handler
  - >> MSS_UART_disable_irq
  - >> MSS_UART_enable_irq
  - >> MSS_UART_irq_tx
  - >> global_init

  set_bit_reg8 (Thumb, 26 bytes, Stack size 8 bytes, mss_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = set_bit_reg8
  [Called By]
  - >> MSS_UART_set_ready_mode
  - >> MSS_UART_enable_tx_time_guard
  - >> MSS_UART_enable_rx_timeout
  - >> MSS_UART_enable_afclear
  - >> MSS_UART_enable_afm
  - >> MSS_UART_set_tx_endian
  - >> MSS_UART_set_rx_endian
  - >> MSS_UART_enable_half_duplex
  - >> MSS_UART_set_rx_timeout_handler
  - >> MSS_UART_set_nack_handler
  - >> MSS_UART_set_linsync_handler
  - >> MSS_UART_set_linbreak_handler
  - >> MSS_UART_set_pidpei_handler
  - >> MSS_UART_set_break
  - >> MSS_UART_set_modemstatus_handler
  - >> MSS_UART_set_tx_handler
  - >> MSS_UART_set_rxstatus_handler
  - >> MSS_UART_set_loopback
  - >> MSS_UART_set_rx_handler
  - >> MSS_UART_irq_tx
  - >> MSS_UART_smartcard_init
  - >> MSS_UART_irda_init
  - >> MSS_UART_lin_init
  - >> global_init
  - >> config_baud_divisors

  clear_bit_reg8 (Thumb, 26 bytes, Stack size 8 bytes, mss_uart.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = clear_bit_reg8
  [Called By]
  - >> MSS_UART_set_ready_mode
  - >> MSS_UART_disable_tx_time_guard
  - >> MSS_UART_disable_rx_timeout
  - >> MSS_UART_disable_afclear
  - >> MSS_UART_disable_afm
  - >> MSS_UART_set_tx_endian
  - >> MSS_UART_set_rx_endian
  - >> MSS_UART_disable_half_duplex
  - >> MSS_UART_clear_break
  - >> MSS_UART_set_loopback
  - >> MSS_UART_smartcard_init
  - >> MSS_UART_irda_init
  - >> MSS_UART_lin_init
  - >> global_init
  - >> config_baud_divisors
  - >> default_tx_handler
  - >> MSS_UART_init

  read_bit_reg8 (Thumb, 26 bytes, Stack size 0 bytes, mss_uart.o(.text))
  [Called By]

  - >> MSS_UART_isr

  wait_ready (Thumb, 44 bytes, Stack size 16 bytes, winbondflash.o(.text))
  [Stack]

  - Max Depth = 128
  - Call Chain = wait_ready ⇒ MSS_SPI_transfer_block ⇒ recover_from_rx_overflow
  [Calls]
  - >> MSS_SPI_transfer_block
  [Called By]
  - >> FLASH_erase_4k_block
  - >> FLASH_chip_erase
  - >> FLASH_read
  - >> FLASH_program
  - >> FLASH_global_unprotect
  - >> FLASH_erase_64k_block

  m2s050_rev_a_workarounds (Thumb, 32 bytes, Stack size 0 bytes, system_m2sxxx.o(.text))
  [Called By]

  - >> silicon_workarounds

  get_silicon_revision (Thumb, 38 bytes, Stack size 0 bytes, system_m2sxxx.o(.text))
  [Called By]

  - >> silicon_workarounds

  silicon_workarounds (Thumb, 36 bytes, Stack size 8 bytes, system_m2sxxx.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = silicon_workarounds
  [Calls]
  - >> get_silicon_revision
  - >> m2s050_rev_a_workarounds
  [Called By]
  - >> SystemInit

  set_clock_frequency_globals (Thumb, 32 bytes, Stack size 0 bytes, system_m2sxxx.o(.text))
  [Called By]

  - >> SystemCoreClockUpdate

  get_rcosc_25_50mhz_frequency (Thumb, 20 bytes, Stack size 0 bytes, system_m2sxxx.o(.text))
  [Called By]

  - >> SystemCoreClockUpdate

  recover_from_rx_overflow (Thumb, 206 bytes, Stack size 40 bytes, mss_spi.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = recover_from_rx_overflow
  [Calls]
  - >> NVIC_ClearPendingIRQ
  [Called By]
  - >> MSS_SPI_set_slave_block_buffers
  - >> mss_spi_isr
  - >> MSS_SPI_transfer_block
  - >> MSS_SPI_set_slave_select
  - >> MSS_SPI_clear_slave_select

  fill_slave_tx_fifo (Thumb, 128 bytes, Stack size 0 bytes, mss_spi.o(.text))
  [Called By]

  - >> MSS_SPI_set_cmd_response
  - >> MSS_SPI_set_cmd_handler
  - >> mss_spi_isr

  read_slave_rx_fifo (Thumb, 122 bytes, Stack size 16 bytes, mss_spi.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = read_slave_rx_fifo
  [Called By]
  - >> mss_spi_isr

  mss_spi_isr (Thumb, 432 bytes, Stack size 24 bytes, mss_spi.o(.text))
  [Stack]

  - Max Depth = 64
  - Call Chain = mss_spi_isr ⇒ recover_from_rx_overflow
  [Calls]
  - >> read_slave_rx_fifo
  - >> fill_slave_tx_fifo
  - >> recover_from_rx_overflow
  [Called By]
  - >> SPI1_IRQHandler
  - >> SPI0_IRQHandler

  NVIC_EnableIRQ (Thumb, 22 bytes, Stack size 0 bytes, mss_spi.o(.text))
  [Called By]

  - >> MSS_SPI_set_transfer_byte_count
  - >> MSS_SPI_disable
  - >> MSS_SPI_enable
  - >> MSS_SPI_set_cmd_handler
  - >> MSS_SPI_set_slave_block_buffers
  - >> MSS_SPI_set_slave_tx_frame
  - >> MSS_SPI_set_frame_rx_handler
  - >> MSS_SPI_configure_slave_mode
  - >> MSS_SPI_set_slave_select
  - >> MSS_SPI_configure_master_mode
  - >> MSS_SPI_clear_slave_select

  NVIC_DisableIRQ (Thumb, 18 bytes, Stack size 0 bytes, mss_spi.o(.text))
  [Called By]

  - >> MSS_SPI_set_transfer_byte_count
  - >> MSS_SPI_disable
  - >> MSS_SPI_enable
  - >> MSS_SPI_set_cmd_handler
  - >> MSS_SPI_set_slave_block_buffers
  - >> MSS_SPI_set_slave_tx_frame
  - >> MSS_SPI_set_frame_rx_handler
  - >> MSS_SPI_configure_slave_mode
  - >> MSS_SPI_set_slave_select
  - >> MSS_SPI_init
  - >> MSS_SPI_configure_master_mode
  - >> MSS_SPI_clear_slave_select

  NVIC_ClearPendingIRQ (Thumb, 18 bytes, Stack size 0 bytes, mss_spi.o(.text))
  [Called By]

  - >> recover_from_rx_overflow
  - >> MSS_SPI_init

  fill_memory (Thumb, 118 bytes, Stack size 0 bytes, startup_m2sxxx.o(.text))
  [Called By]

  - >> Reset_Handler

  _printf_core (Thumb, 336 bytes, Stack size 88 bytes, printf1.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod
  [Called By]
  - >> __0printf$1

  ### Undefined Global Symbols