Static Call Graph - [.\output\Full.axf]

# Static Call Graph for image .\output\Full.axf

#<CALLGRAPH># ARM Linker, 4.1 [Build 567]: Last Updated: Wed Mar 07 12:15:26 2012

### Maximum Stack Usage = 160 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

### Call chain for Maximum Stack Depth:

main ⇒ OSInit ⇒ OS_InitTaskIdle ⇒ OSTaskCreateExt ⇒ OS_TCBInit

### Functions with no stack information

- OS_CPU_SR_Save
- OS_CPU_SR_Restore
- OSStartHighRdy
- OSCtxSw
- OSIntCtxSw
- OS_CPU_PendSVHandler

### Mutually Recursive functions

- ADC_IRQHandler ⇒ ADC_IRQHandler

  ### Function Pointers

  - ADC_IRQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - BOD_IRQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - BusFault_Handler from lpc11c14_it.o(.text) referenced from startup_lpc11xx.o(RESET)
  - CAN_IRQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - DebugMon_Handler from lpc11c14_it.o(.text) referenced from startup_lpc11xx.o(RESET)
  - FMC_IRQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - HardFault_Handler from lpc11c14_it.o(.text) referenced from startup_lpc11xx.o(RESET)
  - I2C_IRQHandler from i2c.o(.text) referenced from startup_lpc11xx.o(RESET)
  - MemManage_Handler from lpc11c14_it.o(.text) referenced from startup_lpc11xx.o(RESET)
  - NMI_Handler from lpc11c14_it.o(.text) referenced from startup_lpc11xx.o(RESET)
  - OSTaskSwHook from os_cpu_c.o(.text) referenced from os_cpu_a.o(.text)
  - OS_CPU_PendSVHandler from os_cpu_a.o(.text) referenced from startup_lpc11xx.o(RESET)
  - OS_CPU_SysTickHandler from os_cpu_c.o(.text) referenced from startup_lpc11xx.o(RESET)
  - OS_TaskIdle from os_core.o(.text) referenced from os_core.o(.text)
  - OS_TaskStat from os_core.o(.text) referenced from os_core.o(.text)
  - PIOINT0_IRQHandler from gpio.o(.text) referenced from startup_lpc11xx.o(RESET)
  - PIOINT1_IRQHandler from gpio.o(.text) referenced from startup_lpc11xx.o(RESET)
  - PIOINT2_IRQHandler from gpio.o(.text) referenced from startup_lpc11xx.o(RESET)
  - PIOINT3_IRQHandler from gpio.o(.text) referenced from startup_lpc11xx.o(RESET)
  - Reset_Handler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - SSP0_IRQHandler from ssp.o(.text) referenced from startup_lpc11xx.o(RESET)
  - SSP1_IRQHandler from ssp.o(.text) referenced from startup_lpc11xx.o(RESET)
  - SVC_Handler from lpc11c14_it.o(.text) referenced from startup_lpc11xx.o(RESET)
  - TIMER16_0_IRQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - TIMER16_1_IRQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - TIMER32_0_IRQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - TIMER32_1_IRQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - Task_ACC from main.o(.text) referenced from main.o(.text)
  - Task_ADC from main.o(.text) referenced from main.o(.text)
  - Task_BeepFan from main.o(.text) referenced from main.o(.text)
  - Task_Key from main.o(.text) referenced from main.o(.text)
  - Task_Led from main.o(.text) referenced from main.o(.text)
  - Task_Light from main.o(.text) referenced from main.o(.text)
  - Task_RFid from main.o(.text) referenced from main.o(.text)
  - Task_Seg7Led from main.o(.text) referenced from main.o(.text)
  - Task_Send from main.o(.text) referenced from main.o(.text)
  - Task_Start from main.o(.text) referenced from main.o(.text)
  - Task_Temp_Hum from main.o(.text) referenced from main.o(.text)
  - UART_IRQHandler from uart.o(.text) referenced from startup_lpc11xx.o(RESET)
  - USB_FIQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - USB_IRQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - UsageFault_Handler from lpc11c14_it.o(.text) referenced from startup_lpc11xx.o(RESET)
  - WAKEUP_IRQHandler from startup_lpc11xx.o(.text) referenced 13 times from startup_lpc11xx.o(RESET)
  - WDT_IRQHandler from startup_lpc11xx.o(.text) referenced from startup_lpc11xx.o(RESET)
  - __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_lpc11xx.o(.text)
  - _snputc from printfa.o(i._snputc) referenced from printfa.o(i.__0vsnprintf)
  - fputc from retarget.o(.text) referenced from printfb.o(i.__0printf$bare)
  - main from main.o(.text) referenced from entry7.o(.ARM.Collect$$$$00000007)

  ### Global Symbols

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

  - startup_lpc11xx.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_init (Thumb, 0 bytes, Stack size unknown bytes, entry7.o(.ARM.Collect$$$$00000007))

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

  - startup_lpc11xx.o(RESET)

  ADC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_lpc11xx.o(.text))
  [Calls]

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

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

  Main_PLL_Setup (Thumb, 136 bytes, Stack size 0 bytes, system_lpc11xx.o(.text))
  [Called By]

  - >> SystemInit

  SystemInit (Thumb, 60 bytes, Stack size 4 bytes, system_lpc11xx.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = SystemInit
  [Calls]
  - >> Main_PLL_Setup
  [Called By]
  - >> main

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

  - >> _ttywrch
  - >> fgetc
  - >> fputc

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

  - Max Depth = 8
  - Call Chain = fputc
  [Calls]
  - >> PutCh
  [Address Reference Count : 1]
  - printfb.o(i.__0printf$bare)

  GetCh (Thumb, 34 bytes, Stack size 0 bytes, retarget.o(.text), UNUSED)
  [Called By]

  - >> fgetc

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

  - >> GetCh
  - >> PutCh

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

  - >> PutCh

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

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

  GetCh_NoIRQ (Thumb, 18 bytes, Stack size 0 bytes, retarget.o(.text), UNUSED)

  delay_ms (Thumb, 140 bytes, Stack size 32 bytes, tools.o(.text))
  [Stack]

  - Max Depth = 44
  - Call Chain = delay_ms ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> RFID_Collect
  - >> RFID_Operate
  - >> Read_Temp_Hum

  __0printf$bare (Thumb, 12 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare), UNUSED)
  [Calls]

  - >> _printf_core

  __1printf$bare (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare), UNUSED)

  __2printf (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare))
  [Stack]

  - Max Depth = 8
  - Call Chain = __2printf
  [Called By]
  - >> Task_BeepFan

  __I$use$fp (Thumb, 0 bytes, Stack size 8 bytes, iusefp.o(.text), UNUSED)

  GPIOIntClear (Thumb, 88 bytes, Stack size 0 bytes, gpio.o(.text))
  [Called By]

  - >> PIOINT3_IRQHandler
  - >> PIOINT2_IRQHandler
  - >> PIOINT1_IRQHandler
  - >> PIOINT0_IRQHandler

  GPIOIntStatus (Thumb, 94 bytes, Stack size 8 bytes, gpio.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIOIntStatus
  [Called By]
  - >> PIOINT3_IRQHandler
  - >> PIOINT2_IRQHandler
  - >> PIOINT1_IRQHandler
  - >> PIOINT0_IRQHandler

  PIOINT0_IRQHandler (Thumb, 46 bytes, Stack size 8 bytes, gpio.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = PIOINT0_IRQHandler ⇒ GPIOIntStatus
  [Calls]
  - >> GPIOIntStatus
  - >> GPIOIntClear
  [Address Reference Count : 1]
  - startup_lpc11xx.o(RESET)

  PIOINT1_IRQHandler (Thumb, 46 bytes, Stack size 8 bytes, gpio.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = PIOINT1_IRQHandler ⇒ GPIOIntStatus
  [Calls]
  - >> GPIOIntStatus
  - >> GPIOIntClear
  [Address Reference Count : 1]
  - startup_lpc11xx.o(RESET)

  GPIOSetValue (Thumb, 22 bytes, Stack size 12 bytes, gpio.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = GPIOSetValue
  [Called By]
  - >> SPI752_RegWrite
  - >> SPI752_RegRead
  - >> RFID_Collect
  - >> RFID_Operate
  - >> Read_Temp_Hum
  - >> Seg7Led_Put
  - >> Seg7Led_Init
  - >> SPI_IOConfig
  - >> PIOINT2_IRQHandler
  - >> main
  - >> Task_Led
  - >> Task_BeepFan
  - >> Task_RFid

  PIOINT2_IRQHandler (Thumb, 46 bytes, Stack size 8 bytes, gpio.o(.text))
  [Stack]

  - Max Depth = 40 + Unknown Stack Size
  - Call Chain = PIOINT2_IRQHandler ⇒ OSTimeDlyResume ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OSTimeDlyResume
  - >> GPIOSetValue
  - >> GPIOIntStatus
  - >> GPIOIntClear
  [Address Reference Count : 1]
  - startup_lpc11xx.o(RESET)

  PIOINT3_IRQHandler (Thumb, 66 bytes, Stack size 8 bytes, gpio.o(.text))
  [Stack]

  - Max Depth = 44
  - Call Chain = PIOINT3_IRQHandler ⇒ ZigBee_IRQ_Process ⇒ SPI752_RegRead ⇒ GPIOSetValue
  [Calls]
  - >> ZigBee_IRQ_Process
  - >> GPIOIntStatus
  - >> GPIOIntClear
  [Address Reference Count : 1]
  - startup_lpc11xx.o(RESET)

  GPIOInit (Thumb, 40 bytes, Stack size 8 bytes, gpio.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = GPIOInit
  [Calls]
  - >> NVIC_EnableIRQ
  [Called By]
  - >> main

  GPIOSetInterrupt (Thumb, 446 bytes, Stack size 16 bytes, gpio.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = GPIOSetInterrupt
  [Called By]
  - >> SPI752_Init
  - >> Read_Temp_Hum
  - >> Task_RFid

  GPIOIntEnable (Thumb, 88 bytes, Stack size 0 bytes, gpio.o(.text))
  [Called By]

  - >> SPI752_Init
  - >> RFID_Collect
  - >> Light_Collect
  - >> Temp_Hum_Collect
  - >> Read_Temp_Hum
  - >> Task_RFid

  GPIOIntDisable (Thumb, 144 bytes, Stack size 0 bytes, gpio.o(.text))
  [Called By]

  - >> RFID_Collect
  - >> Light_Collect
  - >> Temp_Hum_Collect

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

  - >> RFID_Collect
  - >> KEY_Read

  GPIOSetDir (Thumb, 78 bytes, Stack size 12 bytes, gpio.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = GPIOSetDir
  [Called By]
  - >> SPI752_Init
  - >> Read_Temp_Hum
  - >> Seg7Led_Init
  - >> KEY_Init
  - >> SPI_IOConfig
  - >> main
  - >> Task_RFid

  UART_IRQHandler (Thumb, 180 bytes, Stack size 16 bytes, uart.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = UART_IRQHandler
  [Address Reference Count : 1]
  - startup_lpc11xx.o(RESET)

  UARTInit (Thumb, 202 bytes, Stack size 24 bytes, uart.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = UARTInit ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> main
  - >> Task_RFid

  UARTSend (Thumb, 30 bytes, Stack size 0 bytes, uart.o(.text))
  [Called By]

  - >> send_package

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

  - >> UART0_PutString
  - >> ZigBee_IRQ_Process

  UART0_PutString (Thumb, 22 bytes, Stack size 4 bytes, uart.o(.text), UNUSED)
  [Calls]

  - >> UART0_PutChar
  [Called By]
  - >> UART0_printf

  UART0_printf (Thumb, 40 bytes, Stack size 128 bytes, uart.o(.text), UNUSED)
  [Calls]

  - >> UART0_PutString
  - >> __c89vsnprintf

  UART0_GetChar (Thumb, 54 bytes, Stack size 0 bytes, uart.o(.text), UNUSED)

  I2C_IRQHandler (Thumb, 394 bytes, Stack size 8 bytes, i2c.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = I2C_IRQHandler ⇒ __ARM_common_switch8
  [Calls]
  - >> __ARM_common_switch8
  [Address Reference Count : 1]
  - startup_lpc11xx.o(RESET)

  I2CStart (Thumb, 42 bytes, Stack size 0 bytes, i2c.o(.text))
  [Called By]

  - >> I2CEngine

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

  - >> I2CEngine

  I2CInit (Thumb, 122 bytes, Stack size 0 bytes, i2c.o(.text))
  [Called By]

  - >> main

  I2CEngine (Thumb, 56 bytes, Stack size 4 bytes, i2c.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = I2CEngine
  [Calls]
  - >> I2CStop
  - >> I2CStart
  [Called By]
  - >> I2CWrite
  - >> I2CRead

  I2CRead (Thumb, 46 bytes, Stack size 16 bytes, i2c.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = I2CRead ⇒ I2CEngine
  [Calls]
  - >> I2CEngine
  [Called By]
  - >> acc_read
  - >> getModeControl
  - >> getStatus
  - >> light_read
  - >> readControlReg
  - >> readCommandReg

  I2CWrite (Thumb, 40 bytes, Stack size 16 bytes, i2c.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = I2CWrite ⇒ I2CEngine
  [Calls]
  - >> I2CEngine
  [Called By]
  - >> acc_read
  - >> setModeControl
  - >> getModeControl
  - >> getStatus
  - >> light_shutdown
  - >> light_clearIrqStatus
  - >> light_setIrqInCycles
  - >> light_setLoThreshold
  - >> light_setHiThreshold
  - >> light_setRange
  - >> light_setWidth
  - >> light_setMode
  - >> light_read
  - >> light_enable
  - >> readControlReg
  - >> readCommandReg

  ADCInit_NXP (Thumb, 150 bytes, Stack size 16 bytes, adc.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_uidivmod

  ADCInit (Thumb, 126 bytes, Stack size 16 bytes, adc.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = ADCInit ⇒ __aeabi_uidivmod
  [Calls]
  - >> __aeabi_uidivmod
  [Called By]
  - >> Task_ADC

  ADCRead (Thumb, 98 bytes, Stack size 12 bytes, adc.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = ADCRead
  [Called By]
  - >> ADC_Collect

  ADCBurstRead (Thumb, 50 bytes, Stack size 0 bytes, adc.o(.text), UNUSED)

  SSP0_IRQHandler (Thumb, 66 bytes, Stack size 0 bytes, ssp.o(.text))
  [Address Reference Count : 1]

  - startup_lpc11xx.o(RESET)

  SSP1_IRQHandler (Thumb, 66 bytes, Stack size 0 bytes, ssp.o(.text))
  [Address Reference Count : 1]

  - startup_lpc11xx.o(RESET)

  SPI_IOConfig (Thumb, 392 bytes, Stack size 8 bytes, ssp.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = SPI_IOConfig ⇒ GPIOSetDir
  [Calls]
  - >> GPIOSetDir
  - >> GPIOSetValue
  [Called By]
  - >> main

  SPI_Init (Thumb, 124 bytes, Stack size 24 bytes, ssp.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = SPI_Init
  [Calls]
  - >> NVIC_EnableIRQ
  [Called By]
  - >> RFID_Operate
  - >> main

  SPI_PutGet (Thumb, 110 bytes, Stack size 0 bytes, ssp.o(.text))
  [Called By]

  - >> SPI752_RegWrite
  - >> SPI752_RegRead
  - >> RFID_Operate

  KEY_Init (Thumb, 64 bytes, Stack size 8 bytes, key.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = KEY_Init ⇒ GPIOSetDir
  [Calls]
  - >> GPIOSetDir
  [Called By]
  - >> main

  KEY_Read (Thumb, 102 bytes, Stack size 8 bytes, key.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = KEY_Read
  [Calls]
  - >> GPIOGetValue
  [Called By]
  - >> Task_Key

  Seg7Led_Init (Thumb, 54 bytes, Stack size 8 bytes, seg7led.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = Seg7Led_Init ⇒ GPIOSetDir
  [Calls]
  - >> GPIOSetDir
  - >> GPIOSetValue
  [Called By]
  - >> main

  Seg7Led_Put (Thumb, 86 bytes, Stack size 16 bytes, seg7led.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = Seg7Led_Put ⇒ GPIOSetValue
  [Calls]
  - >> GPIOSetValue
  [Called By]
  - >> main
  - >> Task_Seg7Led

  Read_Temp_Hum (Thumb, 458 bytes, Stack size 56 bytes, temp_hum.o(.text))
  [Stack]

  - Max Depth = 100
  - Call Chain = Read_Temp_Hum ⇒ delay_ms ⇒ __aeabi_uidivmod
  [Calls]
  - >> delay_ms
  - >> GPIOSetDir
  - >> GPIOIntEnable
  - >> GPIOSetInterrupt
  - >> GPIOSetValue
  [Called By]
  - >> Temp_Hum_Collect

  Temp_Hum_Collect (Thumb, 58 bytes, Stack size 24 bytes, temp_hum.o(.text))
  [Stack]

  - Max Depth = 124
  - Call Chain = Temp_Hum_Collect ⇒ Read_Temp_Hum ⇒ delay_ms ⇒ __aeabi_uidivmod
  [Calls]
  - >> Read_Temp_Hum
  - >> GPIOIntDisable
  - >> GPIOIntEnable
  [Called By]
  - >> Task_Temp_Hum

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

  - >> Task_Light

  light_enable (Thumb, 38 bytes, Stack size 8 bytes, light.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = light_enable ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> I2CWrite
  [Called By]
  - >> Task_Light

  light_read (Thumb, 86 bytes, Stack size 16 bytes, light.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = light_read ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> I2CWrite
  - >> I2CRead
  - >> __aeabi_uidivmod
  [Called By]
  - >> Light_Collect

  light_setMode (Thumb, 44 bytes, Stack size 16 bytes, light.o(.text), UNUSED)
  [Calls]

  - >> readCommandReg
  - >> I2CWrite

  light_setWidth (Thumb, 98 bytes, Stack size 16 bytes, light.o(.text), UNUSED)
  [Calls]

  - >> readCommandReg
  - >> I2CWrite

  light_setRange (Thumb, 96 bytes, Stack size 16 bytes, light.o(.text))
  [Stack]

  - Max Depth = 44
  - Call Chain = light_setRange ⇒ readControlReg ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> readControlReg
  - >> I2CWrite
  [Called By]
  - >> Task_Light

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

  - >> I2CWrite
  - >> __aeabi_uidivmod

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

  - >> I2CWrite
  - >> __aeabi_uidivmod

  light_setIrqInCycles (Thumb, 44 bytes, Stack size 16 bytes, light.o(.text), UNUSED)
  [Calls]

  - >> readControlReg
  - >> I2CWrite

  light_getIrqStatus (Thumb, 16 bytes, Stack size 8 bytes, light.o(.text), UNUSED)
  [Calls]

  - >> readControlReg

  light_clearIrqStatus (Thumb, 36 bytes, Stack size 16 bytes, light.o(.text), UNUSED)
  [Calls]

  - >> readControlReg
  - >> I2CWrite

  light_shutdown (Thumb, 62 bytes, Stack size 16 bytes, light.o(.text), UNUSED)
  [Calls]

  - >> readCommandReg
  - >> I2CWrite

  Light_Collect (Thumb, 40 bytes, Stack size 16 bytes, light.o(.text))
  [Stack]

  - Max Depth = 52
  - Call Chain = Light_Collect ⇒ light_read ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> light_read
  - >> GPIOIntDisable
  - >> GPIOIntEnable
  [Called By]
  - >> Task_Light

  acc_init (Thumb, 10 bytes, Stack size 8 bytes, acc.o(.text))
  [Stack]

  - Max Depth = 44
  - Call Chain = acc_init ⇒ setModeControl ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> setModeControl
  [Called By]
  - >> Task_ACC

  acc_read (Thumb, 118 bytes, Stack size 24 bytes, acc.o(.text))
  [Stack]

  - Max Depth = 52
  - Call Chain = acc_read ⇒ getStatus ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> getStatus
  - >> I2CWrite
  - >> I2CRead
  [Called By]
  - >> Axis3_Collect

  acc_setRange (Thumb, 34 bytes, Stack size 16 bytes, acc.o(.text), UNUSED)
  [Calls]

  - >> setModeControl
  - >> getModeControl

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

  - >> setModeControl
  - >> getModeControl

  Axis3_Collect (Thumb, 106 bytes, Stack size 32 bytes, acc.o(.text))
  [Stack]

  - Max Depth = 84
  - Call Chain = Axis3_Collect ⇒ acc_read ⇒ getStatus ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> acc_read
  [Called By]
  - >> Task_ACC

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

  - Max Depth = 8
  - Call Chain = RFID_CheckSum
  [Called By]
  - >> RFID_Collect
  - >> RFID_Operate

  RFID_Operate (Thumb, 314 bytes, Stack size 32 bytes, rfid.o(.text))
  [Stack]

  - Max Depth = 76
  - Call Chain = RFID_Operate ⇒ delay_ms ⇒ __aeabi_uidivmod
  [Calls]
  - >> RFID_CheckSum
  - >> delay_ms
  - >> SPI_PutGet
  - >> SPI_Init
  - >> GPIOSetValue
  [Called By]
  - >> RFID_Collect

  RFID_Collect (Thumb, 116 bytes, Stack size 48 bytes, rfid.o(.text))
  [Stack]

  - Max Depth = 124
  - Call Chain = RFID_Collect ⇒ RFID_Operate ⇒ delay_ms ⇒ __aeabi_uidivmod
  [Calls]
  - >> RFID_Operate
  - >> RFID_CheckSum
  - >> delay_ms
  - >> GPIOGetValue
  - >> GPIOIntDisable
  - >> GPIOIntEnable
  - >> GPIOSetValue
  [Called By]
  - >> Task_RFid

  SPI752_RegRead (Thumb, 58 bytes, Stack size 16 bytes, spi_uart.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = SPI752_RegRead ⇒ GPIOSetValue
  [Calls]
  - >> SPI_PutGet
  - >> GPIOSetValue
  [Called By]
  - >> SPI752_PutChar
  - >> SPI752_Init
  - >> ZigBee_IRQ_Process

  ZigBee_IRQ_Process (Thumb, 150 bytes, Stack size 8 bytes, spi_uart.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = ZigBee_IRQ_Process ⇒ SPI752_RegRead ⇒ GPIOSetValue
  [Calls]
  - >> SPI752_RegRead
  - >> UART0_PutChar
  [Called By]
  - >> PIOINT3_IRQHandler

  SPI752_RegWrite (Thumb, 52 bytes, Stack size 16 bytes, spi_uart.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = SPI752_RegWrite ⇒ GPIOSetValue
  [Calls]
  - >> SPI_PutGet
  - >> GPIOSetValue
  [Called By]
  - >> SPI752_PutChar
  - >> SPI752_Init

  SPI752_Init (Thumb, 216 bytes, Stack size 24 bytes, spi_uart.o(.text))
  [Stack]

  - Max Depth = 52
  - Call Chain = SPI752_Init ⇒ SPI752_RegWrite ⇒ GPIOSetValue
  [Calls]
  - >> SPI752_RegWrite
  - >> SPI752_RegRead
  - >> GPIOSetDir
  - >> GPIOIntEnable
  - >> GPIOSetInterrupt
  - >> __aeabi_uidivmod
  [Called By]
  - >> main

  SPI752_PutChar (Thumb, 34 bytes, Stack size 16 bytes, spi_uart.o(.text))
  [Stack]

  - Max Depth = 44
  - Call Chain = SPI752_PutChar ⇒ SPI752_RegWrite ⇒ GPIOSetValue
  [Calls]
  - >> SPI752_RegWrite
  - >> SPI752_RegRead
  [Called By]
  - >> ZigBee_PutString
  - >> ZigBee_Send
  - >> ZigBee_PutChar

  ZigBee_PutChar (Thumb, 14 bytes, Stack size 8 bytes, spi_uart.o(.text), UNUSED)
  [Calls]

  - >> SPI752_PutChar

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

  - Max Depth = 60
  - Call Chain = ZigBee_Send ⇒ SPI752_PutChar ⇒ SPI752_RegWrite ⇒ GPIOSetValue
  [Calls]
  - >> SPI752_PutChar
  [Called By]
  - >> send_package

  ZigBee_PutString (Thumb, 24 bytes, Stack size 8 bytes, spi_uart.o(.text), UNUSED)
  [Calls]

  - >> SPI752_PutChar

  SPI752_GetChar (Thumb, 106 bytes, Stack size 0 bytes, spi_uart.o(.text), UNUSED)
  [Called By]

  - >> ZigBee_GetChar

  ZigBee_GetChar (Thumb, 14 bytes, Stack size 8 bytes, spi_uart.o(.text), UNUSED)
  [Calls]

  - >> SPI752_GetChar

  OS_CPU_SR_Save (Thumb, 0 bytes, Stack size unknown bytes, os_cpu_a.o(.text))
  [Called By]

  - >> OSTimeSet
  - >> OSTimeGet
  - >> OSTaskRegSet
  - >> OSTaskRegGet
  - >> OSTaskQuery
  - >> OSTaskResume
  - >> OSTaskNameGet
  - >> OSTaskDelReq
  - >> OSTaskDel
  - >> OSTaskCreate
  - >> OSTaskChangePrio
  - >> OSSemSet
  - >> OSSemQuery
  - >> OSSemPost
  - >> OSSemPendAbort
  - >> OSSemPend
  - >> OSSemDel
  - >> OSSemCreate
  - >> OSSemAccept
  - >> OSQQuery
  - >> OSQPostOpt
  - >> OSQPostFront
  - >> OSQPost
  - >> OSQPendAbort
  - >> OSQPend
  - >> OSQFlush
  - >> OSQDel
  - >> OSQCreate
  - >> OSQAccept
  - >> OSMemQuery
  - >> OSMemPut
  - >> OSMemNameSet
  - >> OSMemNameGet
  - >> OSMemGet
  - >> OSMemCreate
  - >> OSMboxQuery
  - >> OSMboxPostOpt
  - >> OSMboxPost
  - >> OSMboxPendAbort
  - >> OSMboxPend
  - >> OSMboxDel
  - >> OSMboxCreate
  - >> OSMboxAccept
  - >> OSFlagQuery
  - >> OSFlagPost
  - >> OSFlagPendGetFlagsRdy
  - >> OSFlagPend
  - >> OSFlagNameSet
  - >> OSFlagNameGet
  - >> OSFlagDel
  - >> OSFlagCreate
  - >> OSFlagAccept
  - >> OSTimeDly
  - >> OSTaskSuspend
  - >> OSTaskStkChk
  - >> OSTaskNameSet
  - >> OSTaskCreateExt
  - >> OS_TCBInit
  - >> OSStatInit
  - >> OSSchedUnlock
  - >> OSSchedLock
  - >> OS_TaskIdle
  - >> OS_TaskStat
  - >> OSEventPendMulti
  - >> OS_Sched
  - >> OSEventNameSet
  - >> OSEventNameGet
  - >> OSTimeTick
  - >> OSIntExit
  - >> OSTimeDlyResume
  - >> OS_CPU_SysTickHandler

  OS_CPU_SR_Restore (Thumb, 0 bytes, Stack size unknown bytes, os_cpu_a.o(.text))
  [Called By]

  - >> OSTimeSet
  - >> OSTimeGet
  - >> OSTaskRegSet
  - >> OSTaskRegGet
  - >> OSTaskQuery
  - >> OSTaskResume
  - >> OSTaskNameGet
  - >> OSTaskDelReq
  - >> OSTaskDel
  - >> OSTaskCreate
  - >> OSTaskChangePrio
  - >> OSSemSet
  - >> OSSemQuery
  - >> OSSemPost
  - >> OSSemPendAbort
  - >> OSSemPend
  - >> OSSemDel
  - >> OSSemCreate
  - >> OSSemAccept
  - >> OSQQuery
  - >> OSQPostOpt
  - >> OSQPostFront
  - >> OSQPost
  - >> OSQPendAbort
  - >> OSQPend
  - >> OSQFlush
  - >> OSQDel
  - >> OSQCreate
  - >> OSQAccept
  - >> OSMemQuery
  - >> OSMemPut
  - >> OSMemNameSet
  - >> OSMemNameGet
  - >> OSMemGet
  - >> OSMemCreate
  - >> OSMboxQuery
  - >> OSMboxPostOpt
  - >> OSMboxPost
  - >> OSMboxPendAbort
  - >> OSMboxPend
  - >> OSMboxDel
  - >> OSMboxCreate
  - >> OSMboxAccept
  - >> OSFlagQuery
  - >> OSFlagPost
  - >> OSFlagPendGetFlagsRdy
  - >> OSFlagPend
  - >> OSFlagNameSet
  - >> OSFlagNameGet
  - >> OSFlagDel
  - >> OSFlagCreate
  - >> OSFlagAccept
  - >> OSTimeDly
  - >> OSTaskSuspend
  - >> OSTaskStkChk
  - >> OSTaskNameSet
  - >> OSTaskCreateExt
  - >> OS_TCBInit
  - >> OSStatInit
  - >> OSSchedUnlock
  - >> OSSchedLock
  - >> OS_TaskIdle
  - >> OS_TaskStat
  - >> OSEventPendMulti
  - >> OS_Sched
  - >> OSEventNameSet
  - >> OSEventNameGet
  - >> OSTimeTick
  - >> OSIntExit
  - >> OSTimeDlyResume
  - >> OS_CPU_SysTickHandler

  OSStartHighRdy (Thumb, 0 bytes, Stack size unknown bytes, os_cpu_a.o(.text))
  [Called By]

  - >> OSStart

  OSCtxSw (Thumb, 0 bytes, Stack size unknown bytes, os_cpu_a.o(.text))
  [Called By]

  - >> OS_Sched

  OSIntCtxSw (Thumb, 0 bytes, Stack size unknown bytes, os_cpu_a.o(.text))
  [Called By]

  - >> OSIntExit

  OS_CPU_PendSVHandler (Thumb, 0 bytes, Stack size unknown bytes, os_cpu_a.o(.text))
  [Called By]

  - >> PendSV_Handler
  [Address Reference Count : 1]
  - startup_lpc11xx.o(RESET)

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

  - >> OSInit

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

  - >> OSInit

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

  - >> OS_TCBInit

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

  - >> OSTaskDel

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

  - >> OS_TaskIdle

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

  - >> OS_TaskStat

  OSTaskStkInit (Thumb, 132 bytes, Stack size 16 bytes, os_cpu_c.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = OSTaskStkInit
  [Called By]
  - >> OSTaskCreate
  - >> OSTaskCreateExt

  OSTaskSwHook (Thumb, 2 bytes, Stack size 0 bytes, os_cpu_c.o(.text))
  [Address Reference Count : 1]

  - os_cpu_a.o(.text)

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

  - >> OS_TCBInit

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

  - >> OSTimeTick

  OS_CPU_SysTickHandler (Thumb, 34 bytes, Stack size 8 bytes, os_cpu_c.o(.text))
  [Stack]

  - Max Depth = 24 + Unknown Stack Size
  - Call Chain = OS_CPU_SysTickHandler ⇒ OSTimeTick
  [Calls]
  - >> OSTimeTick
  - >> OSIntExit
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> SysTick_Handler
  [Address Reference Count : 1]
  - startup_lpc11xx.o(RESET)

  OS_CPU_SysTickInit (Thumb, 54 bytes, Stack size 0 bytes, os_cpu_c.o(.text))
  [Called By]

  - >> Task_Start

  OS_StrLen (Thumb, 20 bytes, Stack size 0 bytes, os_core.o(.text), UNUSED)
  [Called By]

  - >> OSTaskNameGet
  - >> OSMemNameGet
  - >> OSFlagNameGet
  - >> OSEventNameGet

  OSEventNameGet (Thumb, 96 bytes, Stack size 24 bytes, os_core.o(.text), UNUSED)
  [Calls]

  - >> OS_StrLen
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSEventNameSet (Thumb, 82 bytes, Stack size 24 bytes, os_core.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OS_EventTaskRemoveMulti (Thumb, 70 bytes, Stack size 28 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = OS_EventTaskRemoveMulti
  [Called By]
  - >> OSTaskDel
  - >> OS_EventTaskRdy
  - >> OSEventPendMulti

  OS_Sched (Thumb, 92 bytes, Stack size 8 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 16 + Unknown Stack Size
  - Call Chain = OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OS_SchedNew
  - >> OSCtxSw
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> OSTaskResume
  - >> OSTaskDel
  - >> OSTaskCreate
  - >> OSTaskChangePrio
  - >> OSSemPost
  - >> OSSemPendAbort
  - >> OSSemPend
  - >> OSSemDel
  - >> OSQPostOpt
  - >> OSQPostFront
  - >> OSQPost
  - >> OSQPendAbort
  - >> OSQPend
  - >> OSQDel
  - >> OSMboxPostOpt
  - >> OSMboxPost
  - >> OSMboxPendAbort
  - >> OSMboxPend
  - >> OSMboxDel
  - >> OSFlagPost
  - >> OSFlagPend
  - >> OSFlagDel
  - >> OSTimeDly
  - >> OSTaskSuspend
  - >> OSTaskCreateExt
  - >> OSSchedUnlock
  - >> OSEventPendMulti
  - >> OSTimeDlyResume

  OS_EventTaskWaitMulti (Thumb, 140 bytes, Stack size 16 bytes, os_core.o(.text), UNUSED)
  [Called By]

  - >> OSEventPendMulti

  OSEventPendMulti (Thumb, 720 bytes, Stack size 56 bytes, os_core.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskWaitMulti
  - >> OS_Sched
  - >> OS_EventTaskRemoveMulti
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  - >> __ARM_common_switch8

  OS_TaskStatStkChk (Thumb, 58 bytes, Stack size 24 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 56 + Unknown Stack Size
  - Call Chain = OS_TaskStatStkChk ⇒ OSTaskStkChk
  [Calls]
  - >> OSTaskStkChk
  [Called By]
  - >> OS_TaskStat

  OS_TaskStat (Thumb, 116 bytes, Stack size 0 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 56 + Unknown Stack Size
  - Call Chain = OS_TaskStat ⇒ OS_TaskStatStkChk ⇒ OSTaskStkChk
  [Calls]
  - >> OSTimeDly
  - >> OSTaskSuspend
  - >> OS_TaskStatStkChk
  - >> OSTaskStatHook
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  - >> __aeabi_uidivmod
  [Address Reference Count : 1]
  - os_core.o(.text)

  OS_TaskIdle (Thumb, 34 bytes, Stack size 0 bytes, os_core.o(.text))
  [Calls]

  - >> OSTaskIdleHook
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Address Reference Count : 1]
  - os_core.o(.text)

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

  - >> OS_MemInit
  - >> OS_FlagInit
  - >> OS_InitTCBList
  - >> OS_InitEventList

  OSInit (Thumb, 48 bytes, Stack size 8 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 136 + Unknown Stack Size
  - Call Chain = OSInit ⇒ OS_InitTaskIdle ⇒ OSTaskCreateExt ⇒ OS_TCBInit
  [Calls]
  - >> OS_QInit
  - >> OS_MemInit
  - >> OS_FlagInit
  - >> OS_InitMisc
  - >> OS_InitRdyList
  - >> OS_InitTCBList
  - >> OS_InitEventList
  - >> OS_InitTaskIdle
  - >> OS_InitTaskStat
  - >> OSInitHookEnd
  - >> OSInitHookBegin
  [Called By]
  - >> main

  OSIntEnter (Thumb, 28 bytes, Stack size 0 bytes, os_core.o(.text), UNUSED)

  OSIntExit (Thumb, 268 bytes, Stack size 8 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 16 + Unknown Stack Size
  - Call Chain = OSIntExit ⇒ OS_SchedNew
  [Calls]
  - >> OS_SchedNew
  - >> OSIntCtxSw
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> OS_CPU_SysTickHandler

  OSSchedLock (Thumb, 52 bytes, Stack size 8 bytes, os_core.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSSchedUnlock (Thumb, 88 bytes, Stack size 8 bytes, os_core.o(.text), UNUSED)
  [Calls]

  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

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

  - Max Depth = 16 + Unknown Stack Size
  - Call Chain = OSStart ⇒ OS_SchedNew
  [Calls]
  - >> OS_SchedNew
  - >> OSStartHighRdy
  [Called By]
  - >> main

  OSStatInit (Thumb, 62 bytes, Stack size 8 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 40 + Unknown Stack Size
  - Call Chain = OSStatInit ⇒ OSTimeDly ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OSTimeDly
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> Task_Start

  OSTimeTick (Thumb, 224 bytes, Stack size 16 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 16 + Unknown Stack Size
  - Call Chain = OSTimeTick
  [Calls]
  - >> OSTimeTickHook
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> OS_CPU_SysTickHandler

  OSVersion (Thumb, 6 bytes, Stack size 0 bytes, os_core.o(.text), UNUSED)

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

  - >> OSTaskDel

  OS_EventTaskRemove (Thumb, 48 bytes, Stack size 12 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = OS_EventTaskRemove
  [Called By]
  - >> OSTaskDel
  - >> OSSemPend
  - >> OSQPend
  - >> OSMboxPend
  - >> OS_EventTaskRdy

  OS_EventTaskRdy (Thumb, 190 bytes, Stack size 44 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = OS_EventTaskRdy ⇒ OS_EventTaskRemoveMulti
  [Calls]
  - >> OS_EventTaskRemove
  - >> OS_EventTaskRemoveMulti
  [Called By]
  - >> OSSemPost
  - >> OSSemPendAbort
  - >> OSSemDel
  - >> OSQPostOpt
  - >> OSQPostFront
  - >> OSQPost
  - >> OSQPendAbort
  - >> OSQDel
  - >> OSMboxPostOpt
  - >> OSMboxPost
  - >> OSMboxPendAbort
  - >> OSMboxDel

  OS_EventTaskWait (Thumb, 116 bytes, Stack size 8 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = OS_EventTaskWait
  [Called By]
  - >> OSSemPend
  - >> OSQPend
  - >> OSMboxPend

  OS_EventWaitListInit (Thumb, 32 bytes, Stack size 8 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = OS_EventWaitListInit
  [Called By]
  - >> OSSemCreate
  - >> OSQCreate
  - >> OSMboxCreate

  OS_MemCopy (Thumb, 20 bytes, Stack size 0 bytes, os_core.o(.text), UNUSED)
  [Called By]

  - >> OSTaskQuery

  OS_TCBInit (Thumb, 360 bytes, Stack size 40 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 40 + Unknown Stack Size
  - Call Chain = OS_TCBInit
  [Calls]
  - >> OSTCBInitHook
  - >> OSTaskCreateHook
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> OSTaskCreate
  - >> OSTaskCreateExt

  OSFlagAccept (Thumb, 250 bytes, Stack size 48 bytes, os_flag.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSFlagCreate (Thumb, 86 bytes, Stack size 24 bytes, os_flag.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OS_FlagUnlink (Thumb, 42 bytes, Stack size 12 bytes, os_flag.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = OS_FlagUnlink
  [Called By]
  - >> OSTaskDel
  - >> OSFlagPend
  - >> OS_FlagTaskRdy

  OSFlagDel (Thumb, 218 bytes, Stack size 40 bytes, os_flag.o(.text), UNUSED)
  [Calls]

  - >> OS_FlagTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSFlagNameGet (Thumb, 78 bytes, Stack size 24 bytes, os_flag.o(.text), UNUSED)
  [Calls]

  - >> OS_StrLen
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSFlagNameSet (Thumb, 64 bytes, Stack size 24 bytes, os_flag.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSFlagPend (Thumb, 608 bytes, Stack size 80 bytes, os_flag.o(.text), UNUSED)
  [Calls]

  - >> OS_FlagUnlink
  - >> OS_FlagBlock
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSFlagPendGetFlagsRdy (Thumb, 26 bytes, Stack size 16 bytes, os_flag.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSFlagPost (Thumb, 304 bytes, Stack size 56 bytes, os_flag.o(.text), UNUSED)
  [Calls]

  - >> OS_FlagTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSFlagQuery (Thumb, 44 bytes, Stack size 24 bytes, os_flag.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OS_FlagInit (Thumb, 70 bytes, Stack size 24 bytes, os_flag.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = OS_FlagInit
  [Calls]
  - >> OS_MemClr
  [Called By]
  - >> OSInit

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

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSMboxCreate (Thumb, 78 bytes, Stack size 16 bytes, os_mbox.o(.text))
  [Stack]

  - Max Depth = 24 + Unknown Stack Size
  - Call Chain = OSMboxCreate ⇒ OS_EventWaitListInit
  [Calls]
  - >> OS_EventWaitListInit
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> main

  OSMboxDel (Thumb, 212 bytes, Stack size 40 bytes, os_mbox.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSMboxPend (Thumb, 258 bytes, Stack size 24 bytes, os_mbox.o(.text))
  [Stack]

  - Max Depth = 40 + Unknown Stack Size
  - Call Chain = OSMboxPend ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OS_EventTaskWait
  - >> OS_EventTaskRemove
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> Task_Seg7Led

  OSMboxPendAbort (Thumb, 128 bytes, Stack size 24 bytes, os_mbox.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSMboxPost (Thumb, 84 bytes, Stack size 16 bytes, os_mbox.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSMboxPostOpt (Thumb, 120 bytes, Stack size 24 bytes, os_mbox.o(.text))
  [Stack]

  - Max Depth = 96 + Unknown Stack Size
  - Call Chain = OSMboxPostOpt ⇒ OS_EventTaskRdy ⇒ OS_EventTaskRemoveMulti
  [Calls]
  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> Task_Led

  OSMboxQuery (Thumb, 78 bytes, Stack size 32 bytes, os_mbox.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSMemCreate (Thumb, 124 bytes, Stack size 56 bytes, os_mem.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSMemGet (Thumb, 60 bytes, Stack size 24 bytes, os_mem.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSMemNameGet (Thumb, 58 bytes, Stack size 24 bytes, os_mem.o(.text), UNUSED)
  [Calls]

  - >> OS_StrLen
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSMemNameSet (Thumb, 46 bytes, Stack size 24 bytes, os_mem.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSMemPut (Thumb, 54 bytes, Stack size 16 bytes, os_mem.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

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

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OS_MemInit (Thumb, 24 bytes, Stack size 8 bytes, os_mem.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = OS_MemInit
  [Calls]
  - >> OS_MemClr
  [Called By]
  - >> OSInit

  OSQAccept (Thumb, 86 bytes, Stack size 24 bytes, os_q.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSQCreate (Thumb, 148 bytes, Stack size 24 bytes, os_q.o(.text), UNUSED)
  [Calls]

  - >> OS_EventWaitListInit
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSQDel (Thumb, 244 bytes, Stack size 40 bytes, os_q.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSQFlush (Thumb, 36 bytes, Stack size 16 bytes, os_q.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSQPend (Thumb, 286 bytes, Stack size 40 bytes, os_q.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskWait
  - >> OS_EventTaskRemove
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSQPendAbort (Thumb, 128 bytes, Stack size 24 bytes, os_q.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSQPost (Thumb, 112 bytes, Stack size 24 bytes, os_q.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSQPostFront (Thumb, 138 bytes, Stack size 24 bytes, os_q.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSQPostOpt (Thumb, 180 bytes, Stack size 24 bytes, os_q.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSQQuery (Thumb, 112 bytes, Stack size 32 bytes, os_q.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OS_QInit (Thumb, 14 bytes, Stack size 0 bytes, os_q.o(.text))
  [Called By]

  - >> OSInit

  OSSemAccept (Thumb, 44 bytes, Stack size 16 bytes, os_sem.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSSemCreate (Thumb, 78 bytes, Stack size 16 bytes, os_sem.o(.text))
  [Stack]

  - Max Depth = 24 + Unknown Stack Size
  - Call Chain = OSSemCreate ⇒ OS_EventWaitListInit
  [Calls]
  - >> OS_EventWaitListInit
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> main

  OSSemDel (Thumb, 212 bytes, Stack size 40 bytes, os_sem.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSSemPend (Thumb, 234 bytes, Stack size 24 bytes, os_sem.o(.text))
  [Stack]

  - Max Depth = 40 + Unknown Stack Size
  - Call Chain = OSSemPend ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OS_EventTaskWait
  - >> OS_EventTaskRemove
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> Task_BeepFan

  OSSemPendAbort (Thumb, 128 bytes, Stack size 24 bytes, os_sem.o(.text), UNUSED)
  [Calls]

  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSSemPost (Thumb, 88 bytes, Stack size 16 bytes, os_sem.o(.text))
  [Stack]

  - Max Depth = 88 + Unknown Stack Size
  - Call Chain = OSSemPost ⇒ OS_EventTaskRdy ⇒ OS_EventTaskRemoveMulti
  [Calls]
  - >> OS_EventTaskRdy
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> Task_Key

  OSSemQuery (Thumb, 78 bytes, Stack size 32 bytes, os_sem.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSSemSet (Thumb, 66 bytes, Stack size 24 bytes, os_sem.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSTaskChangePrio (Thumb, 446 bytes, Stack size 56 bytes, os_task.o(.text), UNUSED)
  [Calls]

  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSTaskCreate (Thumb, 150 bytes, Stack size 56 bytes, os_task.o(.text), UNUSED)
  [Calls]

  - >> OS_TCBInit
  - >> OS_Sched
  - >> OSTaskStkInit
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

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

  - >> OSTaskCreateExt

  OSTaskCreateExt (Thumb, 160 bytes, Stack size 56 bytes, os_task.o(.text))
  [Stack]

  - Max Depth = 96 + Unknown Stack Size
  - Call Chain = OSTaskCreateExt ⇒ OS_TCBInit
  [Calls]
  - >> OS_TaskStkClr
  - >> OS_TCBInit
  - >> OS_Sched
  - >> OSTaskStkInit
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> OS_InitTaskIdle
  - >> OS_InitTaskStat
  - >> main

  OSTaskDel (Thumb, 358 bytes, Stack size 24 bytes, os_task.o(.text))
  [Stack]

  - Max Depth = 52 + Unknown Stack Size
  - Call Chain = OSTaskDel ⇒ OS_EventTaskRemoveMulti
  [Calls]
  - >> OS_FlagUnlink
  - >> OS_EventTaskRemove
  - >> OS_Dummy
  - >> OS_Sched
  - >> OS_EventTaskRemoveMulti
  - >> OSTaskDelHook
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> OS_TaskReturn
  - >> Task_Start

  OSTaskDelReq (Thumb, 98 bytes, Stack size 24 bytes, os_task.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSTaskNameGet (Thumb, 114 bytes, Stack size 32 bytes, os_task.o(.text), UNUSED)
  [Calls]

  - >> OS_StrLen
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSTaskNameSet (Thumb, 98 bytes, Stack size 24 bytes, os_task.o(.text))
  [Stack]

  - Max Depth = 24 + Unknown Stack Size
  - Call Chain = OSTaskNameSet
  [Calls]
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> OS_InitTaskIdle
  - >> OS_InitTaskStat

  OSTaskResume (Thumb, 166 bytes, Stack size 16 bytes, os_task.o(.text), UNUSED)
  [Calls]

  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSTaskStkChk (Thumb, 130 bytes, Stack size 32 bytes, os_task.o(.text))
  [Stack]

  - Max Depth = 32 + Unknown Stack Size
  - Call Chain = OSTaskStkChk
  [Calls]
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> OS_TaskStatStkChk

  OSTaskSuspend (Thumb, 154 bytes, Stack size 24 bytes, os_task.o(.text))
  [Stack]

  - Max Depth = 40 + Unknown Stack Size
  - Call Chain = OSTaskSuspend ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> OS_TaskStat

  OSTaskQuery (Thumb, 80 bytes, Stack size 24 bytes, os_task.o(.text), UNUSED)
  [Calls]

  - >> OS_MemCopy
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSTaskRegGet (Thumb, 58 bytes, Stack size 32 bytes, os_task.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSTaskRegSet (Thumb, 98 bytes, Stack size 40 bytes, os_task.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OS_TaskReturn (Thumb, 10 bytes, Stack size 8 bytes, os_task.o(.text), UNUSED)
  [Calls]

  - >> OSTaskDel

  OSTimeDly (Thumb, 110 bytes, Stack size 16 bytes, os_time.o(.text))
  [Stack]

  - Max Depth = 32 + Unknown Stack Size
  - Call Chain = OSTimeDly ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> OSTimeDlyHMSM
  - >> OSStatInit
  - >> OS_TaskStat

  OSTimeDlyHMSM (Thumb, 82 bytes, Stack size 24 bytes, os_time.o(.text))
  [Stack]

  - Max Depth = 56 + Unknown Stack Size
  - Call Chain = OSTimeDlyHMSM ⇒ OSTimeDly ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OSTimeDly
  - >> __aeabi_uidivmod
  [Called By]
  - >> Task_Led
  - >> Task_Key
  - >> Task_Temp_Hum
  - >> Task_Light
  - >> Task_ADC
  - >> Task_ACC
  - >> Task_RFid
  - >> Task_Send

  OSTimeDlyResume (Thumb, 176 bytes, Stack size 16 bytes, os_time.o(.text))
  [Stack]

  - Max Depth = 32 + Unknown Stack Size
  - Call Chain = OSTimeDlyResume ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OS_Sched
  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save
  [Called By]
  - >> PIOINT2_IRQHandler

  OSTimeGet (Thumb, 24 bytes, Stack size 16 bytes, os_time.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  OSTimeSet (Thumb, 24 bytes, Stack size 16 bytes, os_time.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SR_Restore
  - >> OS_CPU_SR_Save

  Task_Send (Thumb, 40 bytes, Stack size 0 bytes, main.o(.text))
  [Stack]

  - Max Depth = 100 + Unknown Stack Size
  - Call Chain = Task_Send ⇒ send_package ⇒ ZigBee_Send ⇒ SPI752_PutChar ⇒ SPI752_RegWrite ⇒ GPIOSetValue
  [Calls]
  - >> OSTimeDlyHMSM
  - >> send_package
  [Address Reference Count : 1]
  - main.o(.text)

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

  - Max Depth = 132 + Unknown Stack Size
  - Call Chain = Task_RFid ⇒ RFID_Collect ⇒ RFID_Operate ⇒ delay_ms ⇒ __aeabi_uidivmod
  [Calls]
  - >> NVIC_SetPriority
  - >> OSTimeDlyHMSM
  - >> RFID_Collect
  - >> UARTInit
  - >> GPIOSetDir
  - >> GPIOIntEnable
  - >> GPIOSetInterrupt
  - >> GPIOSetValue
  - >> send_package
  [Address Reference Count : 1]
  - main.o(.text)

  Task_ACC (Thumb, 28 bytes, Stack size 0 bytes, main.o(.text))
  [Stack]

  - Max Depth = 84 + Unknown Stack Size
  - Call Chain = Task_ACC ⇒ Axis3_Collect ⇒ acc_read ⇒ getStatus ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> OSTimeDlyHMSM
  - >> Axis3_Collect
  - >> acc_init
  [Address Reference Count : 1]
  - main.o(.text)

  Task_ADC (Thumb, 30 bytes, Stack size 0 bytes, main.o(.text))
  [Stack]

  - Max Depth = 56 + Unknown Stack Size
  - Call Chain = Task_ADC ⇒ OSTimeDlyHMSM ⇒ OSTimeDly ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OSTimeDlyHMSM
  - >> ADCInit
  - >> ADC_Collect
  [Address Reference Count : 1]
  - main.o(.text)

  Task_Light (Thumb, 38 bytes, Stack size 0 bytes, main.o(.text))
  [Stack]

  - Max Depth = 56 + Unknown Stack Size
  - Call Chain = Task_Light ⇒ OSTimeDlyHMSM ⇒ OSTimeDly ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OSTimeDlyHMSM
  - >> Light_Collect
  - >> light_setRange
  - >> light_enable
  - >> light_init
  [Address Reference Count : 1]
  - main.o(.text)

  Task_Temp_Hum (Thumb, 24 bytes, Stack size 0 bytes, main.o(.text))
  [Stack]

  - Max Depth = 124 + Unknown Stack Size
  - Call Chain = Task_Temp_Hum ⇒ Temp_Hum_Collect ⇒ Read_Temp_Hum ⇒ delay_ms ⇒ __aeabi_uidivmod
  [Calls]
  - >> OSTimeDlyHMSM
  - >> Temp_Hum_Collect
  [Address Reference Count : 1]
  - main.o(.text)

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

  - Max Depth = 48 + Unknown Stack Size
  - Call Chain = Task_BeepFan ⇒ OSSemPend ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OSSemPend
  - >> GPIOSetValue
  - >> __2printf
  [Address Reference Count : 1]
  - main.o(.text)

  Task_Key (Thumb, 42 bytes, Stack size 0 bytes, main.o(.text))
  [Stack]

  - Max Depth = 88 + Unknown Stack Size
  - Call Chain = Task_Key ⇒ OSSemPost ⇒ OS_EventTaskRdy ⇒ OS_EventTaskRemoveMulti
  [Calls]
  - >> OSTimeDlyHMSM
  - >> OSSemPost
  - >> KEY_Read
  [Address Reference Count : 1]
  - main.o(.text)

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

  - Max Depth = 48 + Unknown Stack Size
  - Call Chain = Task_Seg7Led ⇒ OSMboxPend ⇒ OS_Sched ⇒ OS_SchedNew
  [Calls]
  - >> OSMboxPend
  - >> Seg7Led_Put
  - >> __aeabi_uidivmod
  [Address Reference Count : 1]
  - main.o(.text)

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

  - Max Depth = 104 + Unknown Stack Size
  - Call Chain = Task_Led ⇒ OSMboxPostOpt ⇒ OS_EventTaskRdy ⇒ OS_EventTaskRemoveMulti
  [Calls]
  - >> OSTimeDlyHMSM
  - >> OSMboxPostOpt
  - >> GPIOSetValue
  [Address Reference Count : 1]
  - main.o(.text)

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

  - Max Depth = 60 + Unknown Stack Size
  - Call Chain = Task_Start ⇒ OSTaskDel ⇒ OS_EventTaskRemoveMulti
  [Calls]
  - >> OSTaskDel
  - >> OSStatInit
  - >> OS_CPU_SysTickInit
  [Address Reference Count : 1]
  - main.o(.text)

  main (Thumb, 678 bytes, Stack size 24 bytes, main.o(.text))
  [Stack]

  - Max Depth = 160 + Unknown Stack Size
  - Call Chain = main ⇒ OSInit ⇒ OS_InitTaskIdle ⇒ OSTaskCreateExt ⇒ OS_TCBInit
  [Calls]
  - >> NVIC_SetPriority
  - >> OSSemCreate
  - >> OSMboxCreate
  - >> OSTaskCreateExt
  - >> OSStart
  - >> OSInit
  - >> SPI752_Init
  - >> Seg7Led_Put
  - >> Seg7Led_Init
  - >> KEY_Init
  - >> SPI_Init
  - >> SPI_IOConfig
  - >> I2CInit
  - >> UARTInit
  - >> GPIOSetDir
  - >> GPIOInit
  - >> GPIOSetValue
  - >> SystemInit
  [Address Reference Count : 1]
  - entry7.o(.ARM.Collect$$$$00000007)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

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

  - startup_lpc11xx.o(RESET)

  PendSV_Handler (Thumb, 8 bytes, Stack size 8 bytes, lpc11c14_it.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_PendSVHandler

  SysTick_Handler (Thumb, 8 bytes, Stack size 8 bytes, lpc11c14_it.o(.text), UNUSED)
  [Calls]

  - >> OS_CPU_SysTickHandler

  crc16 (Thumb, 22 bytes, Stack size 8 bytes, crc16.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = crc16
  [Called By]
  - >> make_crc16

  make_crc16 (Thumb, 34 bytes, Stack size 16 bytes, crc16.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = make_crc16 ⇒ crc16
  [Calls]
  - >> crc16
  [Called By]
  - >> send_package

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

  - Max Depth = 28
  - Call Chain = ADC_Collect ⇒ ADCRead
  [Calls]
  - >> ADCRead
  [Called By]
  - >> Task_ADC

  send_package (Thumb, 312 bytes, Stack size 40 bytes, led_spk_fan_adc.o(.text))
  [Stack]

  - Max Depth = 100
  - Call Chain = send_package ⇒ ZigBee_Send ⇒ SPI752_PutChar ⇒ SPI752_RegWrite ⇒ GPIOSetValue
  [Calls]
  - >> ZigBee_Send
  - >> UARTSend
  - >> make_crc16
  [Called By]
  - >> Task_RFid
  - >> Task_Send

  __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))
  [Stack]

  - Max Depth = 12
  - Call Chain = __aeabi_uidivmod
  [Called By]
  - >> OSTimeDlyHMSM
  - >> OS_TaskStat
  - >> SPI752_Init
  - >> light_setLoThreshold
  - >> light_setHiThreshold
  - >> light_read
  - >> delay_ms
  - >> ADCInit
  - >> ADCInit_NXP
  - >> UARTInit
  - >> _printf_core
  - >> Task_Seg7Led

  __aeabi_uldivmod (Thumb, 96 bytes, Stack size 48 bytes, uldiv.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_llsr
  - >> __aeabi_llsl
  [Called By]
  - >> _printf_core
  - >> _fp_digits

  __aeabi_dadd (Thumb, 326 bytes, Stack size 48 bytes, dadd.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_lasr
  - >> __aeabi_llsl
  - >> _double_round
  - >> _double_epilogue
  [Called By]
  - >> __aeabi_drsub
  - >> __aeabi_dsub
  - >> _fp_digits

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

  - >> __aeabi_dadd

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

  - >> __aeabi_dadd

  __aeabi_dmul (Thumb, 198 bytes, Stack size 72 bytes, dmul.o(.text), UNUSED)
  [Calls]

  - >> _double_epilogue
  [Called By]
  - >> _fp_digits

  __aeabi_ddiv (Thumb, 234 bytes, Stack size 40 bytes, ddiv.o(.text), UNUSED)
  [Calls]

  - >> _double_round
  [Called By]
  - >> _fp_digits

  __aeabi_d2ulz (Thumb, 54 bytes, Stack size 8 bytes, dfixul.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_llsr
  - >> __aeabi_llsl
  [Called By]
  - >> _fp_digits

  __aeabi_cdrcmple (Thumb, 38 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED)
  [Called By]

  - >> _fp_digits

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

  __aeabi_llsl (Thumb, 32 bytes, Stack size 8 bytes, llshl.o(.text), UNUSED)
  [Called By]

  - >> _double_epilogue
  - >> __aeabi_uldivmod
  - >> __aeabi_dadd
  - >> __aeabi_d2ulz

  _ll_shift_l (Thumb, 0 bytes, Stack size 8 bytes, llshl.o(.text), UNUSED)

  __aeabi_llsr (Thumb, 34 bytes, Stack size 8 bytes, llushr.o(.text), UNUSED)
  [Called By]

  - >> _double_epilogue
  - >> __aeabi_uldivmod
  - >> __aeabi_d2ulz

  _ll_ushift_r (Thumb, 0 bytes, Stack size 8 bytes, llushr.o(.text), UNUSED)

  __aeabi_lasr (Thumb, 38 bytes, Stack size 8 bytes, llsshr.o(.text), UNUSED)
  [Called By]

  - >> __aeabi_dadd

  _ll_sshift_r (Thumb, 0 bytes, Stack size 8 bytes, llsshr.o(.text), UNUSED)

  _double_round (Thumb, 26 bytes, Stack size 8 bytes, depilogue.o(.text), UNUSED)
  [Called By]

  - >> _double_epilogue
  - >> __aeabi_ddiv
  - >> __aeabi_dadd

  _double_epilogue (Thumb, 170 bytes, Stack size 48 bytes, depilogue.o(.text), UNUSED)
  [Calls]

  - >> __ARM_clz
  - >> __aeabi_llsr
  - >> __aeabi_llsl
  - >> _double_round
  [Called By]
  - >> __aeabi_dmul
  - >> __aeabi_dadd

  __0vsnprintf (Thumb, 32 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
  [Calls]

  - >> _printf_core

  __1vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)

  __2vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)

  __c89vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
  [Called By]

  - >> UART0_printf

  vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)

  __ARM_clz (Thumb, 46 bytes, Stack size 0 bytes, depilogue.o(i.__ARM_clz), UNUSED)
  [Called By]

  - >> _double_epilogue

  __ARM_common_switch8 (Thumb, 28 bytes, Stack size 8 bytes, i2c.o(i.__ARM_common_switch8))
  [Stack]

  - Max Depth = 8
  - Call Chain = __ARM_common_switch8
  [Called By]
  - >> OSEventPendMulti
  - >> I2C_IRQHandler

  __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

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

  - >> GPIOInit

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

  - >> SPI_Init

  readCommandReg (Thumb, 32 bytes, Stack size 8 bytes, light.o(.text), UNUSED)
  [Calls]

  - >> I2CWrite
  - >> I2CRead
  [Called By]
  - >> light_shutdown
  - >> light_setWidth
  - >> light_setMode

  readControlReg (Thumb, 32 bytes, Stack size 8 bytes, light.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = readControlReg ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> I2CWrite
  - >> I2CRead
  [Called By]
  - >> light_clearIrqStatus
  - >> light_getIrqStatus
  - >> light_setIrqInCycles
  - >> light_setRange

  getStatus (Thumb, 32 bytes, Stack size 8 bytes, acc.o(.text))
  [Stack]

  - Max Depth = 28
  - Call Chain = getStatus ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> I2CWrite
  - >> I2CRead
  [Called By]
  - >> acc_read

  getModeControl (Thumb, 32 bytes, Stack size 8 bytes, acc.o(.text), UNUSED)
  [Calls]

  - >> I2CWrite
  - >> I2CRead
  [Called By]
  - >> acc_setMode
  - >> acc_setRange

  setModeControl (Thumb, 24 bytes, Stack size 16 bytes, acc.o(.text))
  [Stack]

  - Max Depth = 36
  - Call Chain = setModeControl ⇒ I2CWrite ⇒ I2CEngine
  [Calls]
  - >> I2CWrite
  [Called By]
  - >> acc_setMode
  - >> acc_setRange
  - >> acc_init

  OS_SchedNew (Thumb, 90 bytes, Stack size 8 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = OS_SchedNew
  [Called By]
  - >> OSStart
  - >> OS_Sched
  - >> OSIntExit

  OS_InitTaskStat (Thumb, 50 bytes, Stack size 32 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 128 + Unknown Stack Size
  - Call Chain = OS_InitTaskStat ⇒ OSTaskCreateExt ⇒ OS_TCBInit
  [Calls]
  - >> OSTaskNameSet
  - >> OSTaskCreateExt
  [Called By]
  - >> OSInit

  OS_InitTaskIdle (Thumb, 50 bytes, Stack size 32 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 128 + Unknown Stack Size
  - Call Chain = OS_InitTaskIdle ⇒ OSTaskCreateExt ⇒ OS_TCBInit
  [Calls]
  - >> OSTaskNameSet
  - >> OSTaskCreateExt
  [Called By]
  - >> OSInit

  OS_InitEventList (Thumb, 78 bytes, Stack size 16 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = OS_InitEventList
  [Calls]
  - >> OS_MemClr
  [Called By]
  - >> OSInit

  OS_InitTCBList (Thumb, 88 bytes, Stack size 16 bytes, os_core.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = OS_InitTCBList
  [Calls]
  - >> OS_MemClr
  [Called By]
  - >> OSInit

  OS_InitRdyList (Thumb, 46 bytes, Stack size 0 bytes, os_core.o(.text))
  [Called By]

  - >> OSInit

  OS_InitMisc (Thumb, 44 bytes, Stack size 0 bytes, os_core.o(.text))
  [Called By]

  - >> OSInit

  OS_FlagTaskRdy (Thumb, 92 bytes, Stack size 20 bytes, os_flag.o(.text), UNUSED)
  [Calls]

  - >> OS_FlagUnlink
  [Called By]
  - >> OSFlagPost
  - >> OSFlagDel

  OS_FlagBlock (Thumb, 136 bytes, Stack size 36 bytes, os_flag.o(.text), UNUSED)
  [Called By]

  - >> OSFlagPend

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

  - Max Depth = 8
  - Call Chain = NVIC_SetPriority
  [Called By]
  - >> main
  - >> Task_RFid

  _printf_core (Thumb, 30 bytes, Stack size 24 bytes, printfb.o(i._printf_core), UNUSED)
  [Called By]

  - >> __0printf$bare

  _fp_digits (Thumb, 312 bytes, Stack size 56 bytes, printfa.o(i._fp_digits), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  - >> __aeabi_dmul
  - >> __aeabi_ddiv
  - >> __aeabi_dadd
  - >> __aeabi_d2ulz
  - >> __aeabi_cdrcmple
  [Called By]
  - >> _printf_core

  _printf_core (Thumb, 1774 bytes, Stack size 160 bytes, printfa.o(i._printf_core), UNUSED)
  [Calls]

  - >> __aeabi_uldivmod
  - >> _printf_pre_padding
  - >> _printf_post_padding
  - >> _fp_digits
  - >> __aeabi_uidivmod
  [Called By]
  - >> __0vsnprintf

  _printf_post_padding (Thumb, 32 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED)
  [Called By]

  - >> _printf_core

  _printf_pre_padding (Thumb, 42 bytes, Stack size 40 bytes, printfa.o(i._printf_pre_padding), UNUSED)
  [Called By]

  - >> _printf_core

  _snputc (Thumb, 22 bytes, Stack size 0 bytes, printfa.o(i._snputc))
  [Address Reference Count : 1]

  - printfa.o(i.__0vsnprintf)

  ### Undefined Global Symbols