Static Call Graph - [.\Objects\HIDAdvRemote.axf]

# Static Call Graph for image .\Objects\HIDAdvRemote.axf

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Wed Nov 09 13:48:01 2022

### Maximum Stack Usage = 772 bytes + Unknown(Untraceable Function Pointers)

### Call chain for Maximum Stack Depth:

GAPRole_ProcessEvent ⇒ gapRole_ProcessOSALMsg ⇒ gapRole_ProcessGAPMsg ⇒ GAPBondMgr_LinkEst ⇒ GATTServApp_SendServiceChangedInd ⇒ GATT_ServiceChangedInd ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

### Function Pointers

- AACI_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- ATT_BuildErrorRsp from att_util.o(i.ATT_BuildErrorRsp) referenced from att_server.o(i.ATT_ErrorRsp)
- ATT_BuildExchangeMTURsp from att_util.o(i.ATT_BuildExchangeMTURsp) referenced from att_server.o(i.ATT_ExchangeMTURsp)
- ATT_BuildFindByTypeValueRsp from att_util.o(i.ATT_BuildFindByTypeValueRsp) referenced from att_server.o(i.ATT_FindByTypeValueRsp)
- ATT_BuildFindInfoRsp from att_util.o(i.ATT_BuildFindInfoRsp) referenced from att_server.o(i.ATT_FindInfoRsp)
- ATT_BuildHandleValueInd from att_util.o(i.ATT_BuildHandleValueInd) referenced from att_server.o(i.ATT_HandleValueInd)
- ATT_BuildHandleValueInd from att_util.o(i.ATT_BuildHandleValueInd) referenced from att_server.o(i.ATT_HandleValueNoti)
- ATT_BuildPrepareWriteRsp from att_util.o(i.ATT_BuildPrepareWriteRsp) referenced from att_server.o(i.ATT_PrepareWriteRsp)
- ATT_BuildReadBlobRsp from att_util.o(i.ATT_BuildReadBlobRsp) referenced from att_server.o(i.ATT_ReadBlobRsp)
- ATT_BuildReadByGrpTypeRsp from att_util.o(i.ATT_BuildReadByGrpTypeRsp) referenced from att_server.o(i.ATT_ReadByGrpTypeRsp)
- ATT_BuildReadByTypeRsp from att_util.o(i.ATT_BuildReadByTypeRsp) referenced from att_server.o(i.ATT_ReadByTypeRsp)
- ATT_BuildReadMultiRsp from att_util.o(i.ATT_BuildReadMultiRsp) referenced from att_server.o(i.ATT_ReadMultiRsp)
- ATT_BuildReadRsp from att_util.o(i.ATT_BuildReadRsp) referenced from att_server.o(i.ATT_ReadRsp)
- ATT_ParseExchangeMTUReq from att_util.o(i.ATT_ParseExchangeMTUReq) referenced from gatt_server.o(.constdata)
- ATT_ParseExecuteWriteReq from att_util.o(i.ATT_ParseExecuteWriteReq) referenced from gatt_server.o(.constdata)
- ATT_ParseFindByTypeValueReq from att_util.o(i.ATT_ParseFindByTypeValueReq) referenced from gatt_server.o(.constdata)
- ATT_ParseFindInfoReq from att_util.o(i.ATT_ParseFindInfoReq) referenced from gatt_server.o(.constdata)
- ATT_ParsePrepareWriteReq from att_util.o(i.ATT_ParsePrepareWriteReq) referenced from gatt_server.o(.constdata)
- ATT_ParseReadBlobReq from att_util.o(i.ATT_ParseReadBlobReq) referenced from gatt_server.o(.constdata)
- ATT_ParseReadByTypeReq from att_util.o(i.ATT_ParseReadByTypeReq) referenced 2 times from gatt_server.o(.constdata)
- ATT_ParseReadMultiReq from att_util.o(i.ATT_ParseReadMultiReq) referenced from gatt_server.o(.constdata)
- ATT_ParseReadReq from att_util.o(i.ATT_ParseReadReq) referenced from gatt_server.o(.constdata)
- ATT_ParseWriteReq from att_util.o(i.ATT_ParseWriteReq) referenced from gatt_server.o(.constdata)
- AudioProfile_HandleConnStatusCB from audiogattprofile.o(i.AudioProfile_HandleConnStatusCB) referenced from audiogattprofile.o(i.AudioProfile_AddService)
- AudioProfile_ReadAttrCB from audiogattprofile.o(i.AudioProfile_ReadAttrCB) referenced from audiogattprofile.o(.constdata)
- AudioProfile_WriteAttrCB from audiogattprofile.o(i.AudioProfile_WriteAttrCB) referenced from audiogattprofile.o(.constdata)
- Batt_task_ProcessEvent from batt_task.o(i.Batt_task_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- Bsp_Btn_ProcessEvent from bsp_button_task.o(i.Bsp_Btn_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- CAN_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- CHLCD_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- CLCD_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- CPU_CLCD_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- ENET_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- FLEXRAY_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- GAPBondMgr_ProcessEvent from gapbondmgr.o(i.GAPBondMgr_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- GAPRole_ProcessEvent from peripheral.o(i.GAPRole_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- GAP_ProcessEvent from gap_task.o(i.GAP_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- GATTServApp_ProcessEvent from gattservapp.o(i.GATTServApp_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- GATT_ProcessEvent from gatt_task.o(i.GATT_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- HCI_ProcessEvent from bb_rom_sym_m0.txt(ABSOLUTE) referenced from osal_hidkbd.o(.constdata)
- HardFault_Handler from bb_rom_sym_m0.txt(ABSOLUTE) referenced from startup_armcm0.o(RESET)
- HidDev_ProcessEvent from hiddev.o(i.HidDev_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- HidDev_ReadAttrCB from hiddev.o(i.HidDev_ReadAttrCB) referenced from hidkbdservice.o(.constdata)
- HidDev_WriteAttrCB from hiddev.o(i.HidDev_WriteAttrCB) referenced from hidkbdservice.o(.constdata)
- HidDev_scanParamCB from hiddev.o(i.HidDev_scanParamCB) referenced from hiddev.o(i.HidDev_Init)
- HidKbd_ProcessEvent from hidkbd.o(i.HidKbd_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- I2C_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- IrTask_ProcessEvent from ir_task.o(i.IrTask_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- L2CAP_BuildCmdReject from l2cap_util.o(i.L2CAP_BuildCmdReject) referenced from l2cap_if.o(i.L2CAP_CmdReject)
- L2CAP_ProcessEvent from l2cap_task.o(i.L2CAP_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- LIN_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- LL_Disconnect1 from patch.o(_func_xip_code_.LL_Disconnect1) referenced from patch.o(_section_xip_code_)
- LL_ENC_AES128_Encrypt1 from patch.o(i.LL_ENC_AES128_Encrypt1) referenced from patch.o(_section_xip_code_)
- LL_ENC_Decrypt1 from patch.o(_func_xip_code_.LL_ENC_Decrypt1) referenced from patch.o(_section_xip_code_)
- LL_ENC_Encrypt1 from patch.o(_func_xip_code_.LL_ENC_Encrypt1) referenced from patch.o(_section_xip_code_)
- LL_IRQHandler1 from patch.o(i.LL_IRQHandler1) referenced from patch.o(_section_xip_code_)
- LL_ProcessEvent from bb_rom_sym_m0.txt(ABSOLUTE) referenced from osal_hidkbd.o(.constdata)
- LL_Reset1 from patch.o(i.LL_Reset1) referenced from patch.o(_section_xip_code_)
- LL_SetAdvControl1 from patch.o(_func_xip_code_.LL_SetAdvControl1) referenced from patch.o(_func_xip_code_.ll_patch_slave)
- LL_SetAdvParam1 from patch.o(_func_xip_code_.LL_SetAdvParam1) referenced from patch.o(_func_xip_code_.ll_patch_slave)
- LL_SetDataLengh1 from patch.o(_func_xip_code_.LL_SetDataLengh1) referenced from patch.o(_section_xip_code_)
- LL_set_default_conn_params1 from patch.o(i.LL_set_default_conn_params1) referenced from patch.o(_section_xip_code_)
- MCIA_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- MCIB_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- NMI_Handler from bb_rom_sym_m0.txt(ABSOLUTE) referenced from startup_armcm0.o(RESET)
- OTA_task_ProcessEvent from ota_task.o(i.OTA_task_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- PendSV_Handler from bb_rom_sym_m0.txt(ABSOLUTE) referenced from startup_armcm0.o(RESET)
- RTC_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- Reset_Handler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- SM_ProcessEvent from sm_task.o(i.SM_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- SPI_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- SVC_Handler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- SleepTask_ProcessEvent from sleep.o(i.SleepTask_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- SysTick_Handler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- SystemInit from system_armcm0.o(i.SystemInit) referenced from startup_armcm0.o(.text)
- TIM0_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- TIM2_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- UART0_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- UART1_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- UART2_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- UART3_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- UART4_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- USBDC_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- USBHC_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- WDT_IRQHandler from startup_armcm0.o(.text) referenced from startup_armcm0.o(RESET)
- __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_armcm0.o(.text)
- _hard_fault from jump_table.o(i._hard_fault) referenced from jump_table.o(.emb_text)
- _uart_putc from my_printf.o(i._uart_putc) referenced from my_printf.o(i.dbg_printf)
- adc_evt from battdetect.o(_section_sram_code_) referenced from battdetect.o(i.adcMeasureTask)
- adc_wakeup_hdl from adc.o(_section_sram_code_) referenced from adc.o(i.hal_adc_init)
- battNotifyCB from battservice.o(i.battNotifyCB) referenced from battservice.o(i.Batt_MeasLevel)
- battReadAttrCB from battservice.o(i.battReadAttrCB) referenced from battservice.o(.constdata)
- battWriteAttrCB from battservice.o(i.battWriteAttrCB) referenced from battservice.o(.constdata)
- clk_change_mod_restore from pwrmgr.o(i.clk_change_mod_restore) referenced from pwrmgr.o(i.hclk_clock_switch)
- config_RTC1 from patch.o(i.config_RTC1) referenced from patch.o(_section_xip_code_)
- devInfo_ReadAttrCB from devinfoservice.o(i.devInfo_ReadAttrCB) referenced from devinfoservice.o(.constdata)
- enterSleepProcess1 from patch.o(i.enterSleepProcess1) referenced from patch.o(_section_xip_code_)
- gapBondMgrSendServiceChange from gapbondmgr.o(i.gapBondMgrSendServiceChange) referenced from gapbondmgr.o(i.GAPBondMgr_ServiceChangeInd)
- gapPeriProcessHCICmdCompleteEvt from gap_peridevmgr.o(i.gapPeriProcessHCICmdCompleteEvt) referenced 2 times from gap_peridevmgr.o(.data)
- gapProcessAdvertisingEvt from gap_peridevmgr.o(i.gapProcessAdvertisingEvt) referenced 2 times from gap_peridevmgr.o(.data)
- gapRolesParamUpdateCB from hidkbd.o(i.gapRolesParamUpdateCB) referenced 2 times from hidkbd.o(.data)
- gapSetAdvParams from gap_peridevmgr.o(i.gapSetAdvParams) referenced 2 times from gap_peridevmgr.o(.data)
- gattProcessExchangeMTUReq from gatt_server.o(i.gattProcessExchangeMTUReq) referenced from gatt_server.o(.constdata)
- gattProcessExecuteWriteReq from gatt_server.o(i.gattProcessExecuteWriteReq) referenced from gatt_server.o(.constdata)
- gattProcessFindByTypeValueReq from gatt_server.o(i.gattProcessFindByTypeValueReq) referenced from gatt_server.o(.constdata)
- gattProcessFindInfoReq from gatt_server.o(i.gattProcessFindInfoReq) referenced from gatt_server.o(.constdata)
- gattProcessReadByGrpTypeReq from gatt_server.o(i.gattProcessReadByGrpTypeReq) referenced from gatt_server.o(.constdata)
- gattProcessReadByTypeReq from gatt_server.o(i.gattProcessReadByTypeReq) referenced from gatt_server.o(.constdata)
- gattProcessReadMultiReq from gatt_server.o(i.gattProcessReadMultiReq) referenced from gatt_server.o(.constdata)
- gattProcessReadReq from gatt_server.o(i.gattProcessReadReq) referenced 2 times from gatt_server.o(.constdata)
- gattProcessWriteReq from gatt_server.o(i.gattProcessWriteReq) referenced 2 times from gatt_server.o(.constdata)
- gattServApp_HandleConnStatusCB from gattservapp.o(i.gattServApp_HandleConnStatusCB) referenced from gattservapp.o(i.GATTServApp_Init)
- gattServApp_WriteAttrCB from gattservapp.o(i.gattServApp_WriteAttrCB) referenced from gattservapp.o(.constdata)
- gattServerHandleConnStatusCB from gatt_server.o(i.gattServerHandleConnStatusCB) referenced from gatt_server.o(i.GATT_InitServer)
- gattServerHandleTimerCB from gatt_server.o(i.gattServerHandleTimerCB) referenced from gatt_server.o(i.GATT_Indication)
- gattServerProcessMsgCB from gatt_server.o(i.gattServerProcessMsgCB) referenced from gatt_server.o(i.GATT_InitServer)
- ggs_ReadAttrCB from gapgattserver.o(i.ggs_ReadAttrCB) referenced from gapgattserver.o(.constdata)
- ggs_WriteAttrCB from gapgattserver.o(i.ggs_WriteAttrCB) referenced from gapgattserver.o(.constdata)
- hal_ADC_IRQHandler from adc.o(i.hal_ADC_IRQHandler) referenced from adc.o(i.hal_adc_start)
- hal_ADC_VOICE_IRQHandler from voice.o(i.hal_ADC_VOICE_IRQHandler) referenced from voice.o(i.hal_voice_start)
- hal_ADC_compare_IRQHandler from adc.o(i.hal_ADC_compare_IRQHandler) referenced from adc.o(i.hal_adc_start)
- hal_GPIO_IRQHandler from gpio.o(i.hal_GPIO_IRQHandler) referenced from gpio.o(i.hal_gpioin_register)
- hal_KSCAN_IRQHandler from kscan.o(i.hal_KSCAN_IRQHandler) referenced from kscan.o(i.hal_kscan_init)
- hal_TIMER5_IRQHandler from timer.o(i.hal_TIMER5_IRQHandler) referenced from timer.o(i.hal_timer_set)
- hal_TIMER6_IRQHandler from timer.o(i.hal_TIMER6_IRQHandler) referenced from timer.o(i.hal_timer_set)
- hal_UART0_IRQHandler from uart.o(i.hal_UART0_IRQHandler) referenced from uart.o(i.uart_hw_init)
- hal_UART0_IRQHandler from uart.o(i.hal_UART0_IRQHandler) referenced from jump_table.o(jump_table_mem_area)
- hal_UART1_IRQHandler from uart.o(i.hal_UART1_IRQHandler) referenced from uart.o(i.uart_hw_init)
- hal_bsp_btn_callback from hal_keyboard_matrix.o(_section_sram_code_) referenced from hal_keyboard_matrix.o(i.hal_keyboard_matrix_task_init)
- hal_gpio_sleep_handler from gpio.o(i.hal_gpio_sleep_handler) referenced from gpio.o(i.hal_gpio_init)
- hal_gpio_wakeup_handler from gpio.o(i.hal_gpio_wakeup_handler) referenced from gpio.o(i.hal_gpio_init)
- hal_keyboard_matrix_task_ProcessEvent from hal_keyboard_matrix.o(i.hal_keyboard_matrix_task_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- hal_pwrmgr_sleep_process from pwrmgr.o(i.hal_pwrmgr_sleep_process) referenced from jump_table.o(jump_table_mem_area)
- hal_pwrmgr_wakeup_process from pwrmgr.o(i.hal_pwrmgr_wakeup_process) referenced from jump_table.o(jump_table_mem_area)
- hal_system_clock_change_process0 from patch.o(i.hal_system_clock_change_process0) referenced from patch.o(i.ll_patch_hclk_dynamic_chg)
- hal_timer_sleep_handler from timer.o(i.hal_timer_sleep_handler) referenced from timer.o(i.hal_timer_init)
- hal_timer_wakeup_handler from timer.o(i.hal_timer_wakeup_handler) referenced from timer.o(i.hal_timer_init)
- hal_watchdog_init from watchdog.o(_section_sram_code_) referenced from watchdog.o(i.watchdog_config)
- hard_fault from jump_table.o(.emb_text) referenced from jump_table.o(jump_table_mem_area)
- hidDevGapStateCB from hiddev.o(i.hidDevGapStateCB) referenced 2 times from hiddev.o(.data)
- hidDevPairStateCB from hiddev.o(i.hidDevPairStateCB) referenced from hiddev.o(.constdata)
- hidDevPasscodeCB from hiddev.o(i.hidDevPasscodeCB) referenced from hiddev.o(.constdata)
- hidKbdEvtCB from hiddev.o(i.hidKbdEvtCB) referenced 2 times from hiddev.o(.data)
- hidKbdRptCB from hiddev.o(i.hidKbdRptCB) referenced 2 times from hiddev.o(.data)
- hw_spif_cache_config from flash.o(i.hw_spif_cache_config) referenced from flash.o(i.hal_spif_cache_init)
- ir_recving_Hdl from ir_task.o(_section_sram_code_) referenced from ir_task.o(i.open_ir_learn)
- kscan_evt_handler from bsp_button_task.o(_section_sram_code_) referenced from bsp_button_task.o(i.kscan_button_init)
- kscan_sleep_handler from kscan.o(_section_sram_code_) referenced from kscan.o(i.hal_kscan_init)
- kscan_wakeup_handler from kscan.o(_section_sram_code_) referenced from kscan.o(i.hal_kscan_init)
- l2capBuildParamUpdateReq from l2cap_util.o(i.l2capBuildParamUpdateReq) referenced from l2cap_if.o(i.L2CAP_ConnParamUpdateReq)
- l2capHandleTimerCB from l2cap_util.o(i.l2capHandleTimerCB) referenced from l2cap_util.o(i.l2capSendReq)
- l2capPocessFragmentTxData from l2cap_util.o(_section_sram_code_) referenced from patch.o(_section_xip_code_)
- llConnTerminate1 from patch.o(_func_xip_code_.llConnTerminate1) referenced from patch.o(_func_xip_code_.ll_patch_slave)
- llProcessSlaveControlPacket1 from patch.o(i.llProcessSlaveControlPacket1) referenced from patch.o(_func_xip_code_.ll_patch_slave)
- llProcessSlaveControlProcedures1 from patch.o(_func_xip_code_.llProcessSlaveControlProcedures1) referenced from patch.o(_func_xip_code_.ll_patch_slave)
- llProcessTxData1 from patch.o(i.llProcessTxData1) referenced from patch.o(_section_xip_code_)
- llReleaseConnId1 from patch.o(i.llReleaseConnId1) referenced from patch.o(_section_xip_code_)
- llSetupNextSlaveEvent1 from patch.o(i.llSetupNextSlaveEvent1) referenced from patch.o(_func_xip_code_.ll_patch_slave)
- llSlaveEvt_TaskEndOk1 from patch.o(i.llSlaveEvt_TaskEndOk1) referenced from patch.o(_section_xip_code_)
- llWriteTxData1 from patch.o(i.llWriteTxData1) referenced from patch.o(_section_xip_code_)
- ll_adptive_adj_next_time1 from patch.o(i.ll_adptive_adj_next_time1) referenced from patch.o(_func_xip_code_.ll_patch_slave)
- ll_generateTxBuffer1 from patch.o(i.ll_generateTxBuffer1) referenced from patch.o(_section_xip_code_)
- ll_hw_go1 from patch.o(i.ll_hw_go1) referenced from patch.o(_section_xip_code_)
- ll_hw_read_tfifo_rtlp1 from patch.o(i.ll_hw_read_tfifo_rtlp1) referenced from patch.o(_section_xip_code_)
- ll_scheduler_singleconn from patch.o(i.ll_scheduler_singleconn) referenced from patch.o(_func_xip_code_.ll_patch_slave)
- main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
- move_to_slave_function1 from patch.o(i.move_to_slave_function1) referenced from patch.o(_func_xip_code_.ll_patch_slave)
- osalInitTasks from osal_hidkbd.o(i.osalInitTasks) referenced from jump_table.o(jump_table_mem_area)
- osal_CbTimerProcessEvent from bb_rom_sym_m0.txt(ABSOLUTE) referenced from osal_hidkbd.o(.constdata)
- osal_idle_task0 from patch.o(i.osal_idle_task0) referenced from patch.o(_section_xip_code_)
- ppsp_impl_reset_appCb from ota_task.o(i.ppsp_impl_reset_appCb) referenced 2 times from ota_task.o(.data)
- ppsp_impl_serv_rmsg_hdlr from ppsp_impl.o(i.ppsp_impl_serv_rmsg_hdlr) referenced from ppsp_impl.o(i.ppsp_impl_reg_serv_appl)
- ppsp_serv_get_attr from ppsp_serv.o(i.ppsp_serv_get_attr) referenced from ppsp_serv.o(.constdata)
- ppsp_serv_hdlr_conn_stat from ppsp_serv.o(i.ppsp_serv_hdlr_conn_stat) referenced from ppsp_serv.o(i.ppsp_serv_add_serv)
- ppsp_serv_set_attr from ppsp_serv.o(i.ppsp_serv_set_attr) referenced from ppsp_serv.o(.constdata)
- ppsp_serv_set_para from ppsp_serv.o(i.ppsp_serv_set_para) referenced from ppsp_impl.o(i.ppsp_impl_reg_serv_appl)
- rf_calibrate1 from rf_phy_driver.o(i.rf_calibrate1) referenced from patch.o(_section_xip_code_)
- rf_phy_change_cfg0 from rf_phy_driver.o(i.rf_phy_change_cfg0) referenced from patch.o(_section_xip_code_)
- rf_phy_ini from rf_phy_driver.o(i.rf_phy_ini) referenced from jump_table.o(jump_table_mem_area)
- scanParamReadAttrCB from scanparamservice.o(i.scanParamReadAttrCB) referenced from scanparamservice.o(.constdata)
- scanParamWriteAttrCB from scanparamservice.o(i.scanParamWriteAttrCB) referenced from scanparamservice.o(.constdata)
- single_carrier_ProcessEvent from single_carrier_task.o(i.single_carrier_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- smLinkCheck from sm_pairing.o(i.smLinkCheck) referenced from sm_task.o(i.SM_Init)
- smResponderProcessLTKReq from sm_rsppairing.o(i.smResponderProcessLTKReq) referenced 2 times from sm_rsppairing.o(.data)
- smResponderSendNextKeyInfo from sm_rsppairing.o(i.smResponderSendNextKeyInfo) referenced 2 times from sm_rsppairing.o(.data)
- smState_timerCB from sm_task.o(i.smState_timerCB) referenced from sm_rsppairing.o(i.smResponderSendNextKeyInfo)
- smTo_timerCB from sm_task.o(i.smTo_timerCB) referenced from sm_mgr.o(i.smStartRspTimer)
- smpBuildEncInfo from smp.o(i.smpBuildEncInfo) referenced from sm_pairing.o(i.smPairingSendEncInfo)
- smpBuildIdentityAddrInfo from smp.o(i.smpBuildIdentityAddrInfo) referenced from sm_pairing.o(i.smPairingSendIdentityAddrInfo)
- smpBuildIdentityInfo from smp.o(i.smpBuildIdentityInfo) referenced from sm_pairing.o(i.smPairingSendIdentityInfo)
- smpBuildMasterID from smp.o(i.smpBuildMasterID) referenced from sm_pairing.o(i.smPairingSendMasterID)
- smpBuildPairingConfirm from smp.o(i.smpBuildPairingConfirm) referenced from sm_pairing.o(i.smGenerateConfirm)
- smpBuildPairingFailed from smp.o(i.smpBuildPairingFailed) referenced from sm_pairing.o(i.smSendFailAndEnd)
- smpBuildPairingRandom from smp.o(i.smpBuildPairingRandom) referenced from sm_pairing.o(i.smGenerateRandMsg)
- smpBuildPairingReq from smp.o(i.smpBuildPairingReq) referenced from sm_pairing.o(i.smGeneratePairingReqRsp)
- smpBuildPairingRsp from smp.o(i.smpBuildPairingRsp) referenced from sm_pairing.o(i.smGeneratePairingReqRsp)
- smpBuildSecurityReq from smp.o(i.smpBuildSecurityReq) referenced from gap_perilinkmgr.o(i.GAP_SendSlaveSecurityRequest)
- smpBuildSigningInfo from smp.o(i.smpBuildSigningInfo) referenced from sm_pairing.o(i.smPairingSendSingingInfo)
- smpResponderProcessIncoming from sm_rsppairing.o(i.smpResponderProcessIncoming) referenced 2 times from sm_rsppairing.o(.data)
- timer_expired_callback from ir_task.o(_section_sram_code_) referenced from ir_task.o(i.IrTask_Init)
- uart_wakeup_process_0 from uart.o(i.uart_wakeup_process_0) referenced from uart.o(i.hal_uart_init)
- uart_wakeup_process_1 from uart.o(i.uart_wakeup_process_1) referenced from uart.o(i.hal_uart_init)
- voice_evt_handler_adpcm from voice_task.o(_section_sram_code_) referenced from voice_task.o(i.voiceCaptureStart)
- voice_task_ProcessEvent from voice_task.o(i.voice_task_ProcessEvent) referenced from osal_hidkbd.o(.constdata)
- wakeupProcess1 from patch.o(i.wakeupProcess1) referenced from patch.o(_section_xip_code_)
- wakeup_init1 from patch.o(i.wakeup_init1) referenced from patch.o(_section_xip_code_)

### Global Symbols

__aeabi_uidivmod (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> WaitMs (via Veneer)
- >> uart_hw_init (via Veneer)
- >> hal_fs_item_write (via Veneer)
- >> hal_fs_item_del (via Veneer)
- >> hal_fs_garbage_collect (via Veneer)
- >> fs_search_items (via Veneer)
- >> number (via Veneer)
- >> bonding_info_key_handle (via Veneer)
- >> GAPBondMgr_PasscodeRsp (via Veneer)
- >> gapBondMgrAddBond (via Veneer)
- >> gattServApp_ProcessReadByTypeReq (via Veneer)
- >> gattServApp_ProcessReadByGrpTypeReq (via Veneer)
- >> OutQueue (via Veneer)
- >> InQueue (via Veneer)
- >> ir_learn_handle (via Veneer)
- >> wakeupProcess1 (via Veneer)
- >> ll_adptive_adj_next_time1 (via Veneer)
- >> l2capPktToSegmentBuff (via Veneer)

__aeabi_idivmod (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_fs_get_free_size (via Veneer)
- >> fs_init (via Veneer)
- >> rf_phy_dtm_trigged (via Veneer)

__aeabi_memcpy (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> txmit_buf_use_tx_buf (via Veneer)
- >> kscan_compare_key (via Veneer)
- >> GGS_SetParameter (via Veneer)
- >> hal_voice_config (via Veneer)
- >> ReadBuffer (via Veneer)
- >> FillBuffer (via Veneer)
- >> ir_sending_learn_wavefrom_handle (via Veneer)
- >> adcMeasureTask (via Veneer)
- >> llWriteTxData1 (via Veneer)

__aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_low_power_io_init (via Veneer)
- >> hal_KSCAN_IRQHandler (via Veneer)
- >> hal_kscan_timeout_handler (via Veneer)
- >> hal_kscan_init (via Veneer)

__aeabi_memclr (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> InitCircularBuffer (via Veneer)

__aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_uart_init (via Veneer)
- >> hal_pwrmgr_init (via Veneer)
- >> hal_gpio_init (via Veneer)
- >> LL_InitConnectContext (via Veneer)
- >> hal_kscan_timeout_handler (via Veneer)
- >> clear_adcc_cfg (via Veneer)
- >> voice_data_encode_inqueue (via Veneer)

__aeabi_uread4 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_ENC_Encrypt1 (via Veneer)
- >> LL_ENC_Decrypt1 (via Veneer)

HCI_CommandCompleteEvent (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> HCI_LE_SetRandomAddressCmd (via Veneer)
- >> HCI_LE_LtkReqReplyCmd (via Veneer)
- >> HCI_LE_LtkReqNegReplyCmd (via Veneer)

HCI_DisconnectCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAP_TerminateLinkReq (via Veneer)
- >> disconnectNext (via Veneer)

HCI_GAPTaskRegister (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAP_Init (via Veneer)

HCI_HostNumCompletedPktCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> L2CAP_HostNumCompletedPkts (via Veneer)

HCI_Init (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> osalInitTasks (via Veneer)

HCI_L2CAPTaskRegister (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> L2CAP_Init (via Veneer)

HCI_LE_AddWhiteListCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> gapBondMgr_SyncWhiteList (via Veneer)

HCI_LE_ClearWhiteListCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> gapBondMgr_SyncWhiteList (via Veneer)

HCI_LE_RandCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> smProcessRandComplete (via Veneer)

HCI_LE_ReadBufSizeCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> gapReadBD_ADDRStatus (via Veneer)

HCI_LE_SetAdvDataCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAP_UpdateAdvertisingData (via Veneer)

HCI_LE_SetAdvEnableCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAP_EndDiscoverable (via Veneer)
- >> gapSetAdvParamsStatus (via Veneer)

HCI_LE_SetAdvParamCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> gapSetAdvParams (via Veneer)

HCI_LE_SetScanRspDataCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAP_UpdateAdvertisingData (via Veneer)

HCI_ProcessEvent (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE), UNUSED)
[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

HCI_ReadBDADDRCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> update_local_address (via Veneer)
- >> bonding_info_key_handle (via Veneer)
- >> GAP_ParamsInit (via Veneer)

HCI_ReadRssiCmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAPRole_ProcessEvent (via Veneer)

HCI_SMPTaskRegister (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> SM_Init (via Veneer)

HCI_SendDataPkt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> L2CAP_Fragment_SendDataPkt (via Veneer)

HCI_bm_alloc (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> L2CAP_bm_alloc (via Veneer)

HardFault_Handler (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE), UNUSED)
[Address Reference Count : 1]

- startup_armcm0.o(RESET)

LL_ConnActive (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_EncLtkReply (via Veneer)
- >> LL_EncLtkNegReply (via Veneer)

LL_Disconnect0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_Disconnect1 (via Veneer)

LL_ENC_AES128_Encrypt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

LL_ENC_AES128_Encrypt0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_ENC_AES128_Encrypt1 (via Veneer)
- >> finidv (via Veneer)

LL_ENC_Encrypt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llWriteTxData1 (via Veneer)
- >> llSetupStartEncRsp (via Veneer)

LL_ENC_GenerateNonce (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_ENC_Encrypt1 (via Veneer)
- >> LL_ENC_Decrypt1 (via Veneer)

LL_ENC_LoadKey (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_ENC_Encrypt1 (via Veneer)
- >> LL_ENC_Decrypt1 (via Veneer)

LL_EncChangeCback (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

LL_EncKeyRefreshCback (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

LL_EncLtkReqCback (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

LL_Encrypt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> smEncryptLocal (via Veneer)
- >> smEncrypt (via Veneer)

LL_Init (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> osalInitTasks (via Veneer)

LL_PLUS_DisableSlaveLatency (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> disable_slave_latency_handle (via Veneer)

LL_PLUS_EnableSlaveLatency (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> enable_slave_latency_handle (via Veneer)

LL_ProcessEvent (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE), UNUSED)
[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

LL_ReadRemoteVersionInfoCback (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

LL_Reset0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_Reset1 (via Veneer)

LL_SetAdvParam0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_SetAdvParam1 (via Veneer)

LL_SetDataLengh0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_SetDataLengh1 (via Veneer)

LL_TX_bm_alloc (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> L2CAP_Fragment_bm_alloc (via Veneer)

LL_set_default_conn_params0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_set_default_conn_params1 (via Veneer)

NMI_Handler (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE), UNUSED)
[Address Reference Count : 1]

- startup_armcm0.o(RESET)

PendSV_Handler (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE), UNUSED)
[Address Reference Count : 1]

- startup_armcm0.o(RESET)

WaitRTCCount (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> WaitMs (via Veneer)
- >> _spif_wait_nobusy_x (via Veneer)
- >> hal_system_clock_change_active (via Veneer)
- >> rc32k_calibration (via Veneer)
- >> wakeup_init1 (via Veneer)
- >> wakeupProcess1 (via Veneer)
- >> rc32k_cap_cal (via Veneer)
- >> config_RTC1 (via Veneer)
- >> check_96MXtal_by_rcTracking (via Veneer)
- >> check_16MXtal_by_rcTracking (via Veneer)

__ARM_common_switch8 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> set_sampling_resolution (via Veneer)
- >> GAPRole_SetParameter (via Veneer)
- >> GAPRole_GetParameter (via Veneer)
- >> gapRole_ProcessGAPMsg (via Veneer)
- >> ggs_ReadAttrCB (via Veneer)
- >> GGS_SetParameter (via Veneer)
- >> GAPBondMgr_SetParameter (via Veneer)
- >> GAPBondMgr_ProcessGAPMsg (via Veneer)
- >> GAPBondMgr_GetParameter (via Veneer)
- >> GAP_DeviceInit (via Veneer)
- >> hal_adc_start (via Veneer)
- >> hal_adc_config_channel (via Veneer)
- >> ppsp_serv_get_attr (via Veneer)
- >> adc_evt (via Veneer)
- >> rf_tp_cal (via Veneer)
- >> hal_system_clock_change_process0 (via Veneer)
- >> llProcessSlaveControlProcedures1 (via Veneer)
- >> LL_SetAdvControl1 (via Veneer)
- >> hidDevGapStateCB (via Veneer)
- >> smProcessDataMsg (via Veneer)
- >> smpResponderProcessIncoming (via Veneer)
- >> smResponderSendNextKeyInfo (via Veneer)
- >> gapPeriProcessHCICmdCompleteEvt (via Veneer)

app_wakeup_process (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> wakeupProcess1 (via Veneer)

bit_to_byte (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> gen_pn_prbs9 (via Veneer)

clear_timer (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_SetAdvControl1 (via Veneer)

clk_get_pclk (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> uart_hw_init (via Veneer)

config_RTC (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_pwrmgr_enter_sleep_rtc_reset (via Veneer)

disableSleep (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_pwrmgr_unlock (via Veneer)
- >> hal_pwrmgr_lock (via Veneer)
- >> hal_pwrmgr_init (via Veneer)

drv_disable_irq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_pwrmgr_unregister (via Veneer)
- >> hal_pwrmgr_unlock (via Veneer)
- >> hal_pwrmgr_lock (via Veneer)
- >> txmit_buf_use_tx_buf (via Veneer)
- >> hal_flash_write_by_dma (via Veneer)
- >> hal_flash_write (via Veneer)
- >> hal_flash_read (via Veneer)
- >> hal_flash_erase_sector (via Veneer)
- >> hal_cache_tag_flush (via Veneer)
- >> spif_unlock (via Veneer)
- >> spif_lock (via Veneer)
- >> hal_system_clock_change_active (via Veneer)
- >> hal_pwrmgr_poweroff (via Veneer)
- >> hal_pwrmgr_enter_sleep_rtc_reset (via Veneer)
- >> hal_TIMER6_IRQHandler (via Veneer)
- >> hal_TIMER5_IRQHandler (via Veneer)
- >> sysClockChangeAllow (via Veneer)
- >> LL_SetAdvControl1 (via Veneer)
- >> LL_Disconnect1 (via Veneer)

drv_enable_irq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_pwrmgr_unregister (via Veneer)
- >> hal_pwrmgr_unlock (via Veneer)
- >> hal_pwrmgr_lock (via Veneer)
- >> txmit_buf_use_tx_buf (via Veneer)
- >> hal_flash_write_by_dma (via Veneer)
- >> hal_flash_write (via Veneer)
- >> hal_flash_read (via Veneer)
- >> hal_flash_erase_sector (via Veneer)
- >> hal_cache_tag_flush (via Veneer)
- >> spif_unlock (via Veneer)
- >> spif_lock (via Veneer)
- >> hal_system_clock_change_active (via Veneer)
- >> hal_TIMER6_IRQHandler (via Veneer)
- >> hal_TIMER5_IRQHandler (via Veneer)
- >> sysClockChangeAllow (via Veneer)
- >> LL_SetAdvControl1 (via Veneer)
- >> LL_Disconnect1 (via Veneer)

drv_irq_init (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> main (via Veneer)
- >> wakeupProcess1 (via Veneer)

efuse_read (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> _rom_efuse_version_init (via Veneer)
- >> finidv (via Veneer)
- >> _efuse_chip_version_check (via Veneer)

enableSleep (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_pwrmgr_unlock (via Veneer)
- >> init_config (via Veneer)
- >> hal_pwrmgr_init (via Veneer)

enterSleepProcess0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> enterSleepProcess1 (via Veneer)

enter_sleep_off_mode (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_pwrmgr_enter_sleep_rtc_reset (via Veneer)

getRxBufferFree (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_hw_go1 (via Veneer)

getTxBufferFree (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llWriteTxData1 (via Veneer)

getTxBufferSize (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_generateTxBuffer1 (via Veneer)

get_rx_write_ptr (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_hw_go1 (via Veneer)

get_tx_read_ptr (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_generateTxBuffer1 (via Veneer)

get_tx_write_ptr (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llWriteTxData1 (via Veneer)

gpio_pull_set (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_pwrmgr_poweroff (via Veneer)

gpio_wakeup_set (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_pwrmgr_poweroff (via Veneer)

rom_uart_init (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> _hard_fault (via Veneer)

isTimer1Running (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_scheduler_singleconn (via Veneer)

llConnTerminate (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llConnTerminate0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llConnTerminate1 (via Veneer)

llDequeueCtrlPkt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llEnqueueCtrlPkt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_generateTxBuffer1 (via Veneer)
- >> llProcessSlaveControlPacket1 (via Veneer)
- >> LL_EncLtkReply (via Veneer)
- >> LL_EncLtkNegReply (via Veneer)

llInitFeatureSet2MPHY (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> HidKbd_Init (via Veneer)

llInitFeatureSetDLE (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> HidKbd_Init (via Veneer)

llPduLengthUpdate (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llProcessChanMap (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llConnTerminate1 (via Veneer)

llProcessSlaveControlPacket0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlPacket1 (via Veneer)

llProcessTxData0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessTxData1 (via Veneer)

llReleaseConnId0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llReleaseConnId1 (via Veneer)

llReplaceCtrlPkt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSecAdvAllow (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

llSetupAdv (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_SetAdvControl1 (via Veneer)

llSetupCTEReq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupCTERsp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupDataLenghtReq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupDataLenghtRsp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupEncRsp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupFeatureSetRsp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupNextSlaveEvent0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llSetupNextSlaveEvent1 (via Veneer)

llSetupPauseEncRsp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupPhyReq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupPhyRsp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupRejectInd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupSecAdvEvt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

llSetupSecInit (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

llSetupSecScan (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

llSetupStartEncReq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupTermInd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupUnknownRsp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSetupVersionIndReq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSlaveEvt_TaskEndOk0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llSlaveEvt_TaskEndOk1 (via Veneer)

ll_debug_output (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> wakeupProcess1 (via Veneer)
- >> LL_IRQHandler1 (via Veneer)
- >> LL_SetAdvControl1 (via Veneer)

ll_hw_clr_irq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> rf_phy_dtm_trigged (via Veneer)
- >> LL_IRQHandler1 (via Veneer)

ll_hw_get_anchor (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_adptive_adj_next_time1 (via Veneer)

ll_hw_get_irq_status (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

ll_hw_get_tfifo_wrptr (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_generateTxBuffer1 (via Veneer)

ll_hw_get_tr_mode (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_hw_go1 (via Veneer)
- >> LL_IRQHandler1 (via Veneer)

ll_hw_ign_rfifo (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> wakeup_init1 (via Veneer)

ll_hw_read_tfifo_packet (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_hw_read_tfifo_rtlp1 (via Veneer)

ll_hw_rst_tfifo (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> rf_phy_dtm_trigged (via Veneer)

ll_hw_set_crc_fmt (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> rf_phy_bb_cfg (via Veneer)

ll_hw_set_cte_txSupp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

ll_hw_set_empty_head (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> wakeup_init1 (via Veneer)

ll_hw_set_irq (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> rf_phy_dtm_trigged (via Veneer)

ll_hw_set_loop_timeout (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_system_clock_change_active (via Veneer)
- >> wakeup_init1 (via Veneer)

ll_hw_set_rx_timeout (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> wakeup_init1 (via Veneer)
- >> ll_hw_go1 (via Veneer)
- >> LL_IRQHandler1 (via Veneer)

ll_hw_set_rx_timeout_1st (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> wakeup_init1 (via Veneer)

ll_hw_set_srx (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> rf_phy_dtm_trigged (via Veneer)

ll_hw_set_stx (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> rf_phy_dtm_trigged (via Veneer)

ll_hw_set_timing (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_system_clock_change_active (via Veneer)
- >> rf_phy_dtm_trigged (via Veneer)
- >> wakeup_init1 (via Veneer)

ll_hw_trigger (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> rf_phy_dtm_trigged (via Veneer)

ll_hw_tx2rx_timing_config (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_system_clock_change_active (via Veneer)
- >> rf_phy_ini (via Veneer)
- >> wakeupProcess1 (via Veneer)

ll_hw_write_tfifo (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> rf_phy_dtm_zigbee_pkt_gen (via Veneer)
- >> rf_phy_dtm_ble_pkt_gen (via Veneer)
- >> ll_generateTxBuffer1 (via Veneer)

ll_processBasicIRQ (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_processBasicIRQ_secondaryScanSRX (via Veneer)
- >> ll_processBasicIRQ_secondaryInitSRX (via Veneer)
- >> ll_processBasicIRQ_secondaryAdvTRX (via Veneer)
- >> ll_processBasicIRQ_secondaryAdvSTX (via Veneer)
- >> ll_processBasicIRQ_secScanTRX (via Veneer)
- >> ll_processBasicIRQ_ScanTRX (via Veneer)
- >> ll_processBasicIRQ_SRX (via Veneer)
- >> LL_IRQHandler1 (via Veneer)

ll_processExtAdvIRQ (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

ll_processExtInitIRQ (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

ll_processExtScanIRQ (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

ll_processPrdAdvIRQ (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

ll_processPrdScanIRQ (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

ll_schedule_next_event (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> LL_IRQHandler1 (via Veneer)

ll_scheduler0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_scheduler_singleconn (via Veneer)

log_printf (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> _hard_fault (via Veneer)

move_to_slave_function0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> move_to_slave_function1 (via Veneer)

osalTimeUpdate (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> wakeupProcess1 (via Veneer)

osal_CbTimerInit (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> osalInitTasks (via Veneer)

osal_CbTimerProcessEvent (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE), UNUSED)
[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

osal_CbTimerStart (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> smResponderSendNextKeyInfo (via Veneer)
- >> l2capSendReq (via Veneer)
- >> gattStartTimer (via Veneer)
- >> smStartRspTimer (via Veneer)

osal_CbTimerStop (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> l2capStopTimer (via Veneer)
- >> gattStopTimer (via Veneer)
- >> smStopRspTimer (via Veneer)

osal_CbTimerUpdate (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> smStartRspTimer (via Veneer)

osal_bm_adjust_header (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> L2CAP_bm_alloc (via Veneer)
- >> l2capParsePacket (via Veneer)
- >> l2capEncapSendData (via Veneer)

osal_bm_free (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> attSendMsg (via Veneer)
- >> smProcessOSALMsg (via Veneer)
- >> l2capSarBufReset (via Veneer)
- >> l2capProcessRxData (via Veneer)
- >> l2capSendCmd (via Veneer)
- >> gattProcessRxData (via Veneer)
- >> smSendSMMsg (via Veneer)
- >> L2CAP_SegmentPkt_Reset (via Veneer)
- >> L2CAP_ReassemblePkt_Reset (via Veneer)
- >> l2capPktToSegmentBuff (via Veneer)

osal_clear_event (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ir_recving_Hdl (via Veneer)

osal_get_timeoutEx (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> get_osal_connect_event_status (via Veneer)
- >> GAPRole_SetParameter (via Veneer)
- >> gapRole_ProcessGAPMsg (via Veneer)
- >> hal_keyboard_matrix_task_ProcessEvent (via Veneer)
- >> disable_slave_latency_handle (via Veneer)
- >> voiceCaptureStart (via Veneer)
- >> advance_close_ir_learn (via Veneer)
- >> voice_task_ProcessEvent (via Veneer)
- >> stop_enter_power_off_mode (via Veneer)
- >> hidDevGapStateCB (via Veneer)

osal_init_system (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> app_main (via Veneer)

osal_isbufset (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAPBondMgr_ResolveAddr (via Veneer)
- >> GAPBondMgr_LinkEst (via Veneer)
- >> gapBondMgr_SyncWhiteList (via Veneer)
- >> gapBondMgrUpdateCharCfg (via Veneer)
- >> gapBondMgrFindEmpty (via Veneer)
- >> gapBondMgrEraseBonding (via Veneer)
- >> gapBondMgrChangeState (via Veneer)
- >> gapBondMgrBondTotal (via Veneer)
- >> GAP_SecParamsInit (via Veneer)

osal_mem_alloc (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAP_MakeDiscoverable (via Veneer)
- >> GATTServApp_RegisterService (via Veneer)
- >> GAP_Authenticate (via Veneer)
- >> voice_task_Init (via Veneer)
- >> osalInitTasks (via Veneer)
- >> GATT_RegisterService (via Veneer)
- >> ppsp_impl_new_msgs_raws (via Veneer)
- >> ll_hw_go1 (via Veneer)
- >> ll_generateTxBuffer1 (via Veneer)
- >> llWriteTxData1 (via Veneer)
- >> smSavePairInfo (via Veneer)
- >> smpResponderProcessSigningInfo (via Veneer)
- >> smpResponderProcessIdentityInfo (via Veneer)
- >> smpResponderProcessEncryptionInformation (via Veneer)
- >> smResponderSendNextKeyInfo (via Veneer)
- >> gapAllocAdvRecs (via Veneer)
- >> SM_StartPairing (via Veneer)
- >> gapPairingCompleteCB (via Veneer)
- >> SM_VerifyAuthenSig (via Veneer)
- >> SM_GenerateAuthenSig (via Veneer)
- >> sm_CMAC (via Veneer)
- >> generate_subkey (via Veneer)

osal_mem_free (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAP_Bond (via Veneer)
- >> GAP_PeriDevMgrInit (via Veneer)
- >> ppsp_impl_prc_serv_msgs_rand (via Veneer)
- >> ppsp_impl_ack_serv_msgs_vers (via Veneer)
- >> ppsp_impl_ack_serv_msgs_verf (via Veneer)
- >> ppsp_impl_ack_serv_msgs_upda (via Veneer)
- >> ppsp_impl_ack_serv_msgs_pack (via Veneer)
- >> ppsp_impl_ack_serv_msgs_comp (via Veneer)
- >> ll_hw_read_tfifo_rtlp1 (via Veneer)
- >> ll_generateTxBuffer1 (via Veneer)
- >> llSlaveEvt_TaskEndOk1 (via Veneer)
- >> llReleaseConnId1 (via Veneer)
- >> smProcessRandComplete (via Veneer)
- >> gapFreeAdvertState (via Veneer)
- >> gapAllocAdvRecs (via Veneer)
- >> linkDB_Remove (via Veneer)
- >> gapPairingCompleteCB (via Veneer)
- >> gapFreeEstLink (via Veneer)
- >> gapFreeAuthLink (via Veneer)
- >> SM_VerifyAuthenSig (via Veneer)
- >> SM_GenerateAuthenSig (via Veneer)
- >> smFreePairingParams (via Veneer)
- >> sm_CMAC (via Veneer)
- >> generate_subkey (via Veneer)

osal_mem_set_heap (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ble_mem_init_config (via Veneer)

osal_memcmp (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAPBondMgr_ResolveAddr (via Veneer)
- >> gapBondMgrFindAddr (via Veneer)
- >> ATT_CompareUUID (via Veneer)
- >> gattServApp_ProcessFindByTypeValueReq (via Veneer)
- >> llConnTerminate1 (via Veneer)
- >> finidv (via Veneer)
- >> smpResponderProcessPairingRandom (via Veneer)
- >> smResponderProcessLTKReq (via Veneer)
- >> SM_ResolveRandomAddrs (via Veneer)
- >> SM_VerifyAuthenSig (via Veneer)

osal_memcpy (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_pwrmgr_unregister (via Veneer)
- >> hal_fs_item_write (via Veneer)
- >> GAP_UpdateAdvertisingData (via Veneer)
- >> GAP_MakeDiscoverable (via Veneer)
- >> GAPRole_SetParameter (via Veneer)
- >> GAPRole_ProcessEvent (via Veneer)
- >> GAPRole_GetParameter (via Veneer)
- >> gapRole_ProcessGAPMsg (via Veneer)
- >> ggs_WriteAttrCB (via Veneer)
- >> ggs_ReadAttrCB (via Veneer)
- >> update_local_address (via Veneer)
- >> GGS_SetParameter (via Veneer)
- >> GATTServApp_ReadAttr (via Veneer)
- >> GAP_Signable (via Veneer)
- >> GAP_Authenticate (via Veneer)
- >> bonding_info_key_handle (via Veneer)
- >> GAPBondMgr_SetParameter (via Veneer)
- >> GAPBondMgr_ResolveAddr (via Veneer)
- >> GAPBondMgr_ProcessGAPMsg (via Veneer)
- >> GAPBondMgr_GetParameter (via Veneer)
- >> gapBondMgrGetPublicAddr (via Veneer)
- >> gapBondMgrAuthenticate (via Veneer)
- >> gapBondMgrAddBond (via Veneer)
- >> battReadAttrCB (via Veneer)
- >> scanParamWriteAttrCB (via Veneer)
- >> devInfo_ReadAttrCB (via Veneer)
- >> GATT_RegisterService (via Veneer)
- >> gattServApp_ProcessReadMultiReq (via Veneer)
- >> gattServApp_ProcessReadByTypeReq (via Veneer)
- >> gattServApp_ProcessReadByGrpTypeReq (via Veneer)
- >> gattServApp_ProcessPrepareWriteReq (via Veneer)
- >> AudioProfile_Read (via Veneer)
- >> OutQueue (via Veneer)
- >> InQueue (via Veneer)
- >> Google_AudioProfile_SetParameter (via Veneer)
- >> AudioProfile_SetParameter (via Veneer)
- >> voice_data_encode_inqueue (via Veneer)
- >> HidDev_ReadAttrCB (via Veneer)
- >> ppsp_impl_prc_serv_msgs_upda (via Veneer)
- >> ppsp_impl_prc_serv_msgs_rand (via Veneer)
- >> ppsp_impl_new_msgs_raws (via Veneer)
- >> ppsp_serv_set_para (via Veneer)
- >> ppsp_serv_set_attr (via Veneer)
- >> ppsp_serv_get_attr (via Veneer)
- >> ATT_ParseWriteReq (via Veneer)
- >> ATT_ParseReadByTypeReq (via Veneer)
- >> ATT_ParsePrepareWriteReq (via Veneer)
- >> ATT_ParseFindByTypeValueReq (via Veneer)
- >> ATT_ConvertUUIDto128 (via Veneer)
- >> ATT_BuildReadRsp (via Veneer)
- >> ATT_BuildReadMultiRsp (via Veneer)
- >> ATT_BuildReadByTypeRsp (via Veneer)
- >> ATT_BuildReadByGrpTypeRsp (via Veneer)
- >> ATT_BuildReadBlobRsp (via Veneer)
- >> ATT_BuildPrepareWriteRsp (via Veneer)
- >> ATT_BuildHandleValueInd (via Veneer)
- >> ATT_BuildFindInfoRsp (via Veneer)
- >> LL_SetRandomAddress1 (via Veneer)
- >> hidDevSendReport (via Veneer)
- >> smProcessRandComplete (via Veneer)
- >> smSavePairInfo (via Veneer)
- >> smPairingSendMasterID (via Veneer)
- >> smPairingSendIdentityAddrInfo (via Veneer)
- >> smGenerateRandMsg (via Veneer)
- >> smGenerateConfirm (via Veneer)
- >> smpResponderProcessPairingReq (via Veneer)
- >> smpResponderProcessSigningInfo (via Veneer)
- >> smpResponderProcessPairingRandom (via Veneer)
- >> smpResponderProcessPairingConfirm (via Veneer)
- >> smpResponderProcessMasterID (via Veneer)
- >> smpResponderProcessIdentityInfo (via Veneer)
- >> smpResponderProcessIdentityAddrInfo (via Veneer)
- >> smpResponderProcessEncryptionInformation (via Veneer)
- >> smResponderProcessLTKReq (via Veneer)
- >> l2capParsePacket (via Veneer)
- >> l2capNotifySignal (via Veneer)
- >> l2capNotifyData (via Veneer)
- >> gattNotifyEvent (via Veneer)
- >> gattProcessFindInfoReq (via Veneer)
- >> linkDB_Add (via Veneer)
- >> SM_PasskeyUpdate (via Veneer)
- >> sendEstLinkEvent (via Veneer)
- >> gapPasskeyNeededCB (via Veneer)
- >> gapPairingCompleteCB (via Veneer)
- >> sendAuthEvent (via Veneer)
- >> SM_ResolveRandomAddrs (via Veneer)
- >> SM_CalcRandomAddr (via Veneer)
- >> gapUpdateConnSignCounter (via Veneer)
- >> gapReadBD_ADDRStatus (via Veneer)
- >> gapProcessRandomAddrComplete (via Veneer)
- >> gapProcessNewAddr (via Veneer)
- >> gapSendDeviceInitDoneEvent (via Veneer)
- >> smpParseSigningInfo (via Veneer)
- >> smpParsePairingRandom (via Veneer)
- >> smpParsePairingConfirm (via Veneer)
- >> smpParseMasterID (via Veneer)
- >> smpParseIdentityInfo (via Veneer)
- >> smpParseIdentityAddrInfo (via Veneer)
- >> smpParseEncInfo (via Veneer)
- >> smpBuildSigningInfo (via Veneer)
- >> smpBuildPairingRandom (via Veneer)
- >> smpBuildPairingConfirm (via Veneer)
- >> smpBuildMasterID (via Veneer)
- >> smpBuildIdentityInfo (via Veneer)
- >> smpBuildIdentityAddrInfo (via Veneer)
- >> smpBuildEncInfo (via Veneer)
- >> sm_c1new (via Veneer)
- >> sm_CMAC (via Veneer)
- >> l2capPktToSegmentBuff (via Veneer)

osal_memdup (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAP_Bond (via Veneer)
- >> gapPairingCompleteCB (via Veneer)

osal_memset (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> fs_init (via Veneer)
- >> GAP_UpdateAdvertisingData (via Veneer)
- >> GAPRole_SetParameter (via Veneer)
- >> GAPRole_Init (via Veneer)
- >> gapRole_ProcessGAPMsg (via Veneer)
- >> GGS_SetParameter (via Veneer)
- >> GATTServApp_ReadAttr (via Veneer)
- >> GAP_PasscodeUpdate (via Veneer)
- >> GAP_Authenticate (via Veneer)
- >> GAPBondMgr_SetParameter (via Veneer)
- >> GAPBondMgr_ProcessGAPMsg (via Veneer)
- >> GAPBondMgr_LinkEst (via Veneer)
- >> gapBondMgrUpdateCharCfg (via Veneer)
- >> gapBondMgrReadBonds (via Veneer)
- >> gapBondMgrEraseBonding (via Veneer)
- >> gapBondMgrAuthenticate (via Veneer)
- >> gapBondMgrAddBond (via Veneer)
- >> GAP_ParamsInit (via Veneer)
- >> hal_voice_init (via Veneer)
- >> osalInitTasks (via Veneer)
- >> gattServApp_SetNumPrepareWrites (via Veneer)
- >> gattServApp_ProcessFindByTypeValueReq (via Veneer)
- >> gattServApp_ProcessExecuteWriteReq (via Veneer)
- >> gattServApp_HandleConnStatusCB (via Veneer)
- >> kscan_button_init (via Veneer)
- >> open_ir_learn (via Veneer)
- >> kscan_soft_polling_read (via Veneer)
- >> ppsp_impl_new_msgs_raws (via Veneer)
- >> llProcessSlaveControlProcedures1 (via Veneer)
- >> hidDevDisconnected (via Veneer)
- >> smpResponderProcessPairingReq (via Veneer)
- >> smResponderSendNextKeyInfo (via Veneer)
- >> smResponderProcessLTKReq (via Veneer)
- >> l2capNotifySignal (via Veneer)
- >> l2capNotifyData (via Veneer)
- >> gattNotifyEvent (via Veneer)
- >> gapAllocAdvRecs (via Veneer)
- >> linkDB_Remove (via Veneer)
- >> SM_StartPairing (via Veneer)
- >> sendEstLinkEvent (via Veneer)
- >> gapSendPairingReqEvent (via Veneer)
- >> gapSendBondCompleteEvent (via Veneer)
- >> sendAuthEvent (via Veneer)
- >> SM_VerifyAuthenSig (via Veneer)
- >> smSetPairingReqRsp (via Veneer)
- >> sm_c1new (via Veneer)
- >> sm_ah (via Veneer)
- >> sm_CMAC (via Veneer)
- >> generate_subkey (via Veneer)

osal_msg_allocate (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GATTServApp_SendCCCUpdatedEvent (via Veneer)
- >> smProcessRandComplete (via Veneer)
- >> l2capNotifySignal (via Veneer)
- >> l2capNotifyData (via Veneer)
- >> l2capEncapSendData (via Veneer)
- >> gattNotifyEvent (via Veneer)
- >> gapWriteAdvEnableStatus (via Veneer)
- >> gapWriteAdvDataStatus (via Veneer)
- >> gapSendMakeDiscEvent (via Veneer)
- >> sendEstLinkEvent (via Veneer)
- >> gapSendPairingReqEvent (via Veneer)
- >> gapSendLinkUpdateEvent (via Veneer)
- >> gapSendBondCompleteEvent (via Veneer)
- >> gapPasskeyNeededCB (via Veneer)
- >> sendTerminateEvent (via Veneer)
- >> sendAuthEvent (via Veneer)
- >> gapUpdateConnSignCounter (via Veneer)
- >> gapProcessRandomAddrComplete (via Veneer)
- >> gapSendDeviceInitDoneEvent (via Veneer)

osal_msg_deallocate (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAPRole_ProcessEvent (via Veneer)
- >> GAPBondMgr_ProcessEvent (via Veneer)
- >> gapBondRecvEvt (via Veneer)
- >> SM_ProcessEvent (via Veneer)
- >> L2CAP_ProcessEvent (via Veneer)
- >> HidDev_ProcessEvent (via Veneer)
- >> GATT_ProcessEvent (via Veneer)
- >> GAP_ProcessEvent (via Veneer)
- >> HidKbd_ProcessEvent (via Veneer)
- >> GATTServApp_ProcessEvent (via Veneer)

osal_msg_receive (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAPRole_ProcessEvent (via Veneer)
- >> GAPBondMgr_ProcessEvent (via Veneer)
- >> SM_ProcessEvent (via Veneer)
- >> L2CAP_ProcessEvent (via Veneer)
- >> HidDev_ProcessEvent (via Veneer)
- >> GATT_ProcessEvent (via Veneer)
- >> GAP_ProcessEvent (via Veneer)
- >> HidKbd_ProcessEvent (via Veneer)
- >> GATTServApp_ProcessEvent (via Veneer)

osal_msg_send (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> SM_ProcessEvent (via Veneer)
- >> GAP_ProcessEvent (via Veneer)
- >> GATTServApp_SendCCCUpdatedEvent (via Veneer)
- >> smProcessRandComplete (via Veneer)
- >> l2capNotifySignal (via Veneer)
- >> l2capNotifyData (via Veneer)
- >> l2capEncapSendData (via Veneer)
- >> gattNotifyEvent (via Veneer)
- >> gapWriteAdvEnableStatus (via Veneer)
- >> gapWriteAdvDataStatus (via Veneer)
- >> gapSendMakeDiscEvent (via Veneer)
- >> sendEstLinkEvent (via Veneer)
- >> gapSendPairingReqEvent (via Veneer)
- >> gapSendLinkUpdateEvent (via Veneer)
- >> gapSendBondCompleteEvent (via Veneer)
- >> gapPasskeyNeededCB (via Veneer)
- >> sendTerminateEvent (via Veneer)
- >> sendAuthEvent (via Veneer)
- >> gapUpdateConnSignCounter (via Veneer)
- >> gapProcessRandomAddrComplete (via Veneer)
- >> gapSendDeviceInitDoneEvent (via Veneer)

osal_pwrmgr_device (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> app_main (via Veneer)

osal_pwrmgr_powerconserve0 (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> osal_idle_task0 (via Veneer)

osal_rand (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> smResponderSendNextKeyInfo (via Veneer)
- >> smGenerateRandBuf (via Veneer)

osal_revmemcpy (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAPBondMgr_SetParameter (via Veneer)
- >> sm_s1 (via Veneer)
- >> SM_VerifyAuthenSig (via Veneer)
- >> SM_GenerateAuthenSig (via Veneer)
- >> sm_c1new (via Veneer)
- >> sm_ah (via Veneer)

osal_set_event (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> update_connect_param (via Veneer)
- >> GAPRole_SetParameter (via Veneer)
- >> gapRole_ProcessGAPMsg (via Veneer)
- >> HidDev_Init (via Veneer)
- >> start_voice_task (via Veneer)
- >> voice_evt_handler_adpcm (via Veneer)
- >> kscan_evt_handler (via Veneer)
- >> start_sending_single_carrier (via Veneer)
- >> bsp_button_init_config_handle (via Veneer)
- >> LL_SetAdvControl1 (via Veneer)
- >> gapIncSignCounter (via Veneer)

osal_start_reload_timer (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> GAP_MakeDiscoverable (via Veneer)
- >> voice_data_encode_inqueue (via Veneer)
- >> gapWriteAdvEnableStatus (via Veneer)
- >> gapProcessRandomAddrComplete (via Veneer)

osal_start_system (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> app_main (via Veneer)
- >> wakeupProcess1 (via Veneer)

osal_start_timerEx (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_KSCAN_IRQHandler (via Veneer)
- >> hal_kscan_timeout_handler (via Veneer)
- >> kscan_wakeup_handler (via Veneer)
- >> GAPRole_SetParameter (via Veneer)
- >> GAPRole_ProcessEvent (via Veneer)
- >> gapRole_startConnUpdate (via Veneer)
- >> gapRole_ProcessOSALMsg (via Veneer)
- >> gapRole_ProcessGAPMsg (via Veneer)
- >> single_carrier_ProcessEvent (via Veneer)
- >> hal_keyboard_matrix_task_ProcessEvent (via Veneer)
- >> HidDev_ProcessEvent (via Veneer)
- >> Bsp_Btn_ProcessEvent (via Veneer)
- >> Batt_task_ProcessEvent (via Veneer)
- >> Batt_Init (via Veneer)
- >> start_enable_latency_event (via Veneer)
- >> enable_advert (via Veneer)
- >> bonding_info_key_advertise_handle (via Veneer)
- >> ble_advertiseing_status_display_handle (via Veneer)
- >> HidKbd_ProcessEvent (via Veneer)
- >> voice_pushing_over_handle (via Veneer)
- >> stop_voice_task (via Veneer)
- >> start_sending_single_carrier (via Veneer)
- >> start_enter_power_off_mode (via Veneer)
- >> open_ir_learn (via Veneer)
- >> ir_sending_learn_wavefrom_handle (via Veneer)
- >> ir_right_sending_handle (via Veneer)
- >> bt_key_code_sending_handle (via Veneer)
- >> voice_task_ProcessEvent (via Veneer)
- >> ppsp_impl_reset_appCb (via Veneer)
- >> ir_recving_Hdl (via Veneer)
- >> LL_SetAdvControl1 (via Veneer)
- >> hidDevGapStateCB (via Veneer)
- >> hidDevStartIdleTimer (via Veneer)
- >> gapWriteAdvEnableStatus (via Veneer)
- >> gapProcessAdvertisingEvt (via Veneer)

osal_stop_timerEx (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_KSCAN_IRQHandler (via Veneer)
- >> hal_kscan_timeout_handler (via Veneer)
- >> GAP_EndDiscoverable (via Veneer)
- >> get_osal_connect_event_status (via Veneer)
- >> GAPRole_SetParameter (via Veneer)
- >> GAPRole_SendUpdateParam (via Veneer)
- >> gapRole_ProcessOSALMsg (via Veneer)
- >> gapRole_ProcessGAPMsg (via Veneer)
- >> hal_keyboard_matrix_task_ProcessEvent (via Veneer)
- >> GAP_ProcessEvent (via Veneer)
- >> Bsp_Btn_ProcessEvent (via Veneer)
- >> disable_slave_latency_handle (via Veneer)
- >> voiceCaptureStart (via Veneer)
- >> advance_close_ir_learn (via Veneer)
- >> voice_task_ProcessEvent (via Veneer)
- >> stop_enter_power_off_mode (via Veneer)
- >> close_ir_learn (via Veneer)
- >> LL_SetAdvControl1 (via Veneer)
- >> hidDevGapStateCB (via Veneer)
- >> hidDevDisconnected (via Veneer)
- >> gapProcessAdvertisingEvt (via Veneer)

osal_strlen (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ggs_WriteAttrCB (via Veneer)
- >> ggs_ReadAttrCB (via Veneer)
- >> GATTServApp_ReadAttr (via Veneer)

read_LL_remainder_time (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> config_RTC1 (via Veneer)

read_current_fine_time (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> sending_nec_38khz (via Veneer)
- >> rf_phy_dtm_trigged (via Veneer)
- >> wakeupProcess1 (via Veneer)
- >> llbuf_alloc_time_statics (via Veneer)
- >> ll_hw_go1 (via Veneer)
- >> LL_IRQHandler1 (via Veneer)
- >> read_LL_remainder_time1 (via Veneer)

rtc_get_counter (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> osal_snv_write (via Veneer)
- >> _hard_fault (via Veneer)
- >> wakeup_init1 (via Veneer)
- >> wakeupProcess1 (via Veneer)
- >> check_16MXtal_by_rcTracking (via Veneer)

setSleepMode (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> init_config (via Veneer)

set_max_length (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> wakeup_init1 (via Veneer)
- >> ll_hw_go1 (via Veneer)

set_sleep_flag (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> wakeupProcess1 (via Veneer)
- >> check_16MXtal_by_rcTracking (via Veneer)

set_timer (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> rf_phy_dtm_init (via Veneer)
- >> wakeup_init1 (via Veneer)
- >> wakeupProcess1 (via Veneer)
- >> ll_scheduler_singleconn (via Veneer)

spif_cmd (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> _spif_read_status_reg_x (via Veneer)

spif_config (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hw_spif_cache_config (via Veneer)

spif_erase_sector (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_flash_erase_sector (via Veneer)

spif_rddata (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> _spif_read_status_reg_x (via Veneer)

spif_read_id (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hw_spif_cache_config (via Veneer)

spif_write (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_flash_write (via Veneer)

spif_write_dma (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> hal_flash_write_by_dma (via Veneer)

update_tx_read_ptr (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> ll_generateTxBuffer1 (via Veneer)

update_tx_write_ptr (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> llWriteTxData1 (via Veneer)

zigbee_crc16_gen (Thumb, 0 bytes, Stack size 0 bytes, bb_rom_sym_m0.txt(ABSOLUTE))
[Called By]

- >> rf_phy_dtm_zigbee_pkt_gen (via Veneer)

HCI_LE_LtkReqNegReplyCmd (Thumb, 34 bytes, Stack size 16 bytes, patch.o(_func_xip_code_.HCI_LE_LtkReqNegReplyCmd))
[Stack]

- Max Depth = 24
- Call Chain = HCI_LE_LtkReqNegReplyCmd ⇒ LL_EncLtkNegReply

[Calls]

- >> LL_EncLtkNegReply
- >> HCI_CommandCompleteEvent (via Veneer)

[Called By]

- >> smResponderProcessLTKReq

HCI_LE_LtkReqReplyCmd (Thumb, 34 bytes, Stack size 16 bytes, patch.o(_func_xip_code_.HCI_LE_LtkReqReplyCmd))
[Stack]

- Max Depth = 32
- Call Chain = HCI_LE_LtkReqReplyCmd ⇒ LL_EncLtkReply

[Calls]

- >> LL_EncLtkReply
- >> HCI_CommandCompleteEvent (via Veneer)

[Called By]

- >> smResponderProcessLTKReq

HCI_LE_SetRandomAddressCmd (Thumb, 32 bytes, Stack size 8 bytes, patch.o(_func_xip_code_.HCI_LE_SetRandomAddressCmd))
[Stack]

- Max Depth = 32
- Call Chain = HCI_LE_SetRandomAddressCmd ⇒ LL_SetRandomAddress1

[Calls]

- >> LL_SetRandomAddress1
- >> HCI_CommandCompleteEvent (via Veneer)

[Called By]

- >> gapProcessNewAddr

LL_Disconnect1 (Thumb, 28 bytes, Stack size 16 bytes, patch.o(_func_xip_code_.LL_Disconnect1))
[Stack]

- Max Depth = 16
- Call Chain = LL_Disconnect1

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> LL_Disconnect0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

LL_ENC_Decrypt1 (Thumb, 364 bytes, Stack size 40 bytes, patch.o(_func_xip_code_.LL_ENC_Decrypt1))
[Stack]

- Max Depth = 40
- Call Chain = LL_ENC_Decrypt1

[Calls]

- >> LL_ENC_LoadKey (via Veneer)
- >> LL_ENC_GenerateNonce (via Veneer)
- >> __aeabi_uread4 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

LL_ENC_Encrypt1 (Thumb, 342 bytes, Stack size 40 bytes, patch.o(_func_xip_code_.LL_ENC_Encrypt1))
[Stack]

- Max Depth = 40
- Call Chain = LL_ENC_Encrypt1

[Calls]

- >> LL_ENC_LoadKey (via Veneer)
- >> LL_ENC_GenerateNonce (via Veneer)
- >> __aeabi_uread4 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

LL_EncLtkNegReply (Thumb, 72 bytes, Stack size 8 bytes, patch.o(_func_xip_code_.LL_EncLtkNegReply))
[Stack]

- Max Depth = 8
- Call Chain = LL_EncLtkNegReply

[Calls]

- >> llEnqueueCtrlPkt (via Veneer)
- >> LL_ConnActive (via Veneer)

[Called By]

- >> HCI_LE_LtkReqNegReplyCmd

LL_EncLtkReply (Thumb, 84 bytes, Stack size 16 bytes, patch.o(_func_xip_code_.LL_EncLtkReply))
[Stack]

- Max Depth = 16
- Call Chain = LL_EncLtkReply

[Calls]

- >> llEnqueueCtrlPkt (via Veneer)
- >> LL_ConnActive (via Veneer)

[Called By]

- >> HCI_LE_LtkReqReplyCmd

LL_InitConnectContext (Thumb, 116 bytes, Stack size 24 bytes, patch.o(_func_xip_code_.LL_InitConnectContext))
[Stack]

- Max Depth = 24
- Call Chain = LL_InitConnectContext

[Calls]

- >> __aeabi_memclr4 (via Veneer)

[Called By]

- >> ble_mem_init_config (via Veneer)

LL_SetAdvControl1 (Thumb, 430 bytes, Stack size 24 bytes, patch.o(_func_xip_code_.LL_SetAdvControl1))
[Stack]

- Max Depth = 24
- Call Chain = LL_SetAdvControl1

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> osal_set_event (via Veneer)
- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> ll_debug_output (via Veneer)
- >> llSetupAdv (via Veneer)
- >> clear_timer (via Veneer)
- >> __ARM_common_switch8 (via Veneer)

[Address Reference Count : 1]

- patch.o(_func_xip_code_.ll_patch_slave)

LL_SetAdvParam1 (Thumb, 94 bytes, Stack size 40 bytes, patch.o(_func_xip_code_.LL_SetAdvParam1))
[Stack]

- Max Depth = 40
- Call Chain = LL_SetAdvParam1

[Calls]

- >> LL_SetAdvParam0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_func_xip_code_.ll_patch_slave)

LL_SetDataLengh1 (Thumb, 40 bytes, Stack size 8 bytes, patch.o(_func_xip_code_.LL_SetDataLengh1))
[Stack]

- Max Depth = 8
- Call Chain = LL_SetDataLengh1

[Calls]

- >> LL_SetDataLengh0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

LL_SetRandomAddress1 (Thumb, 202 bytes, Stack size 24 bytes, patch.o(_func_xip_code_.LL_SetRandomAddress1))
[Stack]

- Max Depth = 24
- Call Chain = LL_SetRandomAddress1

[Calls]

- >> osal_memcpy (via Veneer)

[Called By]

- >> HCI_LE_SetRandomAddressCmd

llConnTerminate1 (Thumb, 76 bytes, Stack size 16 bytes, patch.o(_func_xip_code_.llConnTerminate1))
[Stack]

- Max Depth = 16
- Call Chain = llConnTerminate1

[Calls]

- >> osal_memcmp (via Veneer)
- >> llProcessChanMap (via Veneer)
- >> llConnTerminate0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_func_xip_code_.ll_patch_slave)

llProcessSlaveControlProcedures1 (Thumb, 878 bytes, Stack size 48 bytes, patch.o(_func_xip_code_.llProcessSlaveControlProcedures1))
[Stack]

- Max Depth = 56
- Call Chain = llProcessSlaveControlProcedures1 ⇒ llSetupStartEncRsp

[Calls]

- >> osal_memset (via Veneer)
- >> llSetupStartEncRsp (via Veneer)
- >> ll_hw_set_cte_txSupp (via Veneer)
- >> llSetupVersionIndReq (via Veneer)
- >> llSetupUnknownRsp (via Veneer)
- >> llSetupTermInd (via Veneer)
- >> llSetupStartEncReq (via Veneer)
- >> llSetupRejectInd (via Veneer)
- >> llSetupPhyRsp (via Veneer)
- >> llSetupPhyReq (via Veneer)
- >> llSetupPauseEncRsp (via Veneer)
- >> llSetupFeatureSetRsp (via Veneer)
- >> llSetupEncRsp (via Veneer)
- >> llSetupDataLenghtRsp (via Veneer)
- >> llSetupDataLenghtReq (via Veneer)
- >> llSetupCTERsp (via Veneer)
- >> llSetupCTEReq (via Veneer)
- >> llReplaceCtrlPkt (via Veneer)
- >> llPduLengthUpdate (via Veneer)
- >> llDequeueCtrlPkt (via Veneer)
- >> llConnTerminate (via Veneer)
- >> __ARM_common_switch8 (via Veneer)
- >> LL_ReadRemoteVersionInfoCback (via Veneer)
- >> LL_EncLtkReqCback (via Veneer)
- >> LL_EncKeyRefreshCback (via Veneer)
- >> LL_EncChangeCback (via Veneer)
- >> LL_ENC_AES128_Encrypt (via Veneer)

[Address Reference Count : 1]

- patch.o(_func_xip_code_.ll_patch_slave)

ll_patch_slave (Thumb, 50 bytes, Stack size 0 bytes, patch.o(_func_xip_code_.ll_patch_slave))
[Called By]

- >> main (via Veneer)

init_config (Thumb, 504 bytes, Stack size 24 bytes, patch.o(_section_xip_code_))
[Stack]

- Max Depth = 32
- Call Chain = init_config ⇒ global_config_hclk_related

[Calls]

- >> enableSleep (via Veneer)
- >> global_config_hclk_related (via Veneer)
- >> setSleepMode (via Veneer)

[Called By]

- >> main (via Veneer)

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

- att_server.o(i.ATT_ErrorRsp)

ATT_BuildExchangeMTURsp (Thumb, 14 bytes, Stack size 0 bytes, att_util.o(i.ATT_BuildExchangeMTURsp))
[Address Reference Count : 1]

- att_server.o(i.ATT_ExchangeMTURsp)

ATT_BuildFindByTypeValueRsp (Thumb, 48 bytes, Stack size 8 bytes, att_util.o(i.ATT_BuildFindByTypeValueRsp))
[Stack]

- Max Depth = 8
- Call Chain = ATT_BuildFindByTypeValueRsp

[Address Reference Count : 1]

- att_server.o(i.ATT_FindByTypeValueRsp)

ATT_BuildFindInfoRsp (Thumb, 108 bytes, Stack size 24 bytes, att_util.o(i.ATT_BuildFindInfoRsp))
[Stack]

- Max Depth = 24
- Call Chain = ATT_BuildFindInfoRsp

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- att_server.o(i.ATT_FindInfoRsp)

ATT_BuildHandleValueInd (Thumb, 32 bytes, Stack size 8 bytes, att_util.o(i.ATT_BuildHandleValueInd))
[Stack]

- Max Depth = 8
- Call Chain = ATT_BuildHandleValueInd

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 2]

- att_server.o(i.ATT_HandleValueInd)
- att_server.o(i.ATT_HandleValueNoti)

ATT_BuildPrepareWriteRsp (Thumb, 42 bytes, Stack size 8 bytes, att_util.o(i.ATT_BuildPrepareWriteRsp))
[Stack]

- Max Depth = 8
- Call Chain = ATT_BuildPrepareWriteRsp

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- att_server.o(i.ATT_PrepareWriteRsp)

ATT_BuildReadBlobRsp (Thumb, 16 bytes, Stack size 8 bytes, att_util.o(i.ATT_BuildReadBlobRsp))
[Stack]

- Max Depth = 8
- Call Chain = ATT_BuildReadBlobRsp

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- att_server.o(i.ATT_ReadBlobRsp)

ATT_BuildReadByGrpTypeRsp (Thumb, 26 bytes, Stack size 8 bytes, att_util.o(i.ATT_BuildReadByGrpTypeRsp))
[Stack]

- Max Depth = 8
- Call Chain = ATT_BuildReadByGrpTypeRsp

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- att_server.o(i.ATT_ReadByGrpTypeRsp)

ATT_BuildReadByTypeRsp (Thumb, 26 bytes, Stack size 8 bytes, att_util.o(i.ATT_BuildReadByTypeRsp))
[Stack]

- Max Depth = 8
- Call Chain = ATT_BuildReadByTypeRsp

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- att_server.o(i.ATT_ReadByTypeRsp)

ATT_BuildReadMultiRsp (Thumb, 16 bytes, Stack size 8 bytes, att_util.o(i.ATT_BuildReadMultiRsp))
[Stack]

- Max Depth = 8
- Call Chain = ATT_BuildReadMultiRsp

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- att_server.o(i.ATT_ReadMultiRsp)

ATT_BuildReadRsp (Thumb, 16 bytes, Stack size 8 bytes, att_util.o(i.ATT_BuildReadRsp))
[Stack]

- Max Depth = 8
- Call Chain = ATT_BuildReadRsp

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- att_server.o(i.ATT_ReadRsp)

ATT_CompareUUID (Thumb, 74 bytes, Stack size 32 bytes, att_util.o(i.ATT_CompareUUID))
[Stack]

- Max Depth = 48
- Call Chain = ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> osal_memcmp (via Veneer)
- >> ATT_ConvertUUIDto128

[Called By]

- >> GATT_FindNextAttr
- >> GATT_FindHandleUUID
- >> GATTServApp_ReadAttr
- >> GATT_RegisterService
- >> gattProcessReadByGrpTypeReq

ATT_ConvertUUIDto128 (Thumb, 38 bytes, Stack size 16 bytes, att_util.o(i.ATT_ConvertUUIDto128))
[Stack]

- Max Depth = 16
- Call Chain = ATT_ConvertUUIDto128

[Calls]

- >> osal_memcpy (via Veneer)

[Called By]

- >> ATT_CompareUUID

ATT_ErrorRsp (Thumb, 14 bytes, Stack size 8 bytes, att_server.o(i.ATT_ErrorRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_ErrorRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattServApp_ProcessMsg
- >> gattProcessRxData
- >> gattServerProcessMsgCB

ATT_ExchangeMTURsp (Thumb, 54 bytes, Stack size 16 bytes, att_server.o(i.ATT_ExchangeMTURsp))
[Stack]

- Max Depth = 260
- Call Chain = ATT_ExchangeMTURsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg
- >> ATT_UpdateMtuSize

[Called By]

- >> gattServApp_ProcessMsg

ATT_ExecuteWriteRsp (Thumb, 14 bytes, Stack size 8 bytes, att_server.o(i.ATT_ExecuteWriteRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_ExecuteWriteRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattServApp_ProcessExecuteWriteReq

ATT_FindByTypeValueRsp (Thumb, 24 bytes, Stack size 8 bytes, att_server.o(i.ATT_FindByTypeValueRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_FindByTypeValueRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattServApp_ProcessFindByTypeValueReq

ATT_FindInfoRsp (Thumb, 34 bytes, Stack size 8 bytes, att_server.o(i.ATT_FindInfoRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_FindInfoRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattProcessFindInfoReq

ATT_GetCurrentMTUSize (Thumb, 10 bytes, Stack size 0 bytes, att_util.o(i.ATT_GetCurrentMTUSize))
[Called By]

- >> l2capPktToSegmentBuff

ATT_HandleValueInd (Thumb, 14 bytes, Stack size 8 bytes, att_server.o(i.ATT_HandleValueInd))
[Stack]

- Max Depth = 252
- Call Chain = ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> GATT_Indication

ATT_HandleValueNoti (Thumb, 14 bytes, Stack size 8 bytes, att_server.o(i.ATT_HandleValueNoti))
[Stack]

- Max Depth = 252
- Call Chain = ATT_HandleValueNoti ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> GATT_Notification

ATT_InitMtuSize (Thumb, 28 bytes, Stack size 8 bytes, att_util.o(i.ATT_InitMtuSize))
[Stack]

- Max Depth = 8
- Call Chain = ATT_InitMtuSize

[Called By]

- >> GATT_Init

ATT_ParseExchangeMTUReq (Thumb, 24 bytes, Stack size 0 bytes, att_util.o(i.ATT_ParseExchangeMTUReq))
[Address Reference Count : 1]

- gatt_server.o(.constdata)

ATT_ParseExecuteWriteReq (Thumb, 18 bytes, Stack size 0 bytes, att_util.o(i.ATT_ParseExecuteWriteReq))
[Address Reference Count : 1]

- gatt_server.o(.constdata)

ATT_ParseFindByTypeValueReq (Thumb, 72 bytes, Stack size 16 bytes, att_util.o(i.ATT_ParseFindByTypeValueReq))
[Stack]

- Max Depth = 16
- Call Chain = ATT_ParseFindByTypeValueReq

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- gatt_server.o(.constdata)

ATT_ParseFindInfoReq (Thumb, 34 bytes, Stack size 0 bytes, att_util.o(i.ATT_ParseFindInfoReq))
[Address Reference Count : 1]

- gatt_server.o(.constdata)

ATT_ParsePacket (Thumb, 94 bytes, Stack size 24 bytes, att_util.o(i.ATT_ParsePacket))
[Stack]

- Max Depth = 220
- Call Chain = ATT_ParsePacket ⇒ SM_VerifyAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> SM_VerifyAuthenSig

[Called By]

- >> gattProcessRxData

ATT_ParsePrepareWriteReq (Thumb, 56 bytes, Stack size 8 bytes, att_util.o(i.ATT_ParsePrepareWriteReq))
[Stack]

- Max Depth = 8
- Call Chain = ATT_ParsePrepareWriteReq

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- gatt_server.o(.constdata)

ATT_ParseReadBlobReq (Thumb, 34 bytes, Stack size 0 bytes, att_util.o(i.ATT_ParseReadBlobReq))
[Address Reference Count : 1]

- gatt_server.o(.constdata)

ATT_ParseReadByTypeReq (Thumb, 60 bytes, Stack size 8 bytes, att_util.o(i.ATT_ParseReadByTypeReq))
[Stack]

- Max Depth = 8
- Call Chain = ATT_ParseReadByTypeReq

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- gatt_server.o(.constdata)

ATT_ParseReadMultiReq (Thumb, 62 bytes, Stack size 12 bytes, att_util.o(i.ATT_ParseReadMultiReq))
[Stack]

- Max Depth = 12
- Call Chain = ATT_ParseReadMultiReq

[Address Reference Count : 1]

- gatt_server.o(.constdata)

ATT_ParseReadReq (Thumb, 24 bytes, Stack size 0 bytes, att_util.o(i.ATT_ParseReadReq))
[Address Reference Count : 1]

- gatt_server.o(.constdata)

ATT_ParseWriteReq (Thumb, 66 bytes, Stack size 16 bytes, att_util.o(i.ATT_ParseWriteReq))
[Stack]

- Max Depth = 16
- Call Chain = ATT_ParseWriteReq

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- gatt_server.o(.constdata)

ATT_PrepareWriteRsp (Thumb, 14 bytes, Stack size 8 bytes, att_server.o(i.ATT_PrepareWriteRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_PrepareWriteRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattServApp_ProcessPrepareWriteReq

ATT_ReadBlobRsp (Thumb, 14 bytes, Stack size 8 bytes, att_server.o(i.ATT_ReadBlobRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_ReadBlobRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattServApp_ProcessMsg

ATT_ReadByGrpTypeRsp (Thumb, 24 bytes, Stack size 8 bytes, att_server.o(i.ATT_ReadByGrpTypeRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_ReadByGrpTypeRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattServApp_ProcessReadByGrpTypeReq

ATT_ReadByTypeRsp (Thumb, 24 bytes, Stack size 8 bytes, att_server.o(i.ATT_ReadByTypeRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_ReadByTypeRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattServApp_ProcessReadByTypeReq

ATT_ReadMultiRsp (Thumb, 14 bytes, Stack size 8 bytes, att_server.o(i.ATT_ReadMultiRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_ReadMultiRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattServApp_ProcessReadMultiReq

ATT_ReadRsp (Thumb, 14 bytes, Stack size 8 bytes, att_server.o(i.ATT_ReadRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_ReadRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattServApp_ProcessMsg

ATT_SetMTUSizeMax (Thumb, 40 bytes, Stack size 0 bytes, att_util.o(i.ATT_SetMTUSizeMax))
[Called By]

- >> voice_task_Init

ATT_UpdateMtuSize (Thumb, 16 bytes, Stack size 0 bytes, att_util.o(i.ATT_UpdateMtuSize))
[Called By]

- >> ATT_ExchangeMTURsp
- >> gapProcessDisconnectCompleteEvt
- >> gapProcessConnectionCompleteEvt

ATT_WriteRsp (Thumb, 14 bytes, Stack size 8 bytes, att_server.o(i.ATT_WriteRsp))
[Stack]

- Max Depth = 252
- Call Chain = ATT_WriteRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> attSendMsg

[Called By]

- >> gattServApp_ProcessWriteReq

AudioProfile_AddService (Thumb, 54 bytes, Stack size 16 bytes, audiogattprofile.o(i.AudioProfile_AddService))
[Stack]

- Max Depth = 104
- Call Chain = AudioProfile_AddService ⇒ GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATTServApp_RegisterService
- >> linkDB_Register
- >> GATTServApp_InitCharCfg

[Called By]

- >> voice_task_Init

AudioProfile_Read (Thumb, 76 bytes, Stack size 24 bytes, audiogattprofile.o(i.AudioProfile_Read))
[Stack]

- Max Depth = 24
- Call Chain = AudioProfile_Read

[Calls]

- >> osal_memcpy (via Veneer)

[Called By]

- >> AudioProfile_ReadAttrCB

AudioProfile_SetParameter (Thumb, 104 bytes, Stack size 32 bytes, audiogattprofile.o(i.AudioProfile_SetParameter))
[Stack]

- Max Depth = 620
- Call Chain = AudioProfile_SetParameter ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_memcpy (via Veneer)
- >> GATTServApp_ProcessCharCfg

[Called By]

- >> voice_report_stop_cmd_handle
- >> voice_report_start_cmd_handle
- >> voice_data_report

Batt_AddService (Thumb, 24 bytes, Stack size 8 bytes, battservice.o(i.Batt_AddService))
[Stack]

- Max Depth = 96
- Call Chain = Batt_AddService ⇒ GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATTServApp_RegisterService
- >> GATTServApp_InitCharCfg

[Called By]

- >> HidDev_Init

Batt_GetParameter (Thumb, 72 bytes, Stack size 8 bytes, battservice.o(i.Batt_GetParameter))
[Stack]

- Max Depth = 8
- Call Chain = Batt_GetParameter

[Called By]

- >> HidKbd_AddService

Batt_HandleConnStatusCB (Thumb, 40 bytes, Stack size 8 bytes, battservice.o(i.Batt_HandleConnStatusCB))
[Stack]

- Max Depth = 28
- Call Chain = Batt_HandleConnStatusCB ⇒ linkDB_State ⇒ linkDB_Find

[Calls]

- >> linkDB_State
- >> GATTServApp_InitCharCfg

[Called By]

- >> hidDevDisconnected

Batt_Init (Thumb, 18 bytes, Stack size 8 bytes, batt_task.o(i.Batt_Init))
[Stack]

- Max Depth = 8
- Call Chain = Batt_Init

[Calls]

- >> osal_start_timerEx (via Veneer)

[Called By]

- >> osalInitTasks (via Veneer)

Batt_MeasLevel (Thumb, 24 bytes, Stack size 8 bytes, battservice.o(i.Batt_MeasLevel))
[Stack]

- Max Depth = 32
- Call Chain = Batt_MeasLevel ⇒ linkDB_PerformFunc

[Calls]

- >> linkDB_PerformFunc

[Called By]

- >> HidDev_ProcessEvent

Batt_Register (Thumb, 6 bytes, Stack size 0 bytes, battservice.o(i.Batt_Register))
[Called By]

- >> HidDev_Init

Batt_task_ProcessEvent (Thumb, 30 bytes, Stack size 8 bytes, batt_task.o(i.Batt_task_ProcessEvent))
[Stack]

- Max Depth = 232
- Call Chain = Batt_task_ProcessEvent ⇒ adcMeasureTask ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> osal_start_timerEx (via Veneer)
- >> adcMeasureTask

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

Bsp_Btn_Init (Thumb, 12 bytes, Stack size 8 bytes, bsp_button_task.o(i.Bsp_Btn_Init))
[Stack]

- Max Depth = 224
- Call Chain = Bsp_Btn_Init ⇒ btp_button_init ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> btp_button_init

[Called By]

- >> osalInitTasks (via Veneer)

Bsp_Btn_ProcessEvent (Thumb, 102 bytes, Stack size 16 bytes, bsp_button_task.o(i.Bsp_Btn_ProcessEvent))
[Stack]

- Max Depth = 232
- Call Chain = Bsp_Btn_ProcessEvent ⇒ btp_button_init ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> hal_kscan_timeout_handler
- >> btp_button_init
- >> bsp_KeyPro
- >> bsp_KeyEmpty

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

DevInfo_AddService (Thumb, 14 bytes, Stack size 8 bytes, devinfoservice.o(i.DevInfo_AddService))
[Stack]

- Max Depth = 96
- Call Chain = DevInfo_AddService ⇒ GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATTServApp_RegisterService

[Called By]

- >> HidDev_Init

FillBuffer (Thumb, 80 bytes, Stack size 24 bytes, voice_circ_buff.o(i.FillBuffer))
[Stack]

- Max Depth = 32
- Call Chain = FillBuffer ⇒ IsBufferVacant

[Calls]

- >> __aeabi_memcpy (via Veneer)
- >> UpdateWritePtr
- >> IsBufferVacant

[Called By]

- >> voice_evt_handler_adpcm (via Veneer)

GAPBondMgr_GetParameter (Thumb, 126 bytes, Stack size 16 bytes, gapbondmgr.o(i.GAPBondMgr_GetParameter))
[Stack]

- Max Depth = 32
- Call Chain = GAPBondMgr_GetParameter ⇒ gapBondMgrBondTotal

[Calls]

- >> osal_memcpy (via Veneer)
- >> GAP_GetParamValue
- >> gapBondMgrBondTotal
- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> enable_advert
- >> HidKbd_Init
- >> hidDevBondCount

GAPBondMgr_Init (Thumb, 12 bytes, Stack size 8 bytes, gapbondmgr.o(i.GAPBondMgr_Init))
[Stack]

- Max Depth = 236
- Call Chain = GAPBondMgr_Init ⇒ gapBondMgrReadBonds ⇒ osal_snv_read ⇒ hal_fs_item_read ⇒ hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> gapBondMgrReadBonds

[Called By]

- >> osalInitTasks (via Veneer)

GAPBondMgr_LinkEst (Thumb, 298 bytes, Stack size 136 bytes, gapbondmgr.o(i.GAPBondMgr_LinkEst))
[Stack]

- Max Depth = 708
- Call Chain = GAPBondMgr_LinkEst ⇒ GATTServApp_SendServiceChangedInd ⇒ GATT_ServiceChangedInd ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_memset (via Veneer)
- >> osal_snv_read
- >> osal_isbufset (via Veneer)
- >> GATTServApp_UpdateCharCfg
- >> GATTServApp_SendServiceChangedInd
- >> GAP_Signable
- >> GAP_Bond
- >> GAPBondMgr_ResolveAddr
- >> gapBondMgrSlaveSecurityReq
- >> gapBondMgrInvertCharCfgItem

[Called By]

- >> gapRole_ProcessGAPMsg

GAPBondMgr_PasscodeRsp (Thumb, 42 bytes, Stack size 16 bytes, gapbondmgr.o(i.GAPBondMgr_PasscodeRsp))
[Stack]

- Max Depth = 288
- Call Chain = GAPBondMgr_PasscodeRsp ⇒ GAP_PasscodeUpdate ⇒ SM_PasskeyUpdate ⇒ sm_c1 ⇒ sm_c1new ⇒ sm_xor

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> GAP_TerminateAuth
- >> GAP_PasscodeUpdate

[Called By]

- >> hidDevPasscodeCB

GAPBondMgr_ProcessEvent (Thumb, 94 bytes, Stack size 16 bytes, gapbondmgr.o(i.GAPBondMgr_ProcessEvent))
[Stack]

- Max Depth = 612
- Call Chain = GAPBondMgr_ProcessEvent ⇒ GAPBondMgr_ServiceChangeInd ⇒ gapBondMgrSendServiceChange ⇒ GATTServApp_SendServiceChangedInd ⇒ GATT_ServiceChangedInd ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_msg_receive (via Veneer)
- >> osal_msg_deallocate (via Veneer)
- >> GAPBondMgr_UpdateCharCfg
- >> GAPBondMgr_ServiceChangeInd
- >> GAPBondMgr_ProcessGAPMsg

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

GAPBondMgr_ProcessGAPMsg (Thumb, 450 bytes, Stack size 32 bytes, gapbondmgr.o(i.GAPBondMgr_ProcessGAPMsg))
[Stack]

- Max Depth = 532
- Call Chain = GAPBondMgr_ProcessGAPMsg ⇒ gapBondRecvEvt ⇒ gapBondMgr_SyncCharCfg ⇒ GAPBondMgr_UpdateCharCfg ⇒ gapBondMgrUpdateCharCfg ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_snv_write
- >> osal_snv_compact
- >> linkDB_Find
- >> GAP_TerminateAuth
- >> GAP_PasscodeUpdate
- >> GAP_NumActiveConnections
- >> GAPBondMgr_ResolveAddr
- >> gapBondRecvEvt
- >> gapBondMgrReadBonds
- >> gapBondMgrEraseBonding
- >> gapBondMgrEraseAllBondings
- >> gapBondMgrAuthenticate
- >> gapBondMgrAddBond
- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> GAPBondMgr_ProcessEvent

GAPBondMgr_Register (Thumb, 26 bytes, Stack size 8 bytes, gapbondmgr.o(i.GAPBondMgr_Register))
[Stack]

- Max Depth = 8
- Call Chain = GAPBondMgr_Register

[Calls]

- >> GATTServApp_RegisterForMsg
- >> GAP_SetParamValue

[Called By]

- >> HidDev_ProcessEvent

GAPBondMgr_ResolveAddr (Thumb, 178 bytes, Stack size 40 bytes, gapbondmgr.o(i.GAPBondMgr_ResolveAddr))
[Stack]

- Max Depth = 284
- Call Chain = GAPBondMgr_ResolveAddr ⇒ gapBondMgrGetPublicAddr ⇒ osal_snv_read ⇒ hal_fs_item_read ⇒ hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_snv_read
- >> osal_memcmp (via Veneer)
- >> osal_isbufset (via Veneer)
- >> GAP_ResolvePrivateAddr
- >> gapBondMgrGetPublicAddr
- >> gapBondMgrFindAddr

[Called By]

- >> GAPBondMgr_UpdateCharCfg
- >> GAPBondMgr_SetParameter
- >> GAPBondMgr_ServiceChangeInd
- >> GAPBondMgr_ProcessGAPMsg
- >> GAPBondMgr_LinkEst

GAPBondMgr_ServiceChangeInd (Thumb, 100 bytes, Stack size 16 bytes, gapbondmgr.o(i.GAPBondMgr_ServiceChangeInd))
[Stack]

- Max Depth = 596
- Call Chain = GAPBondMgr_ServiceChangeInd ⇒ gapBondMgrSendServiceChange ⇒ GATTServApp_SendServiceChangedInd ⇒ GATT_ServiceChangedInd ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> linkDB_PerformFunc
- >> linkDB_Find
- >> GAPBondMgr_ResolveAddr
- >> gapBondMgrSendServiceChange
- >> gapBondMgrChangeState

[Called By]

- >> GAPBondMgr_ProcessEvent

GAPBondMgr_SetParameter (Thumb, 352 bytes, Stack size 32 bytes, gapbondmgr.o(i.GAPBondMgr_SetParameter))
[Stack]

- Max Depth = 492
- Call Chain = GAPBondMgr_SetParameter ⇒ gapBondMgrEraseAllBondings ⇒ gapBondMgrEraseBonding ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_snv_compact
- >> osal_revmemcpy (via Veneer)
- >> GAP_SetParamValue
- >> GAP_NumActiveConnections
- >> GAPBondMgr_ResolveAddr
- >> gapBondMgrReadBonds
- >> gapBondMgrEraseBonding
- >> gapBondMgrEraseAllBondings
- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> HidDev_Init
- >> enable_advert
- >> HidKbd_Init

GAPBondMgr_UpdateCharCfg (Thumb, 84 bytes, Stack size 24 bytes, gapbondmgr.o(i.GAPBondMgr_UpdateCharCfg))
[Stack]

- Max Depth = 444
- Call Chain = GAPBondMgr_UpdateCharCfg ⇒ gapBondMgrUpdateCharCfg ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> linkDB_Find
- >> GAPBondMgr_ResolveAddr
- >> gapBondMgrUpdateCharCfg

[Called By]

- >> GAPBondMgr_ProcessEvent
- >> gapBondMgr_SyncCharCfg

GAPRole_GetParameter (Thumb, 222 bytes, Stack size 16 bytes, peripheral.o(i.GAPRole_GetParameter))
[Stack]

- Max Depth = 16
- Call Chain = GAPRole_GetParameter

[Calls]

- >> osal_memcpy (via Veneer)
- >> GAP_GetParamValue
- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> start_enable_latency_event
- >> enable_slave_latency_handle
- >> disable_slave_latency_handle
- >> connect_param_vaild_check
- >> hidDevGapStateCB

GAPRole_Init (Thumb, 58 bytes, Stack size 16 bytes, peripheral.o(i.GAPRole_Init))
[Stack]

- Max Depth = 16
- Call Chain = GAPRole_Init

[Calls]

- >> osal_memset (via Veneer)
- >> GAP_RegisterForHCIMsgs

[Called By]

- >> osalInitTasks (via Veneer)

GAPRole_ProcessEvent (Thumb, 238 bytes, Stack size 32 bytes, peripheral.o(i.GAPRole_ProcessEvent))
[Stack]

- Max Depth = 772
- Call Chain = GAPRole_ProcessEvent ⇒ gapRole_ProcessOSALMsg ⇒ gapRole_ProcessGAPMsg ⇒ GAPBondMgr_LinkEst ⇒ GATTServApp_SendServiceChangedInd ⇒ GATT_ServiceChangedInd ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_start_timerEx (via Veneer)
- >> osal_memcpy (via Veneer)
- >> HCI_ReadRssiCmd (via Veneer)
- >> GAP_MakeDiscoverable
- >> GAPRole_TerminateConnection
- >> GAPRole_SendUpdateParam
- >> gapRole_startConnUpdate
- >> gapRole_ProcessOSALMsg
- >> osal_msg_receive (via Veneer)
- >> osal_msg_deallocate (via Veneer)

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

GAPRole_RegisterAppCBs (Thumb, 10 bytes, Stack size 0 bytes, peripheral.o(i.GAPRole_RegisterAppCBs))
[Called By]

- >> HidKbd_Init

GAPRole_SendUpdateParam (Thumb, 80 bytes, Stack size 24 bytes, peripheral.o(i.GAPRole_SendUpdateParam))
[Stack]

- Max Depth = 280
- Call Chain = GAPRole_SendUpdateParam ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_stop_timerEx (via Veneer)
- >> gapRole_startConnUpdate

[Called By]

- >> GAPRole_ProcessEvent

GAPRole_SetParameter (Thumb, 518 bytes, Stack size 32 bytes, peripheral.o(i.GAPRole_SetParameter))
[Stack]

- Max Depth = 288
- Call Chain = GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_set_event (via Veneer)
- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_get_timeoutEx (via Veneer)
- >> GAP_UpdateAdvertisingData
- >> GAP_EndDiscoverable
- >> gapRole_startConnUpdate
- >> GAP_SetParamValue
- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> HidDev_Report
- >> gapRolesParamUpdateCB
- >> enable_advert
- >> bonding_info_key_advertise_handle
- >> HidKbd_ProcessEvent
- >> HidKbd_Init
- >> hidDevSendReport
- >> hidDevInitialAdvertising

GAPRole_StartDevice (Thumb, 48 bytes, Stack size 16 bytes, peripheral.o(i.GAPRole_StartDevice))
[Stack]

- Max Depth = 264
- Call Chain = GAPRole_StartDevice ⇒ GAP_DeviceInit ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> GAP_DeviceInit

[Called By]

- >> HidDev_ProcessEvent

GAPRole_TerminateConnection (Thumb, 26 bytes, Stack size 8 bytes, peripheral.o(i.GAPRole_TerminateConnection))
[Stack]

- Max Depth = 60
- Call Chain = GAPRole_TerminateConnection ⇒ GAP_TerminateLinkReq ⇒ disconnectNext ⇒ linkDB_FindFirst

[Calls]

- >> GAP_TerminateLinkReq

[Called By]

- >> GAPRole_ProcessEvent
- >> gapRole_ProcessOSALMsg
- >> HidDev_ProcessEvent
- >> enable_advert
- >> bonding_info_key_advertise_handle
- >> HidKbd_ProcessEvent

GAP_Authenticate (Thumb, 196 bytes, Stack size 24 bytes, gap_linkmgr.o(i.GAP_Authenticate))
[Stack]

- Max Depth = 248
- Call Chain = GAP_Authenticate ⇒ SM_StartPairing ⇒ smGeneratePairingReqRsp ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> linkDB_Find
- >> osal_mem_alloc (via Veneer)
- >> smProcessPairingReq
- >> SM_StartPairing
- >> gapFreeAuthLink

[Called By]

- >> gapBondMgrAuthenticate

GAP_Bond (Thumb, 132 bytes, Stack size 40 bytes, gap_linkmgr.o(i.GAP_Bond))
[Stack]

- Max Depth = 56
- Call Chain = GAP_Bond ⇒ smStartEncryption

[Calls]

- >> linkDB_Find
- >> osal_mem_free (via Veneer)
- >> osal_memdup (via Veneer)
- >> smStartEncryption

[Called By]

- >> GAPBondMgr_LinkEst

GAP_DeviceInit (Thumb, 76 bytes, Stack size 40 bytes, gap.o(i.GAP_DeviceInit))
[Stack]

- Max Depth = 248
- Call Chain = GAP_DeviceInit ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf
- >> SM_ResponderInit
- >> GAP_SecParamsInit
- >> GAP_PeriDevMgrInit
- >> GAP_ParamsInit
- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> GAPRole_StartDevice

GAP_EndDiscoverable (Thumb, 66 bytes, Stack size 16 bytes, gap_peridevmgr.o(i.GAP_EndDiscoverable))
[Stack]

- Max Depth = 16
- Call Chain = GAP_EndDiscoverable

[Calls]

- >> osal_stop_timerEx (via Veneer)
- >> HCI_LE_SetAdvEnableCmd (via Veneer)

[Called By]

- >> GAPRole_SetParameter
- >> gapRole_ProcessGAPMsg
- >> gapProcessAdvertisingEvt

GAP_GetParamValue (Thumb, 16 bytes, Stack size 0 bytes, gap_configmgr.o(i.GAP_GetParamValue))
[Called By]

- >> GAP_MakeDiscoverable
- >> GAPRole_GetParameter
- >> gapRole_startConnUpdate
- >> gapRole_ProcessOSALMsg
- >> GAPBondMgr_GetParameter
- >> GAP_ProcessEvent
- >> gapWriteAdvEnableStatus
- >> gapSetAdvParams
- >> SM_StartPairing
- >> gapSendPairingReqEvent
- >> gapSendBondCompleteEvent
- >> gapPasskeyNeededCB
- >> sendAuthEvent
- >> gapUpdateConnSignCounter
- >> smpParsePairingReq
- >> smStartRspTimer

GAP_Init (Thumb, 20 bytes, Stack size 8 bytes, gap_task.o(i.GAP_Init))
[Stack]

- Max Depth = 8
- Call Chain = GAP_Init

[Calls]

- >> HCI_GAPTaskRegister (via Veneer)
- >> L2CAP_RegisterApp

[Called By]

- >> osalInitTasks (via Veneer)

GAP_MakeDiscoverable (Thumb, 162 bytes, Stack size 16 bytes, gap_peridevmgr.o(i.GAP_MakeDiscoverable))
[Stack]

- Max Depth = 100
- Call Chain = GAP_MakeDiscoverable ⇒ gapSetAdvParams ⇒ isLimitedDiscoverableMode ⇒ gapFindADType

[Calls]

- >> osal_memcpy (via Veneer)
- >> GAP_NumActiveConnections
- >> GAP_GetParamValue
- >> osal_mem_alloc (via Veneer)
- >> osal_start_reload_timer (via Veneer)
- >> gapSetAdvParams
- >> gapFreeAdvertState

[Called By]

- >> GAPRole_ProcessEvent

GAP_NumActiveConnections (Thumb, 8 bytes, Stack size 8 bytes, gap_task.o(i.GAP_NumActiveConnections))
[Stack]

- Max Depth = 16
- Call Chain = GAP_NumActiveConnections ⇒ linkDB_NumActive

[Calls]

- >> linkDB_NumActive

[Called By]

- >> GAP_MakeDiscoverable
- >> GAPBondMgr_SetParameter
- >> GAPBondMgr_ProcessGAPMsg
- >> gapSetAdvParams

GAP_ParamsInit (Thumb, 46 bytes, Stack size 16 bytes, gap_configmgr.o(i.GAP_ParamsInit))
[Stack]

- Max Depth = 16
- Call Chain = GAP_ParamsInit

[Calls]

- >> osal_memset (via Veneer)
- >> HCI_ReadBDADDRCmd (via Veneer)

[Called By]

- >> GAP_DeviceInit

GAP_PasscodeUpdate (Thumb, 66 bytes, Stack size 32 bytes, gap_linkmgr.o(i.GAP_PasscodeUpdate))
[Stack]

- Max Depth = 272
- Call Chain = GAP_PasscodeUpdate ⇒ SM_PasskeyUpdate ⇒ sm_c1 ⇒ sm_c1new ⇒ sm_xor

[Calls]

- >> osal_memset (via Veneer)
- >> linkDB_Find
- >> SM_PasskeyUpdate

[Called By]

- >> GAPBondMgr_ProcessGAPMsg
- >> GAPBondMgr_PasscodeRsp

GAP_PeriDevMgrInit (Thumb, 64 bytes, Stack size 16 bytes, gap_peridevmgr.o(i.GAP_PeriDevMgrInit))
[Stack]

- Max Depth = 32
- Call Chain = GAP_PeriDevMgrInit ⇒ gapAllocAdvRecs

[Calls]

- >> osal_mem_free (via Veneer)
- >> gapRegisterPeripheral
- >> gapAllocAdvRecs

[Called By]

- >> GAP_DeviceInit

GAP_ProcessEvent (Thumb, 210 bytes, Stack size 32 bytes, gap_task.o(i.GAP_ProcessEvent))
[Stack]

- Max Depth = 232
- Call Chain = GAP_ProcessEvent ⇒ gapProcessOSALMsg ⇒ L2CAP_CmdReject ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_stop_timerEx (via Veneer)
- >> osal_msg_receive (via Veneer)
- >> osal_msg_deallocate (via Veneer)
- >> GAP_GetParamValue
- >> osal_msg_send (via Veneer)
- >> gapProcessOSALMsg
- >> gapIsAdvertising
- >> SM_CalcRandomAddr
- >> gapProcessNewAddr
- >> gapGetIRK

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

GAP_RegisterForHCIMsgs (Thumb, 6 bytes, Stack size 0 bytes, gap_task.o(i.GAP_RegisterForHCIMsgs))
[Called By]

- >> GAPRole_Init

GAP_ResolvePrivateAddr (Thumb, 8 bytes, Stack size 8 bytes, gap_devmgr.o(i.GAP_ResolvePrivateAddr))
[Stack]

- Max Depth = 104
- Call Chain = GAP_ResolvePrivateAddr ⇒ SM_ResolveRandomAddrs ⇒ sm_ah ⇒ smEncrypt

[Calls]

- >> SM_ResolveRandomAddrs

[Called By]

- >> GAPBondMgr_ResolveAddr

GAP_SecParamsInit (Thumb, 58 bytes, Stack size 16 bytes, gap_configmgr.o(i.GAP_SecParamsInit))
[Stack]

- Max Depth = 32
- Call Chain = GAP_SecParamsInit ⇒ smGenerateRandBuf

[Calls]

- >> osal_isbufset (via Veneer)
- >> smGenerateRandBuf

[Called By]

- >> GAP_DeviceInit

GAP_SendSlaveSecurityRequest (Thumb, 70 bytes, Stack size 16 bytes, gap_perilinkmgr.o(i.GAP_SendSlaveSecurityRequest))
[Stack]

- Max Depth = 168
- Call Chain = GAP_SendSlaveSecurityRequest ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> linkDB_Find
- >> smUint8ToAuthReq
- >> smSendSMMsg

[Called By]

- >> gapBondMgrSlaveSecurityReq

GAP_SetParamValue (Thumb, 24 bytes, Stack size 0 bytes, gap_configmgr.o(i.GAP_SetParamValue))
[Called By]

- >> GAPRole_SetParameter
- >> GAPBondMgr_SetParameter
- >> GAPBondMgr_Register
- >> HidDev_Report
- >> HidKbd_Init
- >> hidDevInitialAdvertising

GAP_Signable (Thumb, 72 bytes, Stack size 16 bytes, gap_linkmgr.o(i.GAP_Signable))
[Stack]

- Max Depth = 28
- Call Chain = GAP_Signable ⇒ linkDB_Find

[Calls]

- >> osal_memcpy (via Veneer)
- >> linkDB_Find

[Called By]

- >> GAPBondMgr_LinkEst

GAP_TerminateAuth (Thumb, 32 bytes, Stack size 16 bytes, gap_linkmgr.o(i.GAP_TerminateAuth))
[Stack]

- Max Depth = 184
- Call Chain = GAP_TerminateAuth ⇒ smSendFailAndEnd ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> linkDB_Find
- >> smSendFailAndEnd

[Called By]

- >> GAPBondMgr_ProcessGAPMsg
- >> GAPBondMgr_PasscodeRsp

GAP_TerminateLinkReq (Thumb, 120 bytes, Stack size 24 bytes, gap_linkmgr.o(i.GAP_TerminateLinkReq))
[Stack]

- Max Depth = 52
- Call Chain = GAP_TerminateLinkReq ⇒ disconnectNext ⇒ linkDB_FindFirst

[Calls]

- >> linkDB_Find
- >> HCI_DisconnectCmd (via Veneer)
- >> disconnectNext

[Called By]

- >> GAPRole_TerminateConnection

GAP_UpdateAdvertisingData (Thumb, 106 bytes, Stack size 24 bytes, gap_peridevmgr.o(i.GAP_UpdateAdvertisingData))
[Stack]

- Max Depth = 24
- Call Chain = GAP_UpdateAdvertisingData

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> HCI_LE_SetScanRspDataCmd (via Veneer)
- >> HCI_LE_SetAdvDataCmd (via Veneer)

[Called By]

- >> GAPRole_SetParameter
- >> gapRole_ProcessGAPMsg

GATTServApp_AddService (Thumb, 22 bytes, Stack size 8 bytes, gattservapp.o(i.GATTServApp_AddService))
[Stack]

- Max Depth = 96
- Call Chain = GATTServApp_AddService ⇒ GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATTServApp_RegisterService

[Called By]

- >> HidDev_Init

GATTServApp_FindAttr (Thumb, 34 bytes, Stack size 8 bytes, gattservapp.o(i.GATTServApp_FindAttr))
[Stack]

- Max Depth = 8
- Call Chain = GATTServApp_FindAttr

[Called By]

- >> GATTServApp_ProcessCharCfg

GATTServApp_Init (Thumb, 62 bytes, Stack size 16 bytes, gattservapp.o(i.GATTServApp_Init))
[Stack]

- Max Depth = 40
- Call Chain = GATTServApp_Init ⇒ gattServApp_SetNumPrepareWrites

[Calls]

- >> linkDB_Register
- >> GATT_RegisterForReq
- >> GATTServApp_InitCharCfg
- >> gattServApp_SetNumPrepareWrites

[Called By]

- >> osalInitTasks (via Veneer)

GATTServApp_InitCharCfg (Thumb, 44 bytes, Stack size 16 bytes, gattservapp.o(i.GATTServApp_InitCharCfg))
[Stack]

- Max Depth = 16
- Call Chain = GATTServApp_InitCharCfg

[Calls]

- >> gattServApp_FindCharCfgItem

[Called By]

- >> Batt_HandleConnStatusCB
- >> Batt_AddService
- >> ScanParam_AddService
- >> GATTServApp_Init
- >> gattServApp_HandleConnStatusCB
- >> AudioProfile_HandleConnStatusCB
- >> AudioProfile_AddService
- >> HidKbd_AddService
- >> ppsp_serv_add_serv
- >> ppsp_serv_hdlr_conn_stat
- >> hidDevDisconnected

GATTServApp_ProcessCCCWriteReq (Thumb, 88 bytes, Stack size 24 bytes, gattservapp.o(i.GATTServApp_ProcessCCCWriteReq))
[Stack]

- Max Depth = 48
- Call Chain = GATTServApp_ProcessCCCWriteReq ⇒ GATTServApp_SendCCCUpdatedEvent

[Calls]

- >> GATTServApp_WriteCharCfg
- >> GATTServApp_SendCCCUpdatedEvent
- >> GATTServApp_ReadCharCfg

[Called By]

- >> battWriteAttrCB
- >> scanParamWriteAttrCB
- >> gattServApp_WriteAttrCB
- >> AudioProfile_WriteAttrCB
- >> HidDev_WriteAttrCB
- >> ppsp_serv_set_attr

GATTServApp_ProcessCharCfg (Thumb, 130 bytes, Stack size 296 bytes, gattservapp.o(i.GATTServApp_ProcessCharCfg))
[Stack]

- Max Depth = 588
- Call Chain = GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> GATTServApp_ReadAttr
- >> GATT_Notification
- >> GATT_Indication
- >> GATTServApp_FindAttr

[Called By]

- >> Google_AudioProfile_SetParameter
- >> AudioProfile_SetParameter
- >> ppsp_serv_set_para

GATTServApp_ProcessEvent (Thumb, 50 bytes, Stack size 16 bytes, gattservapp.o(i.GATTServApp_ProcessEvent))
[Stack]

- Max Depth = 380
- Call Chain = GATTServApp_ProcessEvent ⇒ gattServApp_ProcessMsg ⇒ gattServApp_ProcessReadByTypeReq ⇒ ATT_ReadByTypeRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_msg_receive (via Veneer)
- >> osal_msg_deallocate (via Veneer)
- >> gattServApp_ProcessMsg

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

GATTServApp_ReadAttr (Thumb, 534 bytes, Stack size 64 bytes, gattservapp.o(i.GATTServApp_ReadAttr))
[Stack]

- Max Depth = 184
- Call Chain = GATTServApp_ReadAttr ⇒ GATT_FindNextAttr ⇒ GATT_FindHandleUUID ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_strlen (via Veneer)
- >> GATT_FindNextAttr
- >> GATT_FindHandle
- >> ATT_CompareUUID
- >> GATTServApp_ReadCharCfg
- >> gattServApp_FindServiceCBs
- >> gattServApp_FindAuthorizeAttrCB

[Called By]

- >> gapBondMgr_SyncCharCfg
- >> GATTServApp_ProcessCharCfg
- >> gattServApp_ProcessReadMultiReq
- >> gattServApp_ProcessReadByTypeReq
- >> gattServApp_ProcessReadByGrpTypeReq
- >> gattServApp_ProcessMsg
- >> gattServApp_ProcessFindByTypeValueReq

GATTServApp_ReadCharCfg (Thumb, 14 bytes, Stack size 8 bytes, gattservapp.o(i.GATTServApp_ReadCharCfg))
[Stack]

- Max Depth = 8
- Call Chain = GATTServApp_ReadCharCfg

[Calls]

- >> gattServApp_FindCharCfgItem

[Called By]

- >> GATTServApp_SendServiceChangedInd
- >> GATTServApp_ReadAttr
- >> battNotifyCB
- >> GATTServApp_ProcessCCCWriteReq
- >> ppsp_serv_set_para
- >> hidDevSendReport

GATTServApp_RegisterForMsg (Thumb, 6 bytes, Stack size 0 bytes, gattservapp.o(i.GATTServApp_RegisterForMsg))
[Called By]

- >> GAPBondMgr_Register

GATTServApp_RegisterService (Thumb, 86 bytes, Stack size 24 bytes, gattservapp.o(i.GATTServApp_RegisterService))
[Stack]

- Max Depth = 88
- Call Chain = GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> osal_mem_alloc (via Veneer)
- >> GATT_RegisterService

[Called By]

- >> GGS_AddService
- >> Batt_AddService
- >> ScanParam_AddService
- >> DevInfo_AddService
- >> GATTServApp_AddService
- >> AudioProfile_AddService
- >> HidKbd_AddService
- >> ppsp_serv_add_serv

GATTServApp_SendCCCUpdatedEvent (Thumb, 50 bytes, Stack size 24 bytes, gattservapp.o(i.GATTServApp_SendCCCUpdatedEvent))
[Stack]

- Max Depth = 24
- Call Chain = GATTServApp_SendCCCUpdatedEvent

[Calls]

- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> GATTServApp_ProcessCCCWriteReq

GATTServApp_SendServiceChangedInd (Thumb, 30 bytes, Stack size 16 bytes, gattservapp.o(i.GATTServApp_SendServiceChangedInd))
[Stack]

- Max Depth = 572
- Call Chain = GATTServApp_SendServiceChangedInd ⇒ GATT_ServiceChangedInd ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> GATT_ServiceChangedInd
- >> GATTServApp_ReadCharCfg

[Called By]

- >> GAPBondMgr_LinkEst
- >> gapBondMgrSendServiceChange

GATTServApp_UpdateCharCfg (Thumb, 24 bytes, Stack size 16 bytes, gattservapp.o(i.GATTServApp_UpdateCharCfg))
[Stack]

- Max Depth = 84
- Call Chain = GATTServApp_UpdateCharCfg ⇒ GATTServApp_WriteAttr ⇒ GATT_FindHandle

[Calls]

- >> GATTServApp_WriteAttr

[Called By]

- >> GAPBondMgr_LinkEst

GATTServApp_WriteAttr (Thumb, 62 bytes, Stack size 48 bytes, gattservapp.o(i.GATTServApp_WriteAttr))
[Stack]

- Max Depth = 68
- Call Chain = GATTServApp_WriteAttr ⇒ GATT_FindHandle

[Calls]

- >> GATT_FindHandle
- >> gattServApp_FindServiceCBs

[Called By]

- >> GATTServApp_UpdateCharCfg
- >> gattServApp_ProcessWriteReq
- >> gattServApp_ProcessExecuteWriteReq

GATTServApp_WriteCharCfg (Thumb, 40 bytes, Stack size 16 bytes, gattservapp.o(i.GATTServApp_WriteCharCfg))
[Stack]

- Max Depth = 16
- Call Chain = GATTServApp_WriteCharCfg

[Calls]

- >> gattServApp_FindCharCfgItem

[Called By]

- >> GATTServApp_ProcessCCCWriteReq

GATT_AppCompletedMsg (Thumb, 46 bytes, Stack size 8 bytes, gatt_task.o(i.GATT_AppCompletedMsg))
[Stack]

- Max Depth = 24
- Call Chain = GATT_AppCompletedMsg ⇒ L2CAP_HostNumCompletedPkts

[Calls]

- >> L2CAP_HostNumCompletedPkts

[Called By]

- >> gattServApp_ProcessMsg

GATT_FindHandle (Thumb, 70 bytes, Stack size 20 bytes, gatt_server.o(i.GATT_FindHandle))
[Stack]

- Max Depth = 20
- Call Chain = GATT_FindHandle

[Called By]

- >> GATTServApp_ReadAttr
- >> GATTServApp_WriteAttr
- >> gattServApp_ProcessWriteReq
- >> gattServApp_ProcessReadMultiReq
- >> gattServApp_ProcessPrepareWriteReq
- >> gattServApp_ProcessMsg
- >> hidDevSendReport
- >> hidDevDisconnected
- >> gattProcessWriteReq
- >> gattProcessReadReq
- >> gattProcessReadMultiReq

GATT_FindHandleUUID (Thumb, 94 bytes, Stack size 40 bytes, gatt_server.o(i.GATT_FindHandleUUID))
[Stack]

- Max Depth = 88
- Call Chain = GATT_FindHandleUUID ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> ATT_CompareUUID

[Called By]

- >> GATT_FindNextAttr
- >> gapBondMgr_SyncCharCfg
- >> GATT_ServiceChangedInd
- >> gattServApp_ProcessReadByTypeReq
- >> gattServApp_ProcessReadByGrpTypeReq
- >> gattServApp_ProcessFindByTypeValueReq
- >> gattProcessReadByTypeReq
- >> gattProcessReadByGrpTypeReq
- >> gattProcessFindInfoReq
- >> gattProcessFindByTypeValueReq

GATT_FindNextAttr (Thumb, 132 bytes, Stack size 32 bytes, gatt_server.o(i.GATT_FindNextAttr))
[Stack]

- Max Depth = 120
- Call Chain = GATT_FindNextAttr ⇒ GATT_FindHandleUUID ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATT_FindHandleUUID
- >> ATT_CompareUUID
- >> gattServiceLastHandle

[Called By]

- >> GATTServApp_ReadAttr
- >> gapBondMgr_SyncCharCfg
- >> gattServApp_ProcessReadByGrpTypeReq
- >> gattServApp_ProcessFindByTypeValueReq

GATT_Indication (Thumb, 78 bytes, Stack size 40 bytes, gatt_server.o(i.GATT_Indication))
[Stack]

- Max Depth = 292
- Call Chain = GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> ATT_HandleValueInd
- >> linkDB_Authen
- >> gattStartTimer
- >> gattGetServerStatus

[Called By]

- >> GATT_ServiceChangedInd
- >> GATTServApp_ProcessCharCfg

GATT_Init (Thumb, 22 bytes, Stack size 8 bytes, gatt_task.o(i.GATT_Init))
[Stack]

- Max Depth = 44
- Call Chain = GATT_Init ⇒ GATT_InitServer ⇒ linkDB_Register

[Calls]

- >> ATT_InitMtuSize
- >> GATT_InitServer
- >> L2CAP_RegisterApp

[Called By]

- >> osalInitTasks (via Veneer)

GATT_InitServer (Thumb, 60 bytes, Stack size 24 bytes, gatt_server.o(i.GATT_InitServer))
[Stack]

- Max Depth = 36
- Call Chain = GATT_InitServer ⇒ linkDB_Register

[Calls]

- >> linkDB_Register
- >> gattRegisterServer

[Called By]

- >> GATT_Init

GATT_Notification (Thumb, 46 bytes, Stack size 24 bytes, gatt_server.o(i.GATT_Notification))
[Stack]

- Max Depth = 276
- Call Chain = GATT_Notification ⇒ ATT_HandleValueNoti ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> ATT_HandleValueNoti
- >> linkDB_Authen
- >> gattGetServerStatus

[Called By]

- >> battNotifyCB
- >> GATTServApp_ProcessCharCfg
- >> hidDevSendReport

GATT_ProcessEvent (Thumb, 48 bytes, Stack size 16 bytes, gatt_task.o(i.GATT_ProcessEvent))
[Stack]

- Max Depth = 300
- Call Chain = GATT_ProcessEvent ⇒ gattProcessRxData ⇒ ATT_ErrorRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_msg_receive (via Veneer)
- >> osal_msg_deallocate (via Veneer)
- >> gattProcessRxData

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

GATT_RegisterForReq (Thumb, 6 bytes, Stack size 0 bytes, gatt_server.o(i.GATT_RegisterForReq))
[Called By]

- >> GATTServApp_Init

GATT_RegisterService (Thumb, 156 bytes, Stack size 16 bytes, gatt_server.o(i.GATT_RegisterService))
[Stack]

- Max Depth = 64
- Call Chain = GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> ATT_CompareUUID

[Called By]

- >> GATTServApp_RegisterService

GATT_ServiceChangedInd (Thumb, 70 bytes, Stack size 264 bytes, gatt_server.o(i.GATT_ServiceChangedInd))
[Stack]

- Max Depth = 556
- Call Chain = GATT_ServiceChangedInd ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> GATT_FindHandleUUID
- >> GATT_Indication

[Called By]

- >> GATTServApp_SendServiceChangedInd

GATT_ServiceNumAttrs (Thumb, 28 bytes, Stack size 0 bytes, gatt_server.o(i.GATT_ServiceNumAttrs))
[Called By]

- >> gattServiceLastHandle

GATT_VerifyReadPermissions (Thumb, 38 bytes, Stack size 8 bytes, gatt_server.o(i.GATT_VerifyReadPermissions))
[Stack]

- Max Depth = 36
- Call Chain = GATT_VerifyReadPermissions ⇒ linkDB_Authen ⇒ linkDB_Find

[Calls]

- >> linkDB_Authen

[Called By]

- >> gattServApp_ProcessReadByTypeReq
- >> gattServApp_ProcessReadByGrpTypeReq
- >> gattProcessReadReq
- >> gattProcessReadMultiReq

GATT_VerifyWritePermissions (Thumb, 66 bytes, Stack size 8 bytes, gatt_server.o(i.GATT_VerifyWritePermissions))
[Stack]

- Max Depth = 36
- Call Chain = GATT_VerifyWritePermissions ⇒ linkDB_Authen ⇒ linkDB_Find

[Calls]

- >> linkDB_Authen

[Called By]

- >> gattProcessWriteReq

GGS_AddService (Thumb, 22 bytes, Stack size 8 bytes, gapgattserver.o(i.GGS_AddService))
[Stack]

- Max Depth = 96
- Call Chain = GGS_AddService ⇒ GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATTServApp_RegisterService

[Called By]

- >> HidDev_Init

GGS_SetParameter (Thumb, 126 bytes, Stack size 16 bytes, gapgattserver.o(i.GGS_SetParameter))
[Stack]

- Max Depth = 24
- Call Chain = GGS_SetParameter ⇒ ggs_SetAttrWPermit

[Calls]

- >> __aeabi_memcpy (via Veneer)
- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> ggs_SetAttrWPermit
- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> gapBondSetupPrivFlag
- >> HidKbd_Init

GetBufferSize (Thumb, 24 bytes, Stack size 0 bytes, voice_circ_buff.o(i.GetBufferSize))
[Called By]

- >> IsBufferVacant
- >> IsBufferSizeFilled

Google_AudioProfile_SetParameter (Thumb, 104 bytes, Stack size 32 bytes, audiogoogleprofile.o(i.Google_AudioProfile_SetParameter))
[Stack]

- Max Depth = 620
- Call Chain = Google_AudioProfile_SetParameter ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_memcpy (via Veneer)
- >> GATTServApp_ProcessCharCfg

[Called By]

- >> voice_report_stop_cmd_handle
- >> voice_report_start_cmd_handle
- >> voice_data_report

HidDev_Init (Thumb, 88 bytes, Stack size 16 bytes, hiddev.o(i.HidDev_Init))
[Stack]

- Max Depth = 508
- Call Chain = HidDev_Init ⇒ GAPBondMgr_SetParameter ⇒ gapBondMgrEraseAllBondings ⇒ gapBondMgrEraseBonding ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_set_event (via Veneer)
- >> GGS_AddService
- >> GAPBondMgr_SetParameter
- >> Batt_Register
- >> Batt_AddService
- >> ScanParam_Register
- >> ScanParam_AddService
- >> DevInfo_AddService
- >> GATTServApp_AddService
- >> HidKbd_AddService
- >> HidDev_Register

[Called By]

- >> osalInitTasks (via Veneer)

HidDev_ProcessEvent (Thumb, 116 bytes, Stack size 16 bytes, hiddev.o(i.HidDev_ProcessEvent))
[Stack]

- Max Depth = 280
- Call Chain = HidDev_ProcessEvent ⇒ GAPRole_StartDevice ⇒ GAP_DeviceInit ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> osal_start_timerEx (via Veneer)
- >> GAPRole_TerminateConnection
- >> GAPRole_StartDevice
- >> osal_msg_receive (via Veneer)
- >> osal_msg_deallocate (via Veneer)
- >> GAPBondMgr_Register
- >> Batt_MeasLevel
- >> hidDevStartIdleTimer

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

HidDev_ReadAttrCB (Thumb, 222 bytes, Stack size 32 bytes, hiddev.o(i.HidDev_ReadAttrCB))
[Stack]

- Max Depth = 40
- Call Chain = HidDev_ReadAttrCB ⇒ hidDevStartIdleTimer

[Calls]

- >> osal_memcpy (via Veneer)
- >> hidDevStartIdleTimer
- >> hidDevRptByHandle

[Address Reference Count : 1]

- hidkbdservice.o(.constdata)

HidDev_Register (Thumb, 8 bytes, Stack size 0 bytes, hiddev.o(i.HidDev_Register))
[Called By]

- >> HidDev_Init

HidDev_RegisterReports (Thumb, 8 bytes, Stack size 0 bytes, hiddev.o(i.HidDev_RegisterReports))
[Called By]

- >> HidKbd_AddService

HidDev_Report (Thumb, 106 bytes, Stack size 24 bytes, hiddev.o(i.HidDev_Report))
[Stack]

- Max Depth = 352
- Call Chain = HidDev_Report ⇒ hidDevSendReport ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> GAPRole_SetParameter
- >> GAP_SetParamValue
- >> hidDevSendReport
- >> hidDevInitialAdvertising
- >> hidDevBondCount

[Called By]

- >> hidVoiceDataStartCmdReport
- >> hidVoiceDataReport
- >> bt_control_keyboard_code_report_start
- >> bt_control_keyboard_code_report_end
- >> bt_control_key_code_report_start
- >> bt_control_key_code_report_end

HidDev_WriteAttrCB (Thumb, 286 bytes, Stack size 48 bytes, hiddev.o(i.HidDev_WriteAttrCB))
[Stack]

- Max Depth = 96
- Call Chain = HidDev_WriteAttrCB ⇒ GATTServApp_ProcessCCCWriteReq ⇒ GATTServApp_SendCCCUpdatedEvent

[Calls]

- >> GATTServApp_ProcessCCCWriteReq
- >> hidDevStartIdleTimer
- >> hidDevRptByHandle

[Address Reference Count : 1]

- hidkbdservice.o(.constdata)

HidKbd_AddService (Thumb, 234 bytes, Stack size 24 bytes, hidkbdservice.o(i.HidKbd_AddService))
[Stack]

- Max Depth = 112
- Call Chain = HidKbd_AddService ⇒ GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATTServApp_RegisterService
- >> Batt_GetParameter
- >> GATTServApp_InitCharCfg
- >> HidDev_RegisterReports

[Called By]

- >> HidDev_Init

HidKbd_GetParameter (Thumb, 48 bytes, Stack size 16 bytes, hidkbdservice.o(i.HidKbd_GetParameter))
[Stack]

- Max Depth = 16
- Call Chain = HidKbd_GetParameter

[Called By]

- >> hidKbdRptCB

HidKbd_Init (Thumb, 348 bytes, Stack size 56 bytes, hidkbd.o(i.HidKbd_Init))
[Stack]

- Max Depth = 548
- Call Chain = HidKbd_Init ⇒ GAPBondMgr_SetParameter ⇒ gapBondMgrEraseAllBondings ⇒ gapBondMgrEraseBonding ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> dbg_printf
- >> GAPRole_SetParameter
- >> GAPRole_RegisterAppCBs
- >> update_local_address
- >> GGS_SetParameter
- >> GAP_SetParamValue
- >> GAPBondMgr_SetParameter
- >> GAPBondMgr_GetParameter
- >> llInitFeatureSetDLE (via Veneer)
- >> llInitFeatureSet2MPHY (via Veneer)

[Called By]

- >> osalInitTasks (via Veneer)

HidKbd_ProcessEvent (Thumb, 188 bytes, Stack size 32 bytes, hidkbd.o(i.HidKbd_ProcessEvent))
[Stack]

- Max Depth = 320
- Call Chain = HidKbd_ProcessEvent ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_start_timerEx (via Veneer)
- >> GAPRole_TerminateConnection
- >> GAPRole_SetParameter
- >> osal_msg_receive (via Veneer)
- >> osal_msg_deallocate (via Veneer)
- >> enable_slave_latency_handle
- >> ble_advertiseing_status_display_handle

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

HidKbd_SetParameter (Thumb, 60 bytes, Stack size 12 bytes, hidkbdservice.o(i.HidKbd_SetParameter))
[Stack]

- Max Depth = 12
- Call Chain = HidKbd_SetParameter

[Called By]

- >> hidKbdRptCB

Host_InitContext (Thumb, 118 bytes, Stack size 20 bytes, linkdb.o(i.Host_InitContext))
[Stack]

- Max Depth = 20
- Call Chain = Host_InitContext

[Called By]

- >> ble_mem_init_config (via Veneer)

InQueue (Thumb, 52 bytes, Stack size 24 bytes, voice_queue.o(i.InQueue))
[Stack]

- Max Depth = 24
- Call Chain = InQueue

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> osal_memcpy (via Veneer)

[Called By]

- >> voice_data_encode_inqueue

InitCircularBuffer (Thumb, 36 bytes, Stack size 16 bytes, voice_circ_buff.o(i.InitCircularBuffer))
[Stack]

- Max Depth = 16
- Call Chain = InitCircularBuffer

[Calls]

- >> __aeabi_memclr (via Veneer)

[Called By]

- >> stop_voice_task
- >> voiceCaptureStart

InitQueue (Thumb, 30 bytes, Stack size 0 bytes, voice_queue.o(i.InitQueue))
[Called By]

- >> voice_pushing_over_handle
- >> voiceCaptureStart

IrTask_Init (Thumb, 116 bytes, Stack size 8 bytes, ir_task.o(i.IrTask_Init))
[Stack]

- Max Depth = 228
- Call Chain = IrTask_Init ⇒ data_read ⇒ osal_snv_read ⇒ hal_fs_item_read ⇒ hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> hal_gpio_write (via Veneer)
- >> hal_gpio_pin_init (via Veneer)
- >> hal_pwrmgr_register (via Veneer)
- >> hal_gpio_pull_set (via Veneer)
- >> hal_timer_init (via Veneer)
- >> data_read

[Called By]

- >> osalInitTasks (via Veneer)

IrTask_ProcessEvent (Thumb, 78 bytes, Stack size 8 bytes, ir_task.o(i.IrTask_ProcessEvent))
[Stack]

- Max Depth = 412
- Call Chain = IrTask_ProcessEvent ⇒ ir_learn_handle ⇒ data_write ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> hal_gpio_write (via Veneer)
- >> ir_right_sending_stop_handle
- >> ir_right_sending_handle
- >> ir_learn_handle
- >> close_ir_learn

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

IsBufferSizeFilled (Thumb, 20 bytes, Stack size 8 bytes, voice_circ_buff.o(i.IsBufferSizeFilled))
[Stack]

- Max Depth = 8
- Call Chain = IsBufferSizeFilled

[Calls]

- >> GetBufferSize

[Called By]

- >> voice_requeset_data

IsBufferVacant (Thumb, 20 bytes, Stack size 8 bytes, voice_circ_buff.o(i.IsBufferVacant))
[Stack]

- Max Depth = 8
- Call Chain = IsBufferVacant

[Calls]

- >> GetBufferSize

[Called By]

- >> FillBuffer

IsQueueEmpty (Thumb, 18 bytes, Stack size 0 bytes, voice_queue.o(i.IsQueueEmpty))
[Called By]

- >> voice_task_ProcessEvent

Key_Short_Press_Ir_Sending_Handle_From_Poweroff (Thumb, 24 bytes, Stack size 8 bytes, hal_keyboard_matrix.o(i.Key_Short_Press_Ir_Sending_Handle_From_Poweroff))
[Stack]

- Max Depth = 216
- Call Chain = Key_Short_Press_Ir_Sending_Handle_From_Poweroff ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf

[Called By]

- >> main (via Veneer)

L2CAP_BuildCmdReject (Thumb, 66 bytes, Stack size 0 bytes, l2cap_util.o(i.L2CAP_BuildCmdReject))
[Address Reference Count : 1]

- l2cap_if.o(i.L2CAP_CmdReject)

L2CAP_CmdReject (Thumb, 18 bytes, Stack size 8 bytes, l2cap_if.o(i.L2CAP_CmdReject))
[Stack]

- Max Depth = 184
- Call Chain = L2CAP_CmdReject ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> l2capSendCmd

[Called By]

- >> l2capProcessSignal
- >> gapProcessOSALMsg

L2CAP_ConnParamUpdateReq (Thumb, 20 bytes, Stack size 16 bytes, l2cap_if.o(i.L2CAP_ConnParamUpdateReq))
[Stack]

- Max Depth = 232
- Call Chain = L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> l2capSendReq

[Called By]

- >> gapRole_startConnUpdate

L2CAP_Fragment_bm_alloc (Thumb, 8 bytes, Stack size 8 bytes, l2cap_util.o(i.L2CAP_Fragment_bm_alloc))
[Stack]

- Max Depth = 8
- Call Chain = L2CAP_Fragment_bm_alloc

[Calls]

- >> LL_TX_bm_alloc (via Veneer)

[Called By]

- >> l2capPktToSegmentBuff

L2CAP_HostNumCompletedPkts (Thumb, 20 bytes, Stack size 16 bytes, l2cap_if.o(i.L2CAP_HostNumCompletedPkts))
[Stack]

- Max Depth = 16
- Call Chain = L2CAP_HostNumCompletedPkts

[Calls]

- >> HCI_HostNumCompletedPktCmd (via Veneer)

[Called By]

- >> GATT_AppCompletedMsg
- >> l2capProcessRxData
- >> gattProcessRxData

L2CAP_Init (Thumb, 68 bytes, Stack size 16 bytes, l2cap_task.o(i.L2CAP_Init))
[Stack]

- Max Depth = 40
- Call Chain = L2CAP_Init ⇒ l2capSarBufReset

[Calls]

- >> HCI_L2CAPTaskRegister (via Veneer)
- >> linkDB_Init
- >> l2capSarBufReset

[Called By]

- >> osalInitTasks (via Veneer)

L2CAP_ParseParamUpdateReq (Thumb, 52 bytes, Stack size 0 bytes, l2cap_util.o(i.L2CAP_ParseParamUpdateReq))
[Called By]

- >> l2capProcessSignal

L2CAP_ProcessEvent (Thumb, 48 bytes, Stack size 16 bytes, l2cap_task.o(i.L2CAP_ProcessEvent))
[Stack]

- Max Depth = 272
- Call Chain = L2CAP_ProcessEvent ⇒ l2capProcessRxData ⇒ l2capProcessSignal ⇒ L2CAP_CmdReject ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_msg_receive (via Veneer)
- >> osal_msg_deallocate (via Veneer)
- >> l2capProcessRxData

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

L2CAP_ReassemblePkt_Reset (Thumb, 52 bytes, Stack size 16 bytes, l2cap_util.o(i.L2CAP_ReassemblePkt_Reset))
[Stack]

- Max Depth = 16
- Call Chain = L2CAP_ReassemblePkt_Reset

[Calls]

- >> osal_bm_free (via Veneer)

[Called By]

- >> l2capParsePacket
- >> gapProcessDisconnectCompleteEvt
- >> gapProcessConnectionCompleteEvt

L2CAP_RegisterApp (Thumb, 40 bytes, Stack size 0 bytes, l2cap_if.o(i.L2CAP_RegisterApp))
[Called By]

- >> SM_Init
- >> GATT_Init
- >> GAP_Init

L2CAP_SegmentPkt_Reset (Thumb, 94 bytes, Stack size 16 bytes, l2cap_util.o(i.L2CAP_SegmentPkt_Reset))
[Stack]

- Max Depth = 16
- Call Chain = L2CAP_SegmentPkt_Reset

[Calls]

- >> osal_bm_free (via Veneer)

[Called By]

- >> gapProcessDisconnectCompleteEvt
- >> gapProcessConnectionCompleteEvt

L2CAP_SendData (Thumb, 52 bytes, Stack size 16 bytes, l2cap_if.o(i.L2CAP_SendData))
[Stack]

- Max Depth = 120
- Call Chain = L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> linkDB_State
- >> l2capEncapSendData

[Called By]

- >> attSendMsg
- >> smSendSMMsg

L2CAP_bm_alloc (Thumb, 24 bytes, Stack size 8 bytes, l2cap_util.o(i.L2CAP_bm_alloc))
[Stack]

- Max Depth = 8
- Call Chain = L2CAP_bm_alloc

[Calls]

- >> osal_bm_adjust_header (via Veneer)
- >> HCI_bm_alloc (via Veneer)

[Called By]

- >> attSendMsg
- >> l2capParsePacket
- >> l2capSendCmd
- >> smSendSMMsg

OTA_Init (Thumb, 22 bytes, Stack size 8 bytes, ota_task.o(i.OTA_Init))
[Stack]

- Max Depth = 112
- Call Chain = OTA_Init ⇒ ppsp_serv_add_serv ⇒ GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> ppsp_impl_reg_serv_appl
- >> ppsp_serv_add_serv

[Called By]

- >> osalInitTasks (via Veneer)

OTA_task_ProcessEvent (Thumb, 24 bytes, Stack size 8 bytes, ota_task.o(i.OTA_task_ProcessEvent))
[Stack]

- Max Depth = 216
- Call Chain = OTA_task_ProcessEvent ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> hal_system_soft_reset (via Veneer)
- >> dbg_printf

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

OutQueue (Thumb, 46 bytes, Stack size 8 bytes, voice_queue.o(i.OutQueue))
[Stack]

- Max Depth = 8
- Call Chain = OutQueue

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> osal_memcpy (via Veneer)

[Called By]

- >> voice_data_pushing_handle

ReadBuffer (Thumb, 58 bytes, Stack size 24 bytes, voice_circ_buff.o(i.ReadBuffer))
[Stack]

- Max Depth = 24
- Call Chain = ReadBuffer

[Calls]

- >> __aeabi_memcpy (via Veneer)
- >> UpdateReadPtr

[Called By]

- >> voice_requeset_data

SM_CalcRandomAddr (Thumb, 68 bytes, Stack size 16 bytes, sm_mgr.o(i.SM_CalcRandomAddr))
[Stack]

- Max Depth = 88
- Call Chain = SM_CalcRandomAddr ⇒ sm_ah ⇒ smEncrypt

[Calls]

- >> osal_memcpy (via Veneer)
- >> smGenerateRandBuf
- >> sm_ah

[Called By]

- >> GAP_ProcessEvent

SM_GenerateAuthenSig (Thumb, 154 bytes, Stack size 88 bytes, sm_mgr.o(i.SM_GenerateAuthenSig))
[Stack]

- Max Depth = 196
- Call Chain = SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_revmemcpy (via Veneer)
- >> osal_mem_free (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> gapIncSignCounter
- >> gapGetSignCounter
- >> gapGetSRK
- >> sm_CMAC

[Called By]

- >> attSendMsg

SM_Init (Thumb, 26 bytes, Stack size 8 bytes, sm_task.o(i.SM_Init))
[Stack]

- Max Depth = 20
- Call Chain = SM_Init ⇒ linkDB_Register

[Calls]

- >> linkDB_Register
- >> HCI_SMPTaskRegister (via Veneer)
- >> L2CAP_RegisterApp

[Called By]

- >> osalInitTasks (via Veneer)

SM_PasskeyUpdate (Thumb, 140 bytes, Stack size 24 bytes, sm_pairing.o(i.SM_PasskeyUpdate))
[Stack]

- Max Depth = 240
- Call Chain = SM_PasskeyUpdate ⇒ sm_c1 ⇒ sm_c1new ⇒ sm_xor

[Calls]

- >> osal_memcpy (via Veneer)
- >> sm_c1
- >> smGenerateConfirm
- >> smGenerateRandBuf

[Called By]

- >> GAP_PasscodeUpdate

SM_ProcessEvent (Thumb, 64 bytes, Stack size 16 bytes, sm_task.o(i.SM_ProcessEvent))
[Stack]

- Max Depth = 240
- Call Chain = SM_ProcessEvent ⇒ smProcessOSALMsg ⇒ smProcessDataMsg ⇒ smSendFailAndEnd ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_msg_receive (via Veneer)
- >> osal_msg_deallocate (via Veneer)
- >> osal_msg_send (via Veneer)
- >> smProcessOSALMsg

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

SM_ResolveRandomAddrs (Thumb, 76 bytes, Stack size 24 bytes, sm_mgr.o(i.SM_ResolveRandomAddrs))
[Stack]

- Max Depth = 96
- Call Chain = SM_ResolveRandomAddrs ⇒ sm_ah ⇒ smEncrypt

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_memcmp (via Veneer)
- >> sm_ah

[Called By]

- >> GAP_ResolvePrivateAddr

SM_ResponderInit (Thumb, 24 bytes, Stack size 8 bytes, sm_rsppairing.o(i.SM_ResponderInit))
[Stack]

- Max Depth = 8
- Call Chain = SM_ResponderInit

[Calls]

- >> smRegisterResponder

[Called By]

- >> GAP_DeviceInit

SM_StartPairing (Thumb, 178 bytes, Stack size 40 bytes, sm_pairing.o(i.SM_StartPairing))
[Stack]

- Max Depth = 224
- Call Chain = SM_StartPairing ⇒ smGeneratePairingReqRsp ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_memset (via Veneer)
- >> GAP_GetParamValue
- >> osal_mem_alloc (via Veneer)
- >> smGeneratePairingReqRsp
- >> smFreePairingParams

[Called By]

- >> GAP_Authenticate

SM_VerifyAuthenSig (Thumb, 206 bytes, Stack size 88 bytes, sm_mgr.o(i.SM_VerifyAuthenSig))
[Stack]

- Max Depth = 196
- Call Chain = SM_VerifyAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_memset (via Veneer)
- >> osal_revmemcpy (via Veneer)
- >> osal_memcmp (via Veneer)
- >> linkDB_Find
- >> osal_mem_free (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> gapUpdateConnSignCounter
- >> sm_CMAC

[Called By]

- >> ATT_ParsePacket

ScanParam_AddService (Thumb, 24 bytes, Stack size 8 bytes, scanparamservice.o(i.ScanParam_AddService))
[Stack]

- Max Depth = 96
- Call Chain = ScanParam_AddService ⇒ GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATTServApp_RegisterService
- >> GATTServApp_InitCharCfg

[Called By]

- >> HidDev_Init

ScanParam_Register (Thumb, 6 bytes, Stack size 0 bytes, scanparamservice.o(i.ScanParam_Register))
[Called By]

- >> HidDev_Init

SleepTask_Init (Thumb, 20 bytes, Stack size 8 bytes, sleep.o(i.SleepTask_Init))
[Stack]

- Max Depth = 16
- Call Chain = SleepTask_Init ⇒ start_enter_power_off_mode

[Calls]

- >> start_enter_power_off_mode

[Called By]

- >> osalInitTasks (via Veneer)

SleepTask_ProcessEvent (Thumb, 32 bytes, Stack size 8 bytes, sleep.o(i.SleepTask_ProcessEvent))
[Stack]

- Max Depth = 224
- Call Chain = SleepTask_ProcessEvent ⇒ enter_poweroff_mode ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> enter_poweroff_mode

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

UpdateReadPtr (Thumb, 30 bytes, Stack size 0 bytes, voice_circ_buff.o(i.UpdateReadPtr))
[Called By]

- >> ReadBuffer

UpdateWritePtr (Thumb, 30 bytes, Stack size 0 bytes, voice_circ_buff.o(i.UpdateWritePtr))
[Called By]

- >> FillBuffer

VOICE_Start (Thumb, 8 bytes, Stack size 8 bytes, voice_task.o(i.VOICE_Start))
[Stack]

- Max Depth = 644
- Call Chain = VOICE_Start ⇒ start_voice_task ⇒ voice_report_start_cmd_handle ⇒ Google_AudioProfile_SetParameter ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> start_voice_task

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

VOICE_Stop (Thumb, 8 bytes, Stack size 8 bytes, voice_task.o(i.VOICE_Stop))
[Stack]

- Max Depth = 64
- Call Chain = VOICE_Stop ⇒ stop_voice_task ⇒ hal_gpio_write ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> stop_voice_task

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

_uart_putc (Thumb, 14 bytes, Stack size 8 bytes, my_printf.o(i._uart_putc))
[Stack]

- Max Depth = 64
- Call Chain = _uart_putc ⇒ hal_uart_send_buff ⇒ txmit_buf_use_tx_buf ⇒ hal_pwrmgr_lock

[Calls]

- >> hal_uart_send_buff

[Address Reference Count : 1]

- my_printf.o(i.dbg_printf)

adcMeasureTask (Thumb, 92 bytes, Stack size 16 bytes, battdetect.o(i.adcMeasureTask))
[Stack]

- Max Depth = 224
- Call Chain = adcMeasureTask ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> hal_gpio_write (via Veneer)
- >> hal_gpio_cfg_analog_io (via Veneer)
- >> __aeabi_memcpy (via Veneer)
- >> dbg_printf
- >> hal_adc_start (via Veneer)
- >> hal_adc_init (via Veneer)
- >> hal_adc_config_channel (via Veneer)

[Called By]

- >> Batt_task_ProcessEvent

adpcm_coder (Thumb, 230 bytes, Stack size 36 bytes, adpcm.o(i.adpcm_coder))
[Stack]

- Max Depth = 36
- Call Chain = adpcm_coder

[Called By]

- >> voice_data_encode_inqueue

advance_close_ir_learn (Thumb, 68 bytes, Stack size 8 bytes, ir_task.o(i.advance_close_ir_learn))
[Stack]

- Max Depth = 112
- Call Chain = advance_close_ir_learn ⇒ hclk_clock_switch ⇒ hal_system_clock_change_active ⇒ clk_init ⇒ _clk_apply_setting1

[Calls]

- >> hal_gpioin_unregister (via Veneer)
- >> hal_gpio_write (via Veneer)
- >> hal_gpio_pin_init (via Veneer)
- >> hal_pwrmgr_unlock (via Veneer)
- >> osal_stop_timerEx (via Veneer)
- >> hclk_clock_switch (via Veneer)
- >> osal_get_timeoutEx (via Veneer)

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

attSendMsg (Thumb, 120 bytes, Stack size 48 bytes, att_util.o(i.attSendMsg))
[Stack]

- Max Depth = 244
- Call Chain = attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> linkDB_State
- >> L2CAP_bm_alloc
- >> L2CAP_SendData
- >> osal_bm_free (via Veneer)
- >> SM_GenerateAuthenSig

[Called By]

- >> ATT_WriteRsp
- >> ATT_ReadRsp
- >> ATT_ReadMultiRsp
- >> ATT_ReadByTypeRsp
- >> ATT_ReadByGrpTypeRsp
- >> ATT_ReadBlobRsp
- >> ATT_PrepareWriteRsp
- >> ATT_FindByTypeValueRsp
- >> ATT_ExecuteWriteRsp
- >> ATT_ExchangeMTURsp
- >> ATT_ErrorRsp
- >> ATT_HandleValueNoti
- >> ATT_HandleValueInd
- >> ATT_FindInfoRsp

ble_advertiseing_status_display_handle (Thumb, 106 bytes, Stack size 8 bytes, hidkbd.o(i.ble_advertiseing_status_display_handle))
[Stack]

- Max Depth = 56
- Call Chain = ble_advertiseing_status_display_handle ⇒ hal_gpio_write ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpioretention_register (via Veneer)
- >> hal_gpio_write (via Veneer)
- >> osal_start_timerEx (via Veneer)

[Called By]

- >> HidKbd_ProcessEvent

bonding_info_key_advertise_handle (Thumb, 114 bytes, Stack size 24 bytes, hidkbd.o(i.bonding_info_key_advertise_handle))
[Stack]

- Max Depth = 312
- Call Chain = bonding_info_key_advertise_handle ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> dbg_printf
- >> osal_start_timerEx (via Veneer)
- >> GAPRole_TerminateConnection
- >> GAPRole_SetParameter

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

bonding_info_key_handle (Thumb, 188 bytes, Stack size 16 bytes, gapbondmgr.o(i.bonding_info_key_handle))
[Stack]

- Max Depth = 468
- Call Chain = bonding_info_key_handle ⇒ gapBondMgrEraseBonding ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> osal_memcpy (via Veneer)
- >> update_local_address
- >> osal_snv_write
- >> HCI_ReadBDADDRCmd (via Veneer)
- >> gapBondMgrReadBonds
- >> gapBondMgrFindEmpty
- >> gapBondMgrFindAddr
- >> gapBondMgrEraseBonding

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

bsp_GetKey (Thumb, 32 bytes, Stack size 0 bytes, bsp_button.o(i.bsp_GetKey))
[Called By]

- >> bsp_KeyPro

bsp_InitBtn (Thumb, 138 bytes, Stack size 20 bytes, bsp_button.o(i.bsp_InitBtn))
[Stack]

- Max Depth = 20
- Call Chain = bsp_InitBtn

[Called By]

- >> btp_button_init

bsp_KeyEmpty (Thumb, 66 bytes, Stack size 8 bytes, bsp_button.o(i.bsp_KeyEmpty))
[Stack]

- Max Depth = 8
- Call Chain = bsp_KeyEmpty

[Called By]

- >> Bsp_Btn_ProcessEvent

bsp_KeyPro (Thumb, 28 bytes, Stack size 16 bytes, bsp_button.o(i.bsp_KeyPro))
[Stack]

- Max Depth = 56
- Call Chain = bsp_KeyPro ⇒ bsp_DetectBtn ⇒ bsp_is_key_press

[Calls]

- >> bsp_GetKey
- >> bsp_DetectBtn

[Called By]

- >> Bsp_Btn_ProcessEvent

bsp_button_init_config_handle (Thumb, 14 bytes, Stack size 8 bytes, bsp_button_task.o(i.bsp_button_init_config_handle))
[Stack]

- Max Depth = 8
- Call Chain = bsp_button_init_config_handle

[Calls]

- >> osal_set_event (via Veneer)

[Called By]

- >> hal_keyboard_matrix_task_ProcessEvent

bsp_set_key_value_by_row_col (Thumb, 116 bytes, Stack size 24 bytes, bsp_button.o(i.bsp_set_key_value_by_row_col))
[Stack]

- Max Depth = 24
- Call Chain = bsp_set_key_value_by_row_col

[Calls]

- >> bsp_btn_map

[Called By]

- >> kscan_evt_handler (via Veneer)

bt_control_key_code_report_end (Thumb, 26 bytes, Stack size 8 bytes, hidkbd.o(i.bt_control_key_code_report_end))
[Stack]

- Max Depth = 360
- Call Chain = bt_control_key_code_report_end ⇒ HidDev_Report ⇒ hidDevSendReport ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> HidDev_Report

[Called By]

- >> bt_control_key_code_report_start
- >> bt_key_code_sending_over_handle

bt_control_key_code_report_start (Thumb, 36 bytes, Stack size 16 bytes, hidkbd.o(i.bt_control_key_code_report_start))
[Stack]

- Max Depth = 376
- Call Chain = bt_control_key_code_report_start ⇒ bt_control_key_code_report_end ⇒ HidDev_Report ⇒ hidDevSendReport ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> HidDev_Report
- >> bt_control_key_code_report_end

[Called By]

- >> bt_key_code_sending_handle

bt_control_keyboard_code_report_end (Thumb, 22 bytes, Stack size 16 bytes, hidkbd.o(i.bt_control_keyboard_code_report_end))
[Stack]

- Max Depth = 368
- Call Chain = bt_control_keyboard_code_report_end ⇒ HidDev_Report ⇒ hidDevSendReport ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> HidDev_Report

[Called By]

- >> bt_control_keyboard_code_report_start
- >> bt_key_code_sending_over_handle

bt_control_keyboard_code_report_start (Thumb, 42 bytes, Stack size 24 bytes, hidkbd.o(i.bt_control_keyboard_code_report_start))
[Stack]

- Max Depth = 392
- Call Chain = bt_control_keyboard_code_report_start ⇒ bt_control_keyboard_code_report_end ⇒ HidDev_Report ⇒ hidDevSendReport ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> HidDev_Report
- >> bt_control_keyboard_code_report_end

[Called By]

- >> bt_key_code_sending_handle

bt_key_code_sending_handle (Thumb, 64 bytes, Stack size 8 bytes, ir_task.o(i.bt_key_code_sending_handle))
[Stack]

- Max Depth = 400
- Call Chain = bt_key_code_sending_handle ⇒ bt_control_keyboard_code_report_start ⇒ bt_control_keyboard_code_report_end ⇒ HidDev_Report ⇒ hidDevSendReport ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> hal_gpio_write (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> bt_control_keyboard_code_report_start
- >> bt_control_key_code_report_start

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

bt_key_code_sending_over_handle (Thumb, 30 bytes, Stack size 8 bytes, ir_task.o(i.bt_key_code_sending_over_handle))
[Stack]

- Max Depth = 376
- Call Chain = bt_key_code_sending_over_handle ⇒ bt_control_keyboard_code_report_end ⇒ HidDev_Report ⇒ hidDevSendReport ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> bt_control_keyboard_code_report_end
- >> bt_control_key_code_report_end

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

btp_button_init (Thumb, 120 bytes, Stack size 8 bytes, bsp_button_task.o(i.btp_button_init))
[Stack]

- Max Depth = 216
- Call Chain = btp_button_init ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf
- >> kscan_button_init
- >> bsp_InitBtn

[Called By]

- >> Bsp_Btn_ProcessEvent
- >> Bsp_Btn_Init

close_ir_learn (Thumb, 62 bytes, Stack size 8 bytes, ir_task.o(i.close_ir_learn))
[Stack]

- Max Depth = 112
- Call Chain = close_ir_learn ⇒ hclk_clock_switch ⇒ hal_system_clock_change_active ⇒ clk_init ⇒ _clk_apply_setting1

[Calls]

- >> hal_gpioin_unregister (via Veneer)
- >> hal_gpio_write (via Veneer)
- >> hal_gpio_pin_init (via Veneer)
- >> hal_pwrmgr_unlock (via Veneer)
- >> osal_stop_timerEx (via Veneer)
- >> hclk_clock_switch (via Veneer)

[Called By]

- >> IrTask_ProcessEvent
- >> ir_learn_handle

connect_param_vaild_check (Thumb, 32 bytes, Stack size 8 bytes, voice_task.o(i.connect_param_vaild_check))
[Stack]

- Max Depth = 24
- Call Chain = connect_param_vaild_check ⇒ GAPRole_GetParameter

[Calls]

- >> GAPRole_GetParameter

[Called By]

- >> stop_voice_task
- >> start_voice_task

data_read (Thumb, 10 bytes, Stack size 8 bytes, data_save.o(i.data_read))
[Stack]

- Max Depth = 220
- Call Chain = data_read ⇒ osal_snv_read ⇒ hal_fs_item_read ⇒ hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_snv_read

[Called By]

- >> IrTask_Init

data_save_init (Thumb, 12 bytes, Stack size 8 bytes, data_save.o(i.data_save_init))
[Stack]

- Max Depth = 292
- Call Chain = data_save_init ⇒ hal_fs_init ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> hal_fs_init

[Called By]

- >> main (via Veneer)

data_write (Thumb, 10 bytes, Stack size 8 bytes, data_save.o(i.data_write))
[Stack]

- Max Depth = 380
- Call Chain = data_write ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_snv_write

[Called By]

- >> ir_learn_handle

dbg_printf (Thumb, 22 bytes, Stack size 24 bytes, my_printf.o(i.dbg_printf))
[Stack]

- Max Depth = 208
- Call Chain = dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> log_vsprintf

[Called By]

- >> Key_Short_Press_Ir_Sending_Handle_From_Poweroff
- >> main (via Veneer)
- >> adc_compare_cb (via Veneer)
- >> gapRole_ProcessOSALMsg
- >> GAP_DeviceInit
- >> hal_keyboard_matrix_task_init
- >> hal_keyboard_matrix_task_ProcessEvent
- >> OTA_task_ProcessEvent
- >> start_enable_latency_event
- >> gapRolesParamUpdateCB
- >> enable_advert
- >> bonding_info_key_advertise_handle
- >> HidKbd_Init
- >> AudioProfile_WriteAttrCB
- >> btp_button_init
- >> hal_bsp_btn_callback (via Veneer)
- >> ppsp_impl_prc_serv_msgs_upda
- >> ppsp_impl_prc_serv_msgs_comp
- >> ppsp_serv_set_para
- >> adcMeasureTask
- >> adc_evt (via Veneer)
- >> enter_poweroff_mode
- >> hidDevGapStateCB
- >> hidDevPairStateCB

dbg_printf_init (Thumb, 16 bytes, Stack size 16 bytes, my_printf.o(i.dbg_printf_init))
[Stack]

- Max Depth = 136
- Call Chain = dbg_printf_init ⇒ hal_uart_init ⇒ uart_hw_init ⇒ uart_hw_deinit ⇒ hal_clk_reset

[Calls]

- >> hal_uart_init

[Called By]

- >> main (via Veneer)

disable_slave_latency_handle (Thumb, 88 bytes, Stack size 16 bytes, hidkbd.o(i.disable_slave_latency_handle))
[Stack]

- Max Depth = 32
- Call Chain = disable_slave_latency_handle ⇒ GAPRole_GetParameter

[Calls]

- >> osal_stop_timerEx (via Veneer)
- >> osal_get_timeoutEx (via Veneer)
- >> GAPRole_GetParameter
- >> get_hidDevConnSecure_value
- >> LL_PLUS_DisableSlaveLatency (via Veneer)

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

enable_advert (Thumb, 122 bytes, Stack size 32 bytes, hidkbd.o(i.enable_advert))
[Stack]

- Max Depth = 524
- Call Chain = enable_advert ⇒ GAPBondMgr_SetParameter ⇒ gapBondMgrEraseAllBondings ⇒ gapBondMgrEraseBonding ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> dbg_printf
- >> osal_start_timerEx (via Veneer)
- >> GAPRole_TerminateConnection
- >> GAPRole_SetParameter
- >> update_local_address
- >> GAPBondMgr_SetParameter
- >> GAPBondMgr_GetParameter

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

enable_slave_latency_handle (Thumb, 64 bytes, Stack size 16 bytes, hidkbd.o(i.enable_slave_latency_handle))
[Stack]

- Max Depth = 32
- Call Chain = enable_slave_latency_handle ⇒ GAPRole_GetParameter

[Calls]

- >> GAPRole_GetParameter
- >> get_hidDevConnSecure_value
- >> LL_PLUS_EnableSlaveLatency (via Veneer)

[Called By]

- >> HidKbd_ProcessEvent

enter_poweroff_mode (Thumb, 22 bytes, Stack size 8 bytes, sleep.o(i.enter_poweroff_mode))
[Stack]

- Max Depth = 216
- Call Chain = enter_poweroff_mode ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf
- >> hal_pwrmgr_poweroff (via Veneer)
- >> kscan_enter_power_off_gpio_option

[Called By]

- >> SleepTask_ProcessEvent

gapAddAddrAdj (Thumb, 50 bytes, Stack size 0 bytes, gap_configmgr.o(i.gapAddAddrAdj))
[Called By]

- >> gapSetAdvParams
- >> gapProcessNewAddr

gapDetermineAddrType (Thumb, 30 bytes, Stack size 0 bytes, gap_configmgr.o(i.gapDetermineAddrType))
[Called By]

- >> gapProcessConnectionCompleteEvt

gapFindADType (Thumb, 72 bytes, Stack size 36 bytes, gap_devmgr.o(i.gapFindADType))
[Stack]

- Max Depth = 36
- Call Chain = gapFindADType

[Calls]

- >> gapValidADType

[Called By]

- >> isLimitedDiscoverableMode

gapFreeEstLink (Thumb, 20 bytes, Stack size 8 bytes, gap_linkmgr.o(i.gapFreeEstLink))
[Stack]

- Max Depth = 8
- Call Chain = gapFreeEstLink

[Calls]

- >> osal_mem_free (via Veneer)

[Called By]

- >> gapProcessConnectionCompleteEvt

gapGetDevAddress (Thumb, 20 bytes, Stack size 0 bytes, gap_configmgr.o(i.gapGetDevAddress))
[Called By]

- >> sm_c1
- >> smResponderSendNextKeyInfo

gapGetDevAddressMode (Thumb, 6 bytes, Stack size 0 bytes, gap_configmgr.o(i.gapGetDevAddressMode))
[Called By]

- >> sm_c1
- >> smResponderSendNextKeyInfo

gapGetIRK (Thumb, 6 bytes, Stack size 0 bytes, gap_configmgr.o(i.gapGetIRK))
[Called By]

- >> GAP_ProcessEvent
- >> smResponderSendNextKeyInfo

gapGetSRK (Thumb, 6 bytes, Stack size 0 bytes, gap_configmgr.o(i.gapGetSRK))
[Called By]

- >> smResponderSendNextKeyInfo
- >> SM_GenerateAuthenSig

gapGetSignCounter (Thumb, 8 bytes, Stack size 0 bytes, gap_configmgr.o(i.gapGetSignCounter))
[Called By]

- >> SM_GenerateAuthenSig

gapIncSignCounter (Thumb, 30 bytes, Stack size 8 bytes, gap_configmgr.o(i.gapIncSignCounter))
[Stack]

- Max Depth = 8
- Call Chain = gapIncSignCounter

[Calls]

- >> osal_set_event (via Veneer)

[Called By]

- >> SM_GenerateAuthenSig

gapIsAdvertising (Thumb, 12 bytes, Stack size 0 bytes, gap_devmgr.o(i.gapIsAdvertising))
[Called By]

- >> GAP_ProcessEvent

gapPairingCompleteCB (Thumb, 314 bytes, Stack size 40 bytes, gap_linkmgr.o(i.gapPairingCompleteCB))
[Stack]

- Max Depth = 96
- Call Chain = gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> osal_memcpy (via Veneer)
- >> linkDB_Find
- >> osal_mem_free (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> osal_memdup (via Veneer)
- >> sendAuthEvent

[Called By]

- >> smEndPairing

gapPasskeyNeededCB (Thumb, 100 bytes, Stack size 32 bytes, gap_linkmgr.o(i.gapPasskeyNeededCB))
[Stack]

- Max Depth = 44
- Call Chain = gapPasskeyNeededCB ⇒ linkDB_Find

[Calls]

- >> osal_memcpy (via Veneer)
- >> linkDB_Find
- >> GAP_GetParamValue
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> smpResponderProcessPairingReq

gapProcessConnUpdateCompleteEvt (Thumb, 20 bytes, Stack size 8 bytes, gap_linkmgr.o(i.gapProcessConnUpdateCompleteEvt))
[Stack]

- Max Depth = 60
- Call Chain = gapProcessConnUpdateCompleteEvt ⇒ gapSendLinkUpdateEvent ⇒ linkDB_Find

[Calls]

- >> gapSendLinkUpdateEvent

[Called By]

- >> gapProcessOSALMsg

gapProcessConnectionCompleteEvt (Thumb, 208 bytes, Stack size 48 bytes, gap_linkmgr.o(i.gapProcessConnectionCompleteEvt))
[Stack]

- Max Depth = 112
- Call Chain = gapProcessConnectionCompleteEvt ⇒ linkDB_Add ⇒ reportStatusChange

[Calls]

- >> ATT_UpdateMtuSize
- >> linkDB_Add
- >> L2CAP_SegmentPkt_Reset
- >> L2CAP_ReassemblePkt_Reset
- >> sendEstLinkEvent
- >> gapFreeEstLink
- >> sendTerminateEvent
- >> disconnectNext
- >> gapDetermineAddrType

[Called By]

- >> gapProcessOSALMsg

gapProcessDisconnectCompleteEvt (Thumb, 104 bytes, Stack size 16 bytes, gap_linkmgr.o(i.gapProcessDisconnectCompleteEvt))
[Stack]

- Max Depth = 48
- Call Chain = gapProcessDisconnectCompleteEvt ⇒ linkDB_Remove ⇒ reportStatusChange

[Calls]

- >> linkDB_Find
- >> ATT_UpdateMtuSize
- >> linkDB_Remove
- >> L2CAP_SegmentPkt_Reset
- >> L2CAP_ReassemblePkt_Reset
- >> sendTerminateEvent
- >> gapFreeAuthLink
- >> disconnectNext

[Called By]

- >> gapProcessOSALMsg

gapProcessNewAddr (Thumb, 40 bytes, Stack size 8 bytes, gap_configmgr.o(i.gapProcessNewAddr))
[Stack]

- Max Depth = 40
- Call Chain = gapProcessNewAddr ⇒ HCI_LE_SetRandomAddressCmd ⇒ LL_SetRandomAddress1

[Calls]

- >> osal_memcpy (via Veneer)
- >> HCI_LE_SetRandomAddressCmd
- >> gapAddAddrAdj

[Called By]

- >> GAP_ProcessEvent

gapProcessRandomAddrComplete (Thumb, 92 bytes, Stack size 24 bytes, gap_configmgr.o(i.gapProcessRandomAddrComplete))
[Stack]

- Max Depth = 24
- Call Chain = gapProcessRandomAddrComplete

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)
- >> osal_start_reload_timer (via Veneer)

[Called By]

- >> gapProcessHCICmdCompleteEvt

gapReadBD_ADDRStatus (Thumb, 62 bytes, Stack size 16 bytes, gap_configmgr.o(i.gapReadBD_ADDRStatus))
[Stack]

- Max Depth = 32
- Call Chain = gapReadBD_ADDRStatus ⇒ gapSendDeviceInitDoneEvent

[Calls]

- >> osal_memcpy (via Veneer)
- >> HCI_LE_ReadBufSizeCmd (via Veneer)
- >> gapSendDeviceInitDoneEvent

[Called By]

- >> gapProcessHCICmdCompleteEvt

gapReadBufSizeCmdStatus (Thumb, 56 bytes, Stack size 8 bytes, gap_configmgr.o(i.gapReadBufSizeCmdStatus))
[Stack]

- Max Depth = 24
- Call Chain = gapReadBufSizeCmdStatus ⇒ gapSendDeviceInitDoneEvent

[Calls]

- >> gapSendDeviceInitDoneEvent

[Called By]

- >> gapProcessHCICmdCompleteEvt

gapRegisterPeripheral (Thumb, 6 bytes, Stack size 0 bytes, gap_task.o(i.gapRegisterPeripheral))
[Called By]

- >> GAP_PeriDevMgrInit

gapRolesParamUpdateCB (Thumb, 98 bytes, Stack size 24 bytes, hidkbd.o(i.gapRolesParamUpdateCB))
[Stack]

- Max Depth = 312
- Call Chain = gapRolesParamUpdateCB ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> dbg_printf
- >> update_connect_param
- >> GAPRole_SetParameter

[Address Reference Count : 1]

- hidkbd.o(.data)

gapSendBondCompleteEvent (Thumb, 68 bytes, Stack size 24 bytes, gap_linkmgr.o(i.gapSendBondCompleteEvent))
[Stack]

- Max Depth = 36
- Call Chain = gapSendBondCompleteEvent ⇒ linkDB_Find

[Calls]

- >> osal_memset (via Veneer)
- >> linkDB_Find
- >> GAP_GetParamValue
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> smProcessEncryptChange

gapSendLinkUpdateEvent (Thumb, 68 bytes, Stack size 40 bytes, gap_linkmgr.o(i.gapSendLinkUpdateEvent))
[Stack]

- Max Depth = 52
- Call Chain = gapSendLinkUpdateEvent ⇒ linkDB_Find

[Calls]

- >> linkDB_Find
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> gapProcessConnUpdateCompleteEvt

gapSendPairingReqEvent (Thumb, 92 bytes, Stack size 40 bytes, gap_linkmgr.o(i.gapSendPairingReqEvent))
[Stack]

- Max Depth = 52
- Call Chain = gapSendPairingReqEvent ⇒ linkDB_Find

[Calls]

- >> osal_memset (via Veneer)
- >> linkDB_Find
- >> GAP_GetParamValue
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> smpResponderProcessIncoming

gapSetAdvParams (Thumb, 128 bytes, Stack size 40 bytes, gap_peridevmgr.o(i.gapSetAdvParams))
[Stack]

- Max Depth = 84
- Call Chain = gapSetAdvParams ⇒ isLimitedDiscoverableMode ⇒ gapFindADType

[Calls]

- >> GAP_NumActiveConnections
- >> GAP_GetParamValue
- >> HCI_LE_SetAdvParamCmd (via Veneer)
- >> isLimitedDiscoverableMode
- >> gapAddAddrAdj

[Called By]

- >> GAP_MakeDiscoverable

[Address Reference Count : 1]

- gap_peridevmgr.o(.data)

gapSetAdvParamsStatus (Thumb, 40 bytes, Stack size 8 bytes, gap_peridevmgr.o(i.gapSetAdvParamsStatus))
[Stack]

- Max Depth = 32
- Call Chain = gapSetAdvParamsStatus ⇒ gapSendMakeDiscEvent ⇒ gapFreeAdvertState

[Calls]

- >> HCI_LE_SetAdvEnableCmd (via Veneer)
- >> gapSendMakeDiscEvent

[Called By]

- >> gapPeriProcessHCICmdCompleteEvt

gapUpdateConnSignCounter (Thumb, 82 bytes, Stack size 24 bytes, gap_configmgr.o(i.gapUpdateConnSignCounter))
[Stack]

- Max Depth = 36
- Call Chain = gapUpdateConnSignCounter ⇒ linkDB_Find

[Calls]

- >> osal_memcpy (via Veneer)
- >> linkDB_Find
- >> GAP_GetParamValue
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> SM_VerifyAuthenSig

gapValidADType (Thumb, 18 bytes, Stack size 0 bytes, gap_devmgr.o(i.gapValidADType))
[Called By]

- >> gapFindADType

gapWriteAdvDataStatus (Thumb, 44 bytes, Stack size 16 bytes, gap_peridevmgr.o(i.gapWriteAdvDataStatus))
[Stack]

- Max Depth = 16
- Call Chain = gapWriteAdvDataStatus

[Calls]

- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> gapPeriProcessHCICmdCompleteEvt

gapWriteAdvEnableStatus (Thumb, 164 bytes, Stack size 32 bytes, gap_peridevmgr.o(i.gapWriteAdvEnableStatus))
[Stack]

- Max Depth = 76
- Call Chain = gapWriteAdvEnableStatus ⇒ isLimitedDiscoverableMode ⇒ gapFindADType

[Calls]

- >> osal_start_timerEx (via Veneer)
- >> GAP_GetParamValue
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)
- >> osal_start_reload_timer (via Veneer)
- >> isLimitedDiscoverableMode
- >> gapSendMakeDiscEvent
- >> gapFreeAdvertState

[Called By]

- >> gapPeriProcessHCICmdCompleteEvt

gattNotifyEvent (Thumb, 82 bytes, Stack size 40 bytes, gatt_task.o(i.gattNotifyEvent))
[Stack]

- Max Depth = 40
- Call Chain = gattNotifyEvent

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> gattServerProcessMsgCB
- >> gattServerHandleTimerCB
- >> gattServerHandleConnStatusCB

gattRegisterServer (Thumb, 6 bytes, Stack size 0 bytes, gatt_task.o(i.gattRegisterServer))
[Called By]

- >> GATT_InitServer

gattStartTimer (Thumb, 14 bytes, Stack size 8 bytes, gatt_task.o(i.gattStartTimer))
[Stack]

- Max Depth = 8
- Call Chain = gattStartTimer

[Calls]

- >> osal_CbTimerStart (via Veneer)

[Called By]

- >> GATT_Indication

gattStopTimer (Thumb, 26 bytes, Stack size 8 bytes, gatt_task.o(i.gattStopTimer))
[Stack]

- Max Depth = 8
- Call Chain = gattStopTimer

[Calls]

- >> osal_CbTimerStop (via Veneer)

[Called By]

- >> gattResetServerInfo

get_hidDevConnSecure_value (Thumb, 6 bytes, Stack size 0 bytes, hiddev.o(i.get_hidDevConnSecure_value))
[Called By]

- >> start_enable_latency_event
- >> enable_slave_latency_handle
- >> disable_slave_latency_handle
- >> stop_voice_task
- >> start_voice_task

get_ir_learn_mode (Thumb, 6 bytes, Stack size 0 bytes, ir_task.o(i.get_ir_learn_mode))
[Called By]

- >> hal_bsp_btn_callback (via Veneer)

get_osal_connect_event_status (Thumb, 26 bytes, Stack size 8 bytes, peripheral.o(i.get_osal_connect_event_status))
[Stack]

- Max Depth = 8
- Call Chain = get_osal_connect_event_status

[Calls]

- >> osal_stop_timerEx (via Veneer)
- >> osal_get_timeoutEx (via Veneer)

[Called By]

- >> start_voice_task

get_voice_work_status (Thumb, 12 bytes, Stack size 0 bytes, voice_task.o(i.get_voice_work_status))
[Called By]

- >> stop_voice_task
- >> start_voice_task

hal_KSCAN_IRQHandler (Thumb, 134 bytes, Stack size 72 bytes, kscan.o(i.hal_KSCAN_IRQHandler))
[Stack]

- Max Depth = 120
- Call Chain = hal_KSCAN_IRQHandler ⇒ kscan_compare_key

[Calls]

- >> __aeabi_memcpy4 (via Veneer)
- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> rmv_ghost_key
- >> kscan_compare_key

[Address Reference Count : 1]

- kscan.o(i.hal_kscan_init)

hal_UART0_IRQHandler (Thumb, 62 bytes, Stack size 8 bytes, uart.o(i.hal_UART0_IRQHandler))
[Stack]

- Max Depth = 64
- Call Chain = hal_UART0_IRQHandler ⇒ irq_rx_handler

[Calls]

- >> irq_tx_empty_handler (via Veneer)
- >> irq_rx_handler (via Veneer)

[Address Reference Count : 2]

- uart.o(i.uart_hw_init)
- jump_table.o(jump_table_mem_area)

hal_UART1_IRQHandler (Thumb, 62 bytes, Stack size 8 bytes, uart.o(i.hal_UART1_IRQHandler))
[Stack]

- Max Depth = 64
- Call Chain = hal_UART1_IRQHandler ⇒ irq_rx_handler

[Calls]

- >> irq_tx_empty_handler (via Veneer)
- >> irq_rx_handler (via Veneer)

[Address Reference Count : 1]

- uart.o(i.uart_hw_init)

hal_fs_garbage_collect (Thumb, 256 bytes, Stack size 72 bytes, fs.o(i.hal_fs_garbage_collect))
[Stack]

- Max Depth = 348
- Call Chain = hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> fs_spif_write
- >> fs_spif_read
- >> fs_init
- >> fs_check_psr
- >> check_addr
- >> hal_flash_erase_sector (via Veneer)

[Called By]

- >> osal_snv_write

hal_fs_get_free_size (Thumb, 70 bytes, Stack size 16 bytes, fs.o(i.hal_fs_get_free_size))
[Stack]

- Max Depth = 16
- Call Chain = hal_fs_get_free_size

[Calls]

- >> __aeabi_idivmod (via Veneer)

[Called By]

- >> hal_fs_item_write
- >> osal_snv_write

hal_fs_get_garbage_size (Thumb, 52 bytes, Stack size 16 bytes, fs.o(i.hal_fs_get_garbage_size))
[Stack]

- Max Depth = 164
- Call Chain = hal_fs_get_garbage_size ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> fs_search_items

[Called By]

- >> osal_snv_write

hal_fs_init (Thumb, 36 bytes, Stack size 8 bytes, fs.o(i.hal_fs_init))
[Stack]

- Max Depth = 284
- Call Chain = hal_fs_init ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> fs_init

[Called By]

- >> data_save_init

hal_fs_item_del (Thumb, 154 bytes, Stack size 32 bytes, fs.o(i.hal_fs_item_del))
[Stack]

- Max Depth = 188
- Call Chain = hal_fs_item_del ⇒ hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> hal_fs_item_find_id
- >> fs_spif_write
- >> fs_spif_read
- >> fs_check_psr
- >> check_addr

[Called By]

- >> hal_fs_item_write

hal_fs_item_find_id (Thumb, 32 bytes, Stack size 8 bytes, fs.o(i.hal_fs_item_find_id))
[Stack]

- Max Depth = 156
- Call Chain = hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> fs_search_items

[Called By]

- >> hal_fs_item_write
- >> hal_fs_item_read
- >> hal_fs_item_del

hal_fs_item_read (Thumb, 164 bytes, Stack size 48 bytes, fs.o(i.hal_fs_item_read))
[Stack]

- Max Depth = 204
- Call Chain = hal_fs_item_read ⇒ hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> hal_fs_item_find_id
- >> fs_spif_read
- >> fs_check_psr
- >> check_addr

[Called By]

- >> osal_snv_read

hal_fs_item_write (Thumb, 326 bytes, Stack size 64 bytes, fs.o(i.hal_fs_item_write))
[Stack]

- Max Depth = 252
- Call Chain = hal_fs_item_write ⇒ hal_fs_item_del ⇒ hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> hal_fs_item_find_id
- >> hal_fs_item_del
- >> hal_fs_get_free_size
- >> fs_spif_write
- >> fs_check_psr
- >> osal_memcpy (via Veneer)

[Called By]

- >> osal_snv_write

hal_keyboard_matrix_task_ProcessEvent (Thumb, 76 bytes, Stack size 16 bytes, hal_keyboard_matrix.o(i.hal_keyboard_matrix_task_ProcessEvent))
[Stack]

- Max Depth = 224
- Call Chain = hal_keyboard_matrix_task_ProcessEvent ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf
- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> osal_get_timeoutEx (via Veneer)
- >> start_enter_power_off_mode
- >> ir_right_sending_stop_handle
- >> bsp_button_init_config_handle
- >> kscan_soft_polling_read

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

hal_keyboard_matrix_task_init (Thumb, 32 bytes, Stack size 8 bytes, hal_keyboard_matrix.o(i.hal_keyboard_matrix_task_init))
[Stack]

- Max Depth = 216
- Call Chain = hal_keyboard_matrix_task_init ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf
- >> hal_kscan_btn_check

[Called By]

- >> osalInitTasks (via Veneer)

hal_kscan_btn_check (Thumb, 16 bytes, Stack size 0 bytes, hal_keyboard_matrix.o(i.hal_kscan_btn_check))
[Called By]

- >> hal_keyboard_matrix_task_init

hal_kscan_init (Thumb, 72 bytes, Stack size 32 bytes, kscan.o(i.hal_kscan_init))
[Stack]

- Max Depth = 72
- Call Chain = hal_kscan_init ⇒ kscan_hw_config ⇒ hal_gpio_pull_set

[Calls]

- >> hal_pwrmgr_register (via Veneer)
- >> __aeabi_memcpy4 (via Veneer)
- >> kscan_hw_config

[Called By]

- >> kscan_button_init

hal_kscan_timeout_handler (Thumb, 130 bytes, Stack size 56 bytes, kscan.o(i.hal_kscan_timeout_handler))
[Stack]

- Max Depth = 104
- Call Chain = hal_kscan_timeout_handler ⇒ kscan_compare_key

[Calls]

- >> hal_pwrmgr_unlock (via Veneer)
- >> __aeabi_memclr4 (via Veneer)
- >> __aeabi_memcpy4 (via Veneer)
- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> kscan_hw_config
- >> rmv_ghost_key
- >> kscan_compare_key
- >> hal_kscan_clear_config

[Called By]

- >> Bsp_Btn_ProcessEvent

hal_pwm_ch_start (Thumb, 116 bytes, Stack size 40 bytes, pwm.o(i.hal_pwm_ch_start))
[Stack]

- Max Depth = 76
- Call Chain = hal_pwm_ch_start ⇒ hal_pwm_init ⇒ hal_pwrmgr_register

[Calls]

- >> hal_pwm_start
- >> hal_pwm_set_count_val
- >> hal_pwm_open_channel
- >> hal_pwm_init

[Called By]

- >> ir_sending_learn_wavefrom_handle
- >> ir_right_sending_handle

hal_pwm_close_channel (Thumb, 40 bytes, Stack size 16 bytes, pwm.o(i.hal_pwm_close_channel))
[Stack]

- Max Depth = 16
- Call Chain = hal_pwm_close_channel

[Calls]

- >> hal_gpio_fmux (via Veneer)

[Called By]

- >> hal_pwm_module_deinit

hal_pwm_destroy (Thumb, 78 bytes, Stack size 0 bytes, pwm.o(i.hal_pwm_destroy))
[Called By]

- >> hal_pwm_module_init
- >> hal_pwm_module_deinit

hal_pwm_init (Thumb, 94 bytes, Stack size 24 bytes, pwm.o(i.hal_pwm_init))
[Stack]

- Max Depth = 36
- Call Chain = hal_pwm_init ⇒ hal_pwrmgr_register

[Calls]

- >> hal_pwrmgr_register (via Veneer)
- >> hal_clk_gate_enable (via Veneer)

[Called By]

- >> hal_pwm_ch_start

hal_pwm_module_deinit (Thumb, 68 bytes, Stack size 24 bytes, pwm.o(i.hal_pwm_module_deinit))
[Stack]

- Max Depth = 48
- Call Chain = hal_pwm_module_deinit ⇒ hal_pwm_stop ⇒ hal_pwrmgr_unlock

[Calls]

- >> hal_pwm_stop
- >> hal_pwm_destroy
- >> hal_pwm_close_channel

[Called By]

- >> ir_stop_learn_wavefrom_handle
- >> ir_right_sending_stop_handle

hal_pwm_module_init (Thumb, 62 bytes, Stack size 16 bytes, pwm.o(i.hal_pwm_module_init))
[Stack]

- Max Depth = 40
- Call Chain = hal_pwm_module_init ⇒ hal_pwm_stop ⇒ hal_pwrmgr_unlock

[Calls]

- >> hal_pwm_stop
- >> hal_pwm_destroy

[Called By]

- >> ir_sending_learn_wavefrom_handle
- >> ir_right_sending_handle

hal_pwm_open_channel (Thumb, 38 bytes, Stack size 16 bytes, pwm.o(i.hal_pwm_open_channel))
[Stack]

- Max Depth = 32
- Call Chain = hal_pwm_open_channel ⇒ hal_gpio_fmux_set

[Calls]

- >> hal_gpio_fmux_set (via Veneer)

[Called By]

- >> hal_pwm_ch_start

hal_pwm_set_count_val (Thumb, 52 bytes, Stack size 8 bytes, pwm.o(i.hal_pwm_set_count_val))
[Stack]

- Max Depth = 8
- Call Chain = hal_pwm_set_count_val

[Called By]

- >> hal_pwm_ch_start
- >> sending_learn_wavefrom
- >> sending_nec_38khz (via Veneer)

hal_pwm_start (Thumb, 38 bytes, Stack size 8 bytes, pwm.o(i.hal_pwm_start))
[Stack]

- Max Depth = 24
- Call Chain = hal_pwm_start ⇒ hal_pwrmgr_lock

[Calls]

- >> hal_pwrmgr_lock (via Veneer)

[Called By]

- >> hal_pwm_ch_start

hal_pwm_stop (Thumb, 46 bytes, Stack size 8 bytes, pwm.o(i.hal_pwm_stop))
[Stack]

- Max Depth = 24
- Call Chain = hal_pwm_stop ⇒ hal_pwrmgr_unlock

[Calls]

- >> hal_pwrmgr_unlock (via Veneer)
- >> hal_clk_gate_disable (via Veneer)

[Called By]

- >> hal_pwm_module_init
- >> hal_pwm_module_deinit

hal_uart_init (Thumb, 88 bytes, Stack size 40 bytes, uart.o(i.hal_uart_init))
[Stack]

- Max Depth = 120
- Call Chain = hal_uart_init ⇒ uart_hw_init ⇒ uart_hw_deinit ⇒ hal_clk_reset

[Calls]

- >> hal_pwrmgr_register (via Veneer)
- >> __aeabi_memclr4 (via Veneer)
- >> uart_hw_init

[Called By]

- >> dbg_printf_init

hal_uart_send_buff (Thumb, 26 bytes, Stack size 8 bytes, uart.o(i.hal_uart_send_buff))
[Stack]

- Max Depth = 56
- Call Chain = hal_uart_send_buff ⇒ txmit_buf_use_tx_buf ⇒ hal_pwrmgr_lock

[Calls]

- >> txmit_buf_use_tx_buf
- >> txmit_buf_polling

[Called By]

- >> _uart_putc

hidDevGapStateCB (Thumb, 164 bytes, Stack size 24 bytes, hiddev.o(i.hidDevGapStateCB))
[Stack]

- Max Depth = 320
- Call Chain = hidDevGapStateCB ⇒ hidDevInitialAdvertising ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> dbg_printf
- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> osal_get_timeoutEx (via Veneer)
- >> GAPRole_GetParameter
- >> __ARM_common_switch8 (via Veneer)
- >> hidDevInitialAdvertising
- >> hidDevDisconnected

[Address Reference Count : 1]

- hiddev.o(.data)

hidDevPasscodeCB (Thumb, 36 bytes, Stack size 16 bytes, hiddev.o(i.hidDevPasscodeCB))
[Stack]

- Max Depth = 304
- Call Chain = hidDevPasscodeCB ⇒ GAPBondMgr_PasscodeRsp ⇒ GAP_PasscodeUpdate ⇒ SM_PasskeyUpdate ⇒ sm_c1 ⇒ sm_c1new ⇒ sm_xor

[Calls]

- >> GAPBondMgr_PasscodeRsp

[Address Reference Count : 1]

- hiddev.o(.constdata)

hidVoiceDataReport (Thumb, 16 bytes, Stack size 8 bytes, hidkbd.o(i.hidVoiceDataReport))
[Stack]

- Max Depth = 360
- Call Chain = hidVoiceDataReport ⇒ HidDev_Report ⇒ hidDevSendReport ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> HidDev_Report

[Called By]

- >> voice_data_report

hidVoiceDataStartCmdReport (Thumb, 16 bytes, Stack size 8 bytes, hidkbd.o(i.hidVoiceDataStartCmdReport))
[Stack]

- Max Depth = 360
- Call Chain = hidVoiceDataStartCmdReport ⇒ HidDev_Report ⇒ hidDevSendReport ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> HidDev_Report

[Called By]

- >> voice_report_stop_cmd_handle
- >> voice_report_start_cmd_handle

ir_learn_handle (Thumb, 238 bytes, Stack size 24 bytes, ir_task.o(i.ir_learn_handle))
[Stack]

- Max Depth = 404
- Call Chain = ir_learn_handle ⇒ data_write ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> hal_gpioin_unregister (via Veneer)
- >> __aeabi_uidivmod (via Veneer)
- >> data_write
- >> close_ir_learn

[Called By]

- >> IrTask_ProcessEvent

ir_right_sending_handle (Thumb, 250 bytes, Stack size 40 bytes, ir_task.o(i.ir_right_sending_handle))
[Stack]

- Max Depth = 116
- Call Chain = ir_right_sending_handle ⇒ hal_pwm_ch_start ⇒ hal_pwm_init ⇒ hal_pwrmgr_register

[Calls]

- >> hal_gpio_write (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> hal_pwm_module_init
- >> hal_pwm_ch_start
- >> hal_timer_set (via Veneer)

[Called By]

- >> IrTask_ProcessEvent
- >> hal_bsp_btn_callback (via Veneer)

ir_right_sending_stop_handle (Thumb, 34 bytes, Stack size 8 bytes, ir_task.o(i.ir_right_sending_stop_handle))
[Stack]

- Max Depth = 56
- Call Chain = ir_right_sending_stop_handle ⇒ hal_gpio_write ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_write (via Veneer)
- >> hal_pwrmgr_unlock (via Veneer)
- >> hal_pwrmgr_lock (via Veneer)
- >> hal_pwm_module_deinit
- >> hal_timer_stop (via Veneer)

[Called By]

- >> hal_keyboard_matrix_task_ProcessEvent
- >> IrTask_ProcessEvent
- >> hal_bsp_btn_callback (via Veneer)

ir_sending_learn_wavefrom_handle (Thumb, 134 bytes, Stack size 24 bytes, ir_task.o(i.ir_sending_learn_wavefrom_handle))
[Stack]

- Max Depth = 100
- Call Chain = ir_sending_learn_wavefrom_handle ⇒ hal_pwm_ch_start ⇒ hal_pwm_init ⇒ hal_pwrmgr_register

[Calls]

- >> hal_gpio_write (via Veneer)
- >> __aeabi_memcpy (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> hal_pwm_module_init
- >> hal_pwm_ch_start
- >> hal_timer_set (via Veneer)

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

ir_stop_learn_wavefrom_handle (Thumb, 42 bytes, Stack size 8 bytes, ir_task.o(i.ir_stop_learn_wavefrom_handle))
[Stack]

- Max Depth = 56
- Call Chain = ir_stop_learn_wavefrom_handle ⇒ hal_gpio_write ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_write (via Veneer)
- >> hal_pwrmgr_unlock (via Veneer)
- >> hal_pwrmgr_lock (via Veneer)
- >> hal_pwm_module_deinit
- >> hal_timer_stop (via Veneer)

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

kscan_button_init (Thumb, 102 bytes, Stack size 48 bytes, bsp_button_task.o(i.kscan_button_init))
[Stack]

- Max Depth = 120
- Call Chain = kscan_button_init ⇒ hal_kscan_init ⇒ kscan_hw_config ⇒ hal_gpio_pull_set

[Calls]

- >> hal_kscan_init
- >> osal_memset (via Veneer)

[Called By]

- >> btp_button_init

kscan_enter_power_off_gpio_option (Thumb, 8 bytes, Stack size 8 bytes, bsp_button_task.o(i.kscan_enter_power_off_gpio_option))
[Stack]

- Max Depth = 76
- Call Chain = kscan_enter_power_off_gpio_option ⇒ kscan_sleep_handler ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> kscan_sleep_handler (via Veneer)

[Called By]

- >> enter_poweroff_mode

kscan_hw_config (Thumb, 212 bytes, Stack size 24 bytes, kscan.o(i.kscan_hw_config))
[Stack]

- Max Depth = 40
- Call Chain = kscan_hw_config ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_fmux (via Veneer)
- >> hal_clk_gate_enable (via Veneer)
- >> hal_gpio_pull_set (via Veneer)
- >> hal_kscan_clear_config

[Called By]

- >> hal_kscan_timeout_handler
- >> hal_kscan_init
- >> kscan_wakeup_handler (via Veneer)
- >> open_ir_learn

kscan_soft_polling_read (Thumb, 146 bytes, Stack size 24 bytes, hal_keyboard_matrix.o(i.kscan_soft_polling_read))
[Stack]

- Max Depth = 84
- Call Chain = kscan_soft_polling_read ⇒ kscan_soft_read_pin_init ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_write (via Veneer)
- >> hal_gpio_read (via Veneer)
- >> osal_memset (via Veneer)
- >> kscan_soft_read_pin_init

[Called By]

- >> hal_keyboard_matrix_task_ProcessEvent

kscan_soft_read_pin_init (Thumb, 126 bytes, Stack size 16 bytes, hal_keyboard_matrix.o(i.kscan_soft_read_pin_init))
[Stack]

- Max Depth = 60
- Call Chain = kscan_soft_read_pin_init ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_pin_init (via Veneer)
- >> hal_gpio_cfg_analog_io (via Veneer)
- >> hal_gpio_fmux (via Veneer)
- >> hal_gpio_pull_set (via Veneer)

[Called By]

- >> kscan_soft_polling_read

l2capAllocChannel (Thumb, 52 bytes, Stack size 8 bytes, l2cap_util.o(i.l2capAllocChannel))
[Stack]

- Max Depth = 8
- Call Chain = l2capAllocChannel

[Called By]

- >> l2capSendReq

l2capBuildParamUpdateReq (Thumb, 44 bytes, Stack size 0 bytes, l2cap_util.o(i.l2capBuildParamUpdateReq))
[Address Reference Count : 1]

- l2cap_if.o(i.L2CAP_ConnParamUpdateReq)

l2capEncapSendData (Thumb, 166 bytes, Stack size 24 bytes, l2cap_util.o(i.l2capEncapSendData))
[Stack]

- Max Depth = 104
- Call Chain = l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)
- >> osal_bm_adjust_header (via Veneer)
- >> l2capPktToSegmentBuff
- >> l2capSegmentBuffToLinkLayer (via Veneer)

[Called By]

- >> L2CAP_SendData
- >> l2capSendCmd

l2capFindLocalId (Thumb, 44 bytes, Stack size 8 bytes, l2cap_util.o(i.l2capFindLocalId))
[Stack]

- Max Depth = 8
- Call Chain = l2capFindLocalId

[Called By]

- >> l2capProcessRsp

l2capFreeChannel (Thumb, 8 bytes, Stack size 0 bytes, l2cap_util.o(i.l2capFreeChannel))
[Called By]

- >> l2capProcessRsp
- >> l2capSendReq

l2capHandleRxError (Thumb, 2 bytes, Stack size 0 bytes, l2cap_util.o(i.l2capHandleRxError))
[Called By]

- >> l2capProcessSignal

l2capNotifyData (Thumb, 70 bytes, Stack size 24 bytes, l2cap_util.o(i.l2capNotifyData))
[Stack]

- Max Depth = 24
- Call Chain = l2capNotifyData

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> l2capProcessRxData

l2capNotifySignal (Thumb, 78 bytes, Stack size 40 bytes, l2cap_util.o(i.l2capNotifySignal))
[Stack]

- Max Depth = 40
- Call Chain = l2capNotifySignal

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> l2capProcessSignal
- >> l2capProcessRsp
- >> l2capHandleTimerCB

l2capParseCmdReject (Thumb, 66 bytes, Stack size 0 bytes, l2cap_util.o(i.l2capParseCmdReject))
[Called By]

- >> l2capProcessRsp

l2capParsePacket (Thumb, 404 bytes, Stack size 24 bytes, l2cap_util.o(i.l2capParsePacket))
[Stack]

- Max Depth = 40
- Call Chain = l2capParsePacket ⇒ L2CAP_ReassemblePkt_Reset

[Calls]

- >> osal_memcpy (via Veneer)
- >> L2CAP_bm_alloc
- >> osal_bm_adjust_header (via Veneer)
- >> L2CAP_ReassemblePkt_Reset

[Called By]

- >> l2capProcessRxData

l2capParseParamUpdateRsp (Thumb, 22 bytes, Stack size 0 bytes, l2cap_util.o(i.l2capParseParamUpdateRsp))
[Called By]

- >> l2capProcessRsp

l2capParseSignalHdr (Thumb, 20 bytes, Stack size 0 bytes, l2cap_util.o(i.l2capParseSignalHdr))
[Called By]

- >> l2capProcessSignal

l2capPktToSegmentBuff (Thumb, 252 bytes, Stack size 72 bytes, l2cap_util.o(i.l2capPktToSegmentBuff))
[Stack]

- Max Depth = 80
- Call Chain = l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> osal_memcpy (via Veneer)
- >> ATT_GetCurrentMTUSize
- >> osal_bm_free (via Veneer)
- >> L2CAP_Fragment_bm_alloc
- >> L2CAP_Fragment_SendDataPkt (via Veneer)

[Called By]

- >> l2capEncapSendData

l2capSarBufReset (Thumb, 138 bytes, Stack size 24 bytes, l2cap_util.o(i.l2capSarBufReset))
[Stack]

- Max Depth = 24
- Call Chain = l2capSarBufReset

[Calls]

- >> osal_bm_free (via Veneer)

[Called By]

- >> L2CAP_Init

l2capSendCmd (Thumb, 96 bytes, Stack size 72 bytes, l2cap_util.o(i.l2capSendCmd))
[Stack]

- Max Depth = 176
- Call Chain = l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> L2CAP_bm_alloc
- >> osal_bm_free (via Veneer)
- >> l2capEncapSendData

[Called By]

- >> l2capSendReq
- >> L2CAP_CmdReject

l2capSendReq (Thumb, 112 bytes, Stack size 40 bytes, l2cap_util.o(i.l2capSendReq))
[Stack]

- Max Depth = 216
- Call Chain = l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> linkDB_State
- >> osal_CbTimerStart (via Veneer)
- >> l2capFreeChannel
- >> l2capSendCmd
- >> l2capAllocChannel

[Called By]

- >> L2CAP_ConnParamUpdateReq

l2capStopTimer (Thumb, 16 bytes, Stack size 8 bytes, l2cap_util.o(i.l2capStopTimer))
[Stack]

- Max Depth = 8
- Call Chain = l2capStopTimer

[Calls]

- >> osal_CbTimerStop (via Veneer)

[Called By]

- >> l2capProcessRsp

linkDB_Add (Thumb, 84 bytes, Stack size 40 bytes, linkdb.o(i.linkDB_Add))
[Stack]

- Max Depth = 64
- Call Chain = linkDB_Add ⇒ reportStatusChange

[Calls]

- >> osal_memcpy (via Veneer)
- >> linkDB_Find
- >> reportStatusChange

[Called By]

- >> gapProcessConnectionCompleteEvt

linkDB_Authen (Thumb, 72 bytes, Stack size 16 bytes, linkdb.o(i.linkDB_Authen))
[Stack]

- Max Depth = 28
- Call Chain = linkDB_Authen ⇒ linkDB_Find

[Calls]

- >> linkDB_Find

[Called By]

- >> GATT_VerifyReadPermissions
- >> GATT_Notification
- >> GATT_Indication
- >> GATT_VerifyWritePermissions

linkDB_Find (Thumb, 44 bytes, Stack size 12 bytes, linkdb.o(i.linkDB_Find))
[Stack]

- Max Depth = 12
- Call Chain = linkDB_Find

[Called By]

- >> GAP_TerminateLinkReq
- >> GAP_TerminateAuth
- >> GAP_Signable
- >> GAP_SendSlaveSecurityRequest
- >> GAP_PasscodeUpdate
- >> GAP_Bond
- >> GAP_Authenticate
- >> GAPBondMgr_UpdateCharCfg
- >> GAPBondMgr_ServiceChangeInd
- >> GAPBondMgr_ProcessGAPMsg
- >> linkDB_State
- >> smProcessEncryptChange
- >> sm_c1
- >> smResponderSendNextKeyInfo
- >> smResponderProcessLTKReq
- >> linkDB_Authen
- >> linkDB_Remove
- >> linkDB_Add
- >> gapSendPairingReqEvent
- >> gapSendLinkUpdateEvent
- >> gapSendBondCompleteEvent
- >> gapProcessDisconnectCompleteEvt
- >> gapPasskeyNeededCB
- >> gapPairingCompleteCB
- >> sendAuthEvent
- >> gapUpdateConnSignCounter
- >> SM_VerifyAuthenSig
- >> smpProcessIncoming

linkDB_FindFirst (Thumb, 52 bytes, Stack size 20 bytes, linkdb.o(i.linkDB_FindFirst))
[Stack]

- Max Depth = 20
- Call Chain = linkDB_FindFirst

[Called By]

- >> disconnectNext

linkDB_Init (Thumb, 66 bytes, Stack size 16 bytes, linkdb.o(i.linkDB_Init))
[Stack]

- Max Depth = 16
- Call Chain = linkDB_Init

[Called By]

- >> L2CAP_Init

linkDB_NumActive (Thumb, 40 bytes, Stack size 8 bytes, linkdb.o(i.linkDB_NumActive))
[Stack]

- Max Depth = 8
- Call Chain = linkDB_NumActive

[Called By]

- >> GAP_NumActiveConnections

linkDB_PerformFunc (Thumb, 42 bytes, Stack size 24 bytes, linkdb.o(i.linkDB_PerformFunc))
[Stack]

- Max Depth = 24
- Call Chain = linkDB_PerformFunc

[Called By]

- >> GAPBondMgr_ServiceChangeInd
- >> Batt_MeasLevel

linkDB_Register (Thumb, 40 bytes, Stack size 12 bytes, linkdb.o(i.linkDB_Register))
[Stack]

- Max Depth = 12
- Call Chain = linkDB_Register

[Called By]

- >> SM_Init
- >> GATTServApp_Init
- >> AudioProfile_AddService
- >> ppsp_serv_add_serv
- >> GATT_InitServer

linkDB_Remove (Thumb, 54 bytes, Stack size 8 bytes, linkdb.o(i.linkDB_Remove))
[Stack]

- Max Depth = 32
- Call Chain = linkDB_Remove ⇒ reportStatusChange

[Calls]

- >> osal_memset (via Veneer)
- >> linkDB_Find
- >> osal_mem_free (via Veneer)
- >> reportStatusChange

[Called By]

- >> gapProcessDisconnectCompleteEvt

linkDB_State (Thumb, 32 bytes, Stack size 8 bytes, linkdb.o(i.linkDB_State))
[Stack]

- Max Depth = 20
- Call Chain = linkDB_State ⇒ linkDB_Find

[Calls]

- >> linkDB_Find

[Called By]

- >> Batt_HandleConnStatusCB
- >> gattServApp_HandleConnStatusCB
- >> AudioProfile_HandleConnStatusCB
- >> ppsp_serv_hdlr_conn_stat
- >> L2CAP_SendData
- >> attSendMsg
- >> l2capSendReq
- >> gattServerHandleConnStatusCB

open_ir_learn (Thumb, 188 bytes, Stack size 16 bytes, ir_task.o(i.open_ir_learn))
[Stack]

- Max Depth = 120
- Call Chain = open_ir_learn ⇒ hclk_clock_switch ⇒ hal_system_clock_change_active ⇒ clk_init ⇒ _clk_apply_setting1

[Calls]

- >> hal_gpioretention_register (via Veneer)
- >> hal_gpioin_register (via Veneer)
- >> hal_gpio_write (via Veneer)
- >> hal_gpio_pin_init (via Veneer)
- >> WaitMs (via Veneer)
- >> hal_pwrmgr_lock (via Veneer)
- >> hal_gpio_pull_set (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> kscan_hw_config
- >> osal_memset (via Veneer)
- >> hclk_clock_switch (via Veneer)

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

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

- >> GAPBondMgr_SetParameter
- >> GAPBondMgr_ProcessGAPMsg

osal_snv_read (Thumb, 22 bytes, Stack size 8 bytes, osal_snv.o(i.osal_snv_read))
[Stack]

- Max Depth = 212
- Call Chain = osal_snv_read ⇒ hal_fs_item_read ⇒ hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> hal_fs_item_read

[Called By]

- >> GAPBondMgr_ResolveAddr
- >> GAPBondMgr_LinkEst
- >> gapBondMgrUpdateCharCfg
- >> gapBondMgrReadBonds
- >> gapBondMgrGetPublicAddr
- >> gapBondMgrEraseBonding
- >> gapBondMgrChangeState
- >> data_read

osal_snv_write (Thumb, 64 bytes, Stack size 24 bytes, osal_snv.o(i.osal_snv_write))
[Stack]

- Max Depth = 372
- Call Chain = osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> hal_fs_item_write
- >> hal_fs_get_garbage_size
- >> hal_fs_get_free_size
- >> hal_fs_garbage_collect
- >> rtc_get_counter (via Veneer)

[Called By]

- >> bonding_info_key_handle
- >> GAPBondMgr_ProcessGAPMsg
- >> gapBondMgrUpdateCharCfg
- >> gapBondMgrEraseBonding
- >> gapBondMgrChangeState
- >> gapBondMgrAddBond
- >> data_write

ppsp_impl_reg_serv_appl (Thumb, 48 bytes, Stack size 8 bytes, ppsp_impl.o(i.ppsp_impl_reg_serv_appl))
[Stack]

- Max Depth = 8
- Call Chain = ppsp_impl_reg_serv_appl

[Calls]

- >> ppsp_serv_reg_appl

[Called By]

- >> OTA_Init

ppsp_serv_add_serv (Thumb, 54 bytes, Stack size 16 bytes, ppsp_serv.o(i.ppsp_serv_add_serv))
[Stack]

- Max Depth = 104
- Call Chain = ppsp_serv_add_serv ⇒ GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATTServApp_RegisterService
- >> linkDB_Register
- >> GATTServApp_InitCharCfg

[Called By]

- >> OTA_Init

ppsp_serv_reg_appl (Thumb, 16 bytes, Stack size 0 bytes, ppsp_serv.o(i.ppsp_serv_reg_appl))
[Called By]

- >> ppsp_impl_reg_serv_appl

ppsp_serv_set_para (Thumb, 214 bytes, Stack size 32 bytes, ppsp_serv.o(i.ppsp_serv_set_para))
[Stack]

- Max Depth = 620
- Call Chain = ppsp_serv_set_para ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> dbg_printf
- >> osal_memcpy (via Veneer)
- >> GATTServApp_ReadCharCfg
- >> GATTServApp_ProcessCharCfg

[Address Reference Count : 1]

- ppsp_impl.o(i.ppsp_impl_reg_serv_appl)

sendEstLinkEvent (Thumb, 90 bytes, Stack size 40 bytes, gap_linkmgr.o(i.sendEstLinkEvent))
[Stack]

- Max Depth = 40
- Call Chain = sendEstLinkEvent

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> gapProcessConnectionCompleteEvt

sending_learn_wavefrom (Thumb, 112 bytes, Stack size 24 bytes, ir_task.o(i.sending_learn_wavefrom))
[Stack]

- Max Depth = 32
- Call Chain = sending_learn_wavefrom ⇒ hal_pwm_set_count_val

[Calls]

- >> hal_pwm_set_count_val
- >> hal_timer_stop_counter (via Veneer)
- >> hal_timer_set_loadtimer (via Veneer)

[Called By]

- >> timer_expired_callback (via Veneer)

single_carrier_Init (Thumb, 6 bytes, Stack size 0 bytes, single_carrier_task.o(i.single_carrier_Init))
[Called By]

- >> osalInitTasks (via Veneer)

single_carrier_ProcessEvent (Thumb, 130 bytes, Stack size 16 bytes, single_carrier_task.o(i.single_carrier_ProcessEvent))
[Stack]

- Max Depth = 416
- Call Chain = single_carrier_ProcessEvent ⇒ rf_phy_dtm_ext_tx_singleTone ⇒ rf_phy_dtm_trigged ⇒ rf_phy_dtm_ble_pkt_gen ⇒ gen_pn_prbs9

[Calls]

- >> hal_gpioretention_register (via Veneer)
- >> hal_gpio_write (via Veneer)
- >> hal_system_soft_reset (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> watchdog_config (via Veneer)
- >> rf_phy_dtm_ext_tx_singleTone (via Veneer)
- >> rf_phy_dtm_ext_acc_code_set (via Veneer)

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

smAuthReqToUint8 (Thumb, 24 bytes, Stack size 0 bytes, sm_mgr.o(i.smAuthReqToUint8))
[Called By]

- >> smpResponderProcessIncoming
- >> smpBuildSecurityReq
- >> smpBuildPairingReqRsp

smDetermineKeySize (Thumb, 40 bytes, Stack size 0 bytes, sm_pairing.o(i.smDetermineKeySize))
[Called By]

- >> smpResponderProcessEncryptionInformation
- >> smResponderSendNextKeyInfo
- >> smResponderProcessLTKReq

smEndPairing (Thumb, 50 bytes, Stack size 32 bytes, sm_pairing.o(i.smEndPairing))
[Stack]

- Max Depth = 128
- Call Chain = smEndPairing ⇒ gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> gapPairingCompleteCB
- >> smFreePairingParams

[Called By]

- >> smTimedOut
- >> smProcessEncryptChange
- >> smNextPairingState
- >> smpResponderProcessSigningInfo
- >> smpResponderProcessMasterID
- >> smpResponderProcessIncoming
- >> smpResponderProcessIdentityAddrInfo
- >> smResponderProcessLTKReq
- >> smSendFailAndEnd

smGenerateConfirm (Thumb, 40 bytes, Stack size 32 bytes, sm_pairing.o(i.smGenerateConfirm))
[Stack]

- Max Depth = 184
- Call Chain = smGenerateConfirm ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_memcpy (via Veneer)
- >> smSendSMMsg

[Called By]

- >> smpResponderProcessPairingConfirm
- >> SM_PasskeyUpdate

smGeneratePairingReqRsp (Thumb, 54 bytes, Stack size 32 bytes, sm_pairing.o(i.smGeneratePairingReqRsp))
[Stack]

- Max Depth = 184
- Call Chain = smGeneratePairingReqRsp ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> smSendSMMsg
- >> smSetPairingReqRsp

[Called By]

- >> smpResponderProcessPairingReq
- >> SM_StartPairing

smGenerateRandBuf (Thumb, 38 bytes, Stack size 16 bytes, sm_mgr.o(i.smGenerateRandBuf))
[Stack]

- Max Depth = 16
- Call Chain = smGenerateRandBuf

[Calls]

- >> osal_rand (via Veneer)

[Called By]

- >> GAP_SecParamsInit
- >> smpResponderProcessPairingReq
- >> smResponderSendNextKeyInfo
- >> SM_PasskeyUpdate
- >> SM_CalcRandomAddr

smGenerateRandMsg (Thumb, 40 bytes, Stack size 32 bytes, sm_pairing.o(i.smGenerateRandMsg))
[Stack]

- Max Depth = 184
- Call Chain = smGenerateRandMsg ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_memcpy (via Veneer)
- >> smSendSMMsg

[Called By]

- >> smpResponderProcessPairingRandom

smLinkCheck (Thumb, 30 bytes, Stack size 8 bytes, sm_pairing.o(i.smLinkCheck))
[Stack]

- Max Depth = 40
- Call Chain = smLinkCheck ⇒ smFreePairingParams ⇒ smStopRspTimer

[Calls]

- >> smFreePairingParams

[Address Reference Count : 1]

- sm_task.o(i.SM_Init)

smNextPairingState (Thumb, 62 bytes, Stack size 16 bytes, sm_pairing.o(i.smNextPairingState))
[Stack]

- Max Depth = 144
- Call Chain = smNextPairingState ⇒ smEndPairing ⇒ gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> smEndPairing

[Called By]

- >> smState_timerCB

smPairingSendEncInfo (Thumb, 14 bytes, Stack size 8 bytes, sm_pairing.o(i.smPairingSendEncInfo))
[Stack]

- Max Depth = 160
- Call Chain = smPairingSendEncInfo ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> smSendSMMsg

[Called By]

- >> smResponderSendNextKeyInfo

smPairingSendIdentityAddrInfo (Thumb, 34 bytes, Stack size 16 bytes, sm_pairing.o(i.smPairingSendIdentityAddrInfo))
[Stack]

- Max Depth = 168
- Call Chain = smPairingSendIdentityAddrInfo ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_memcpy (via Veneer)
- >> smSendSMMsg

[Called By]

- >> smResponderSendNextKeyInfo

smPairingSendIdentityInfo (Thumb, 14 bytes, Stack size 8 bytes, sm_pairing.o(i.smPairingSendIdentityInfo))
[Stack]

- Max Depth = 160
- Call Chain = smPairingSendIdentityInfo ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> smSendSMMsg

[Called By]

- >> smResponderSendNextKeyInfo

smPairingSendMasterID (Thumb, 38 bytes, Stack size 32 bytes, sm_pairing.o(i.smPairingSendMasterID))
[Stack]

- Max Depth = 184
- Call Chain = smPairingSendMasterID ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_memcpy (via Veneer)
- >> smSendSMMsg

[Called By]

- >> smResponderSendNextKeyInfo

smPairingSendSingingInfo (Thumb, 14 bytes, Stack size 8 bytes, sm_pairing.o(i.smPairingSendSingingInfo))
[Stack]

- Max Depth = 160
- Call Chain = smPairingSendSingingInfo ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> smSendSMMsg

[Called By]

- >> smResponderSendNextKeyInfo

smProcessDataMsg (Thumb, 156 bytes, Stack size 40 bytes, sm_pairing.o(i.smProcessDataMsg))
[Stack]

- Max Depth = 208
- Call Chain = smProcessDataMsg ⇒ smSendFailAndEnd ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> __ARM_common_switch8 (via Veneer)
- >> smSendFailAndEnd
- >> smpParseSigningInfo
- >> smpParseSecurityReq
- >> smpParsePairingReq
- >> smpParsePairingRandom
- >> smpParsePairingFailed
- >> smpParsePairingConfirm
- >> smpParseMasterID
- >> smpParseIdentityInfo
- >> smpParseIdentityAddrInfo
- >> smpParseEncInfo
- >> smpProcessIncoming
- >> smStartRspTimer

[Called By]

- >> smProcessOSALMsg

smProcessEncryptChange (Thumb, 178 bytes, Stack size 24 bytes, sm_pairing.o(i.smProcessEncryptChange))
[Stack]

- Max Depth = 152
- Call Chain = smProcessEncryptChange ⇒ smEndPairing ⇒ gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> linkDB_Find
- >> smEndPairing
- >> gapSendBondCompleteEvent

[Called By]

- >> smProcessOSALMsg

smProcessPairingReq (Thumb, 82 bytes, Stack size 40 bytes, sm_pairing.o(i.smProcessPairingReq))
[Stack]

- Max Depth = 208
- Call Chain = smProcessPairingReq ⇒ smSendFailAndEnd ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> smUint8ToAuthReq
- >> smSendFailAndEnd

[Called By]

- >> GAP_Authenticate

smProcessRandComplete (Thumb, 118 bytes, Stack size 16 bytes, sm_mgr.o(i.smProcessRandComplete))
[Stack]

- Max Depth = 16
- Call Chain = smProcessRandComplete

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)
- >> osal_mem_free (via Veneer)
- >> HCI_LE_RandCmd (via Veneer)

[Called By]

- >> smProcessOSALMsg

smRegisterResponder (Thumb, 6 bytes, Stack size 0 bytes, sm_pairing.o(i.smRegisterResponder))
[Called By]

- >> SM_ResponderInit

smSavePairInfo (Thumb, 366 bytes, Stack size 24 bytes, sm_pairing.o(i.smSavePairInfo))
[Stack]

- Max Depth = 24
- Call Chain = smSavePairInfo

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_mem_alloc (via Veneer)

[Called By]

- >> smpResponderProcessPairingReq

smSendFailAndEnd (Thumb, 30 bytes, Stack size 16 bytes, sm_pairing.o(i.smSendFailAndEnd))
[Stack]

- Max Depth = 168
- Call Chain = smSendFailAndEnd ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> smEndPairing
- >> smSendSMMsg

[Called By]

- >> GAP_TerminateAuth
- >> smProcessDataMsg
- >> smProcessPairingReq

smSendSMMsg (Thumb, 70 bytes, Stack size 32 bytes, smp.o(i.smSendSMMsg))
[Stack]

- Max Depth = 152
- Call Chain = smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> L2CAP_bm_alloc
- >> L2CAP_SendData
- >> osal_bm_free (via Veneer)
- >> smStartRspTimer

[Called By]

- >> GAP_SendSlaveSecurityRequest
- >> smPairingSendSingingInfo
- >> smPairingSendMasterID
- >> smPairingSendIdentityInfo
- >> smPairingSendIdentityAddrInfo
- >> smPairingSendEncInfo
- >> smGenerateRandMsg
- >> smGeneratePairingReqRsp
- >> smGenerateConfirm
- >> smSendFailAndEnd

smStartEncryption (Thumb, 28 bytes, Stack size 16 bytes, sm_pairing.o(i.smStartEncryption))
[Stack]

- Max Depth = 16
- Call Chain = smStartEncryption

[Called By]

- >> GAP_Bond

smStartRspTimer (Thumb, 66 bytes, Stack size 24 bytes, sm_mgr.o(i.smStartRspTimer))
[Stack]

- Max Depth = 24
- Call Chain = smStartRspTimer

[Calls]

- >> GAP_GetParamValue
- >> osal_CbTimerUpdate (via Veneer)
- >> osal_CbTimerStart (via Veneer)

[Called By]

- >> smProcessDataMsg
- >> smSendSMMsg

smState_timerCB (Thumb, 10 bytes, Stack size 8 bytes, sm_task.o(i.smState_timerCB))
[Stack]

- Max Depth = 152
- Call Chain = smState_timerCB ⇒ smNextPairingState ⇒ smEndPairing ⇒ gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> smNextPairingState

[Address Reference Count : 1]

- sm_rsppairing.o(i.smResponderSendNextKeyInfo)

smStopRspTimer (Thumb, 30 bytes, Stack size 16 bytes, sm_mgr.o(i.smStopRspTimer))
[Stack]

- Max Depth = 16
- Call Chain = smStopRspTimer

[Calls]

- >> osal_CbTimerStop (via Veneer)

[Called By]

- >> smFreePairingParams

smTimedOut (Thumb, 10 bytes, Stack size 8 bytes, sm_pairing.o(i.smTimedOut))
[Stack]

- Max Depth = 136
- Call Chain = smTimedOut ⇒ smEndPairing ⇒ gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> smEndPairing

[Called By]

- >> smTo_timerCB

smTo_timerCB (Thumb, 10 bytes, Stack size 8 bytes, sm_task.o(i.smTo_timerCB))
[Stack]

- Max Depth = 144
- Call Chain = smTo_timerCB ⇒ smTimedOut ⇒ smEndPairing ⇒ gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> smTimedOut

[Address Reference Count : 1]

- sm_mgr.o(i.smStartRspTimer)

smUint8ToAuthReq (Thumb, 44 bytes, Stack size 8 bytes, sm_mgr.o(i.smUint8ToAuthReq))
[Stack]

- Max Depth = 8
- Call Chain = smUint8ToAuthReq

[Called By]

- >> GAP_SendSlaveSecurityRequest
- >> smProcessPairingReq
- >> smpParseSecurityReq
- >> smpParsePairingReq
- >> smSetPairingReqRsp

sm_ah (Thumb, 68 bytes, Stack size 64 bytes, sm_mgr.o(i.sm_ah))
[Stack]

- Max Depth = 72
- Call Chain = sm_ah ⇒ smEncrypt

[Calls]

- >> osal_memset (via Veneer)
- >> osal_revmemcpy (via Veneer)
- >> smEncrypt

[Called By]

- >> SM_ResolveRandomAddrs
- >> SM_CalcRandomAddr

sm_c1 (Thumb, 152 bytes, Stack size 88 bytes, sm_pairing.o(i.sm_c1))
[Stack]

- Max Depth = 216
- Call Chain = sm_c1 ⇒ sm_c1new ⇒ sm_xor

[Calls]

- >> linkDB_Find
- >> gapGetDevAddressMode
- >> gapGetDevAddress
- >> smpBuildPairingRsp
- >> smpBuildPairingReq
- >> smSetPairingReqRsp
- >> sm_c1new

[Called By]

- >> smpResponderProcessPairingRandom
- >> smpResponderProcessPairingConfirm
- >> SM_PasskeyUpdate

sm_c1new (Thumb, 194 bytes, Stack size 120 bytes, sm_mgr.o(i.sm_c1new))
[Stack]

- Max Depth = 128
- Call Chain = sm_c1new ⇒ sm_xor

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_revmemcpy (via Veneer)
- >> sm_xor
- >> smEncrypt

[Called By]

- >> sm_c1

sm_s1 (Thumb, 64 bytes, Stack size 64 bytes, sm_mgr.o(i.sm_s1))
[Stack]

- Max Depth = 72
- Call Chain = sm_s1 ⇒ smEncrypt

[Calls]

- >> osal_revmemcpy (via Veneer)
- >> smEncrypt

[Called By]

- >> smResponderProcessLTKReq

smpBuildEncInfo (Thumb, 34 bytes, Stack size 8 bytes, smp.o(i.smpBuildEncInfo))
[Stack]

- Max Depth = 8
- Call Chain = smpBuildEncInfo

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- sm_pairing.o(i.smPairingSendEncInfo)

smpBuildIdentityAddrInfo (Thumb, 38 bytes, Stack size 8 bytes, smp.o(i.smpBuildIdentityAddrInfo))
[Stack]

- Max Depth = 8
- Call Chain = smpBuildIdentityAddrInfo

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- sm_pairing.o(i.smPairingSendIdentityAddrInfo)

smpBuildIdentityInfo (Thumb, 34 bytes, Stack size 8 bytes, smp.o(i.smpBuildIdentityInfo))
[Stack]

- Max Depth = 8
- Call Chain = smpBuildIdentityInfo

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- sm_pairing.o(i.smPairingSendIdentityInfo)

smpBuildMasterID (Thumb, 46 bytes, Stack size 8 bytes, smp.o(i.smpBuildMasterID))
[Stack]

- Max Depth = 8
- Call Chain = smpBuildMasterID

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- sm_pairing.o(i.smPairingSendMasterID)

smpBuildPairingConfirm (Thumb, 34 bytes, Stack size 8 bytes, smp.o(i.smpBuildPairingConfirm))
[Stack]

- Max Depth = 8
- Call Chain = smpBuildPairingConfirm

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- sm_pairing.o(i.smGenerateConfirm)

smpBuildPairingFailed (Thumb, 24 bytes, Stack size 0 bytes, smp.o(i.smpBuildPairingFailed))
[Address Reference Count : 1]

- sm_pairing.o(i.smSendFailAndEnd)

smpBuildPairingRandom (Thumb, 34 bytes, Stack size 8 bytes, smp.o(i.smpBuildPairingRandom))
[Stack]

- Max Depth = 8
- Call Chain = smpBuildPairingRandom

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- sm_pairing.o(i.smGenerateRandMsg)

smpBuildPairingReq (Thumb, 14 bytes, Stack size 8 bytes, smp.o(i.smpBuildPairingReq))
[Stack]

- Max Depth = 24
- Call Chain = smpBuildPairingReq ⇒ smpBuildPairingReqRsp

[Calls]

- >> smpBuildPairingReqRsp

[Called By]

- >> sm_c1

[Address Reference Count : 1]

- sm_pairing.o(i.smGeneratePairingReqRsp)

smpBuildPairingReqRsp (Thumb, 132 bytes, Stack size 16 bytes, smp.o(i.smpBuildPairingReqRsp))
[Stack]

- Max Depth = 16
- Call Chain = smpBuildPairingReqRsp

[Calls]

- >> smAuthReqToUint8

[Called By]

- >> smpBuildPairingRsp
- >> smpBuildPairingReq

smpBuildPairingRsp (Thumb, 14 bytes, Stack size 8 bytes, smp.o(i.smpBuildPairingRsp))
[Stack]

- Max Depth = 24
- Call Chain = smpBuildPairingRsp ⇒ smpBuildPairingReqRsp

[Calls]

- >> smpBuildPairingReqRsp

[Called By]

- >> sm_c1

[Address Reference Count : 1]

- sm_pairing.o(i.smGeneratePairingReqRsp)

smpBuildSecurityReq (Thumb, 30 bytes, Stack size 8 bytes, smp.o(i.smpBuildSecurityReq))
[Stack]

- Max Depth = 8
- Call Chain = smpBuildSecurityReq

[Calls]

- >> smAuthReqToUint8

[Address Reference Count : 1]

- gap_perilinkmgr.o(i.GAP_SendSlaveSecurityRequest)

smpBuildSigningInfo (Thumb, 34 bytes, Stack size 8 bytes, smp.o(i.smpBuildSigningInfo))
[Stack]

- Max Depth = 8
- Call Chain = smpBuildSigningInfo

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- sm_pairing.o(i.smPairingSendSingingInfo)

smpParseEncInfo (Thumb, 30 bytes, Stack size 8 bytes, smp.o(i.smpParseEncInfo))
[Stack]

- Max Depth = 8
- Call Chain = smpParseEncInfo

[Calls]

- >> osal_memcpy (via Veneer)

[Called By]

- >> smProcessDataMsg

smpParseIdentityAddrInfo (Thumb, 34 bytes, Stack size 8 bytes, smp.o(i.smpParseIdentityAddrInfo))
[Stack]

- Max Depth = 8
- Call Chain = smpParseIdentityAddrInfo

[Calls]

- >> osal_memcpy (via Veneer)

[Called By]

- >> smProcessDataMsg

smpParseIdentityInfo (Thumb, 30 bytes, Stack size 8 bytes, smp.o(i.smpParseIdentityInfo))
[Stack]

- Max Depth = 8
- Call Chain = smpParseIdentityInfo

[Calls]

- >> osal_memcpy (via Veneer)

[Called By]

- >> smProcessDataMsg

smpParseMasterID (Thumb, 40 bytes, Stack size 8 bytes, smp.o(i.smpParseMasterID))
[Stack]

- Max Depth = 8
- Call Chain = smpParseMasterID

[Calls]

- >> osal_memcpy (via Veneer)

[Called By]

- >> smProcessDataMsg

smpParsePairingConfirm (Thumb, 30 bytes, Stack size 8 bytes, smp.o(i.smpParsePairingConfirm))
[Stack]

- Max Depth = 8
- Call Chain = smpParsePairingConfirm

[Calls]

- >> osal_memcpy (via Veneer)

[Called By]

- >> smProcessDataMsg

smpParsePairingFailed (Thumb, 32 bytes, Stack size 0 bytes, smp.o(i.smpParsePairingFailed))
[Called By]

- >> smProcessDataMsg

smpParsePairingRandom (Thumb, 30 bytes, Stack size 8 bytes, smp.o(i.smpParsePairingRandom))
[Stack]

- Max Depth = 8
- Call Chain = smpParsePairingRandom

[Calls]

- >> osal_memcpy (via Veneer)

[Called By]

- >> smProcessDataMsg

smpParsePairingReq (Thumb, 206 bytes, Stack size 16 bytes, smp.o(i.smpParsePairingReq))
[Stack]

- Max Depth = 24
- Call Chain = smpParsePairingReq ⇒ smUint8ToAuthReq

[Calls]

- >> GAP_GetParamValue
- >> smUint8ToAuthReq

[Called By]

- >> smProcessDataMsg

smpParseSecurityReq (Thumb, 28 bytes, Stack size 8 bytes, smp.o(i.smpParseSecurityReq))
[Stack]

- Max Depth = 16
- Call Chain = smpParseSecurityReq ⇒ smUint8ToAuthReq

[Calls]

- >> smUint8ToAuthReq

[Called By]

- >> smProcessDataMsg

smpParseSigningInfo (Thumb, 30 bytes, Stack size 8 bytes, smp.o(i.smpParseSigningInfo))
[Stack]

- Max Depth = 8
- Call Chain = smpParseSigningInfo

[Calls]

- >> osal_memcpy (via Veneer)

[Called By]

- >> smProcessDataMsg

smpResponderProcessPairingReq (Thumb, 190 bytes, Stack size 24 bytes, sm_rsppairing.o(i.smpResponderProcessPairingReq))
[Stack]

- Max Depth = 208
- Call Chain = smpResponderProcessPairingReq ⇒ smGeneratePairingReqRsp ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> smSavePairInfo
- >> smGeneratePairingReqRsp
- >> gapPasskeyNeededCB
- >> smGenerateRandBuf

[Called By]

- >> smpResponderProcessIncoming

start_enable_latency_event (Thumb, 60 bytes, Stack size 8 bytes, hidkbd.o(i.start_enable_latency_event))
[Stack]

- Max Depth = 216
- Call Chain = start_enable_latency_event ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf
- >> osal_start_timerEx (via Veneer)
- >> GAPRole_GetParameter
- >> get_hidDevConnSecure_value

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

start_enter_power_off_mode (Thumb, 16 bytes, Stack size 8 bytes, sleep.o(i.start_enter_power_off_mode))
[Stack]

- Max Depth = 8
- Call Chain = start_enter_power_off_mode

[Calls]

- >> osal_start_timerEx (via Veneer)

[Called By]

- >> hal_keyboard_matrix_task_ProcessEvent
- >> SleepTask_Init
- >> hal_bsp_btn_callback (via Veneer)

start_sending_single_carrier (Thumb, 24 bytes, Stack size 8 bytes, single_carrier_task.o(i.start_sending_single_carrier))
[Stack]

- Max Depth = 8
- Call Chain = start_sending_single_carrier

[Calls]

- >> osal_set_event (via Veneer)
- >> osal_start_timerEx (via Veneer)

[Called By]

- >> hal_bsp_btn_callback (via Veneer)

start_voice_task (Thumb, 68 bytes, Stack size 8 bytes, voice_task.o(i.start_voice_task))
[Stack]

- Max Depth = 636
- Call Chain = start_voice_task ⇒ voice_report_start_cmd_handle ⇒ Google_AudioProfile_SetParameter ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> hal_gpio_write (via Veneer)
- >> osal_set_event (via Veneer)
- >> get_osal_connect_event_status
- >> get_hidDevConnSecure_value
- >> voice_report_start_cmd_handle
- >> get_voice_work_status
- >> connect_param_vaild_check

[Called By]

- >> VOICE_Start

stop_enter_power_off_mode (Thumb, 26 bytes, Stack size 8 bytes, sleep.o(i.stop_enter_power_off_mode))
[Stack]

- Max Depth = 8
- Call Chain = stop_enter_power_off_mode

[Calls]

- >> osal_stop_timerEx (via Veneer)
- >> osal_get_timeoutEx (via Veneer)

[Called By]

- >> ppsp_impl_serv_rmsg_hdlr

stop_voice_task (Thumb, 88 bytes, Stack size 8 bytes, voice_task.o(i.stop_voice_task))
[Stack]

- Max Depth = 56
- Call Chain = stop_voice_task ⇒ hal_gpio_write ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_write (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> hal_voice_stop (via Veneer)
- >> hal_voice_deinit (via Veneer)
- >> get_hidDevConnSecure_value
- >> InitCircularBuffer
- >> get_voice_work_status
- >> connect_param_vaild_check

[Called By]

- >> VOICE_Stop

update_batt_value (Thumb, 6 bytes, Stack size 0 bytes, battservice.o(i.update_batt_value))
[Called By]

- >> adc_evt (via Veneer)

update_connect_param (Thumb, 14 bytes, Stack size 8 bytes, peripheral.o(i.update_connect_param))
[Stack]

- Max Depth = 8
- Call Chain = update_connect_param

[Calls]

- >> osal_set_event (via Veneer)

[Called By]

- >> gapRolesParamUpdateCB

update_local_address (Thumb, 76 bytes, Stack size 16 bytes, hidkbd.o(i.update_local_address))
[Stack]

- Max Depth = 84
- Call Chain = update_local_address ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> hal_flash_read (via Veneer)
- >> osal_memcpy (via Veneer)
- >> HCI_ReadBDADDRCmd (via Veneer)

[Called By]

- >> bonding_info_key_handle
- >> enable_advert
- >> HidKbd_Init

voice_data_encode_inqueue (Thumb, 100 bytes, Stack size 144 bytes, voice_task.o(i.voice_data_encode_inqueue))
[Stack]

- Max Depth = 180
- Call Chain = voice_data_encode_inqueue ⇒ adpcm_coder

[Calls]

- >> __aeabi_memclr4 (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_start_reload_timer (via Veneer)
- >> InQueue
- >> adpcm_coder

[Called By]

- >> voice_task_ProcessEvent

voice_data_pushing_handle (Thumb, 104 bytes, Stack size 16 bytes, voice_task.o(i.voice_data_pushing_handle))
[Stack]

- Max Depth = 644
- Call Chain = voice_data_pushing_handle ⇒ voice_data_report ⇒ Google_AudioProfile_SetParameter ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> OutQueue
- >> voice_data_report

[Called By]

- >> voice_task_ProcessEvent

voice_data_report (Thumb, 52 bytes, Stack size 8 bytes, voice_task.o(i.voice_data_report))
[Stack]

- Max Depth = 628
- Call Chain = voice_data_report ⇒ Google_AudioProfile_SetParameter ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> hidVoiceDataReport
- >> Google_AudioProfile_SetParameter
- >> AudioProfile_SetParameter

[Called By]

- >> voice_data_pushing_handle

voice_pushing_over_handle (Thumb, 58 bytes, Stack size 8 bytes, voice_task.o(i.voice_pushing_over_handle))
[Stack]

- Max Depth = 8
- Call Chain = voice_pushing_over_handle

[Calls]

- >> osal_start_timerEx (via Veneer)
- >> InitQueue

[Called By]

- >> voice_task_ProcessEvent

voice_report_start_cmd_handle (Thumb, 76 bytes, Stack size 8 bytes, voice_task.o(i.voice_report_start_cmd_handle))
[Stack]

- Max Depth = 628
- Call Chain = voice_report_start_cmd_handle ⇒ Google_AudioProfile_SetParameter ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> hidVoiceDataStartCmdReport
- >> Google_AudioProfile_SetParameter
- >> AudioProfile_SetParameter

[Called By]

- >> start_voice_task

voice_report_stop_cmd_handle (Thumb, 76 bytes, Stack size 8 bytes, voice_task.o(i.voice_report_stop_cmd_handle))
[Stack]

- Max Depth = 628
- Call Chain = voice_report_stop_cmd_handle ⇒ Google_AudioProfile_SetParameter ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> hidVoiceDataStartCmdReport
- >> Google_AudioProfile_SetParameter
- >> AudioProfile_SetParameter

[Called By]

- >> voice_task_ProcessEvent

voice_requeset_data (Thumb, 42 bytes, Stack size 16 bytes, voice_task.o(i.voice_requeset_data))
[Stack]

- Max Depth = 40
- Call Chain = voice_requeset_data ⇒ ReadBuffer

[Calls]

- >> ReadBuffer
- >> IsBufferSizeFilled

[Called By]

- >> voice_evt_handler_adpcm (via Veneer)

voice_task_Init (Thumb, 30 bytes, Stack size 8 bytes, voice_task.o(i.voice_task_Init))
[Stack]

- Max Depth = 112
- Call Chain = voice_task_Init ⇒ AudioProfile_AddService ⇒ GATTServApp_RegisterService ⇒ GATT_RegisterService ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> osal_mem_alloc (via Veneer)
- >> AudioProfile_AddService
- >> ATT_SetMTUSizeMax

[Called By]

- >> osalInitTasks (via Veneer)

voice_task_ProcessEvent (Thumb, 134 bytes, Stack size 16 bytes, voice_task.o(i.voice_task_ProcessEvent))
[Stack]

- Max Depth = 660
- Call Chain = voice_task_ProcessEvent ⇒ voice_data_pushing_handle ⇒ voice_data_report ⇒ Google_AudioProfile_SetParameter ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> hclk_clock_switch (via Veneer)
- >> osal_get_timeoutEx (via Veneer)
- >> IsQueueEmpty
- >> voice_report_stop_cmd_handle
- >> voice_pushing_over_handle
- >> voice_data_pushing_handle
- >> voice_data_encode_inqueue
- >> voiceCaptureStart

[Address Reference Count : 1]

- osal_hidkbd.o(.constdata)

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

- startup_armcm0.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_lib_shutdown_fini (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
[Calls]

- >> __arm_fini_ (Weak Reference)

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

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

hard_fault (Thumb, 44 bytes, Stack size 0 bytes, jump_table.o(.emb_text))
[Address Reference Count : 1]

- jump_table.o(jump_table_mem_area)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

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

- startup_armcm0.o(RESET)

__aeabi_fadd (Thumb, 162 bytes, Stack size 24 bytes, fadd.o(.text))
[Stack]

- Max Depth = 36
- Call Chain = __aeabi_fadd ⇒ _float_epilogue

[Calls]

- >> _float_round
- >> _float_epilogue

[Called By]

- >> __aeabi_fsub
- >> hal_adc_value_cal
- >> __aeabi_frsub

__aeabi_fsub (Thumb, 8 bytes, Stack size 0 bytes, fadd.o(.text))
[Stack]

- Max Depth = 36
- Call Chain = __aeabi_fsub ⇒ __aeabi_fadd ⇒ _float_epilogue

[Calls]

- >> __aeabi_fadd

[Called By]

- >> hal_adc_value_cal
- >> adc_evt

__aeabi_frsub (Thumb, 8 bytes, Stack size 0 bytes, fadd.o(.text), UNUSED)
[Calls]

- >> __aeabi_fadd

__aeabi_fmul (Thumb, 122 bytes, Stack size 16 bytes, fmul.o(.text))
[Stack]

- Max Depth = 16
- Call Chain = __aeabi_fmul

[Called By]

- >> hal_adc_value_cal
- >> adc_evt

__aeabi_fdiv (Thumb, 124 bytes, Stack size 16 bytes, fdiv.o(.text))
[Stack]

- Max Depth = 16
- Call Chain = __aeabi_fdiv

[Calls]

- >> _float_round

[Called By]

- >> hal_adc_value_cal
- >> adc_evt

__ARM_scalbnf (Thumb, 24 bytes, Stack size 0 bytes, fscalb.o(.text))
[Called By]

- >> hal_adc_value_cal

scalbnf (Thumb, 0 bytes, Stack size 0 bytes, fscalb.o(.text), UNUSED)

__aeabi_dmul (Thumb, 202 bytes, Stack size 72 bytes, dmul.o(.text))
[Stack]

- Max Depth = 128
- Call Chain = __aeabi_dmul ⇒ _double_epilogue ⇒ __aeabi_llsr

[Calls]

- >> _double_epilogue

[Called By]

- >> hal_adc_value_cal

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

- Max Depth = 48
- Call Chain = __aeabi_ddiv ⇒ _double_round

[Calls]

- >> _double_round

[Called By]

- >> hal_adc_value_cal

__ARM_scalbn (Thumb, 44 bytes, Stack size 16 bytes, dscalb.o(.text))
[Stack]

- Max Depth = 16
- Call Chain = __ARM_scalbn

[Called By]

- >> hal_adc_value_cal

scalbn (Thumb, 0 bytes, Stack size 16 bytes, dscalb.o(.text), UNUSED)

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

- Max Depth = 20
- Call Chain = __aeabi_i2f ⇒ _float_epilogue

[Calls]

- >> _float_epilogue

[Called By]

- >> hal_adc_value_cal

__aeabi_ui2f (Thumb, 14 bytes, Stack size 8 bytes, ffltui.o(.text))
[Stack]

- Max Depth = 20
- Call Chain = __aeabi_ui2f ⇒ _float_epilogue

[Calls]

- >> _float_epilogue

[Called By]

- >> hal_adc_value_cal

__aeabi_i2d (Thumb, 34 bytes, Stack size 16 bytes, dflti.o(.text))
[Stack]

- Max Depth = 72
- Call Chain = __aeabi_i2d ⇒ _double_epilogue ⇒ __aeabi_llsr

[Calls]

- >> _double_epilogue

[Called By]

- >> hal_adc_value_cal

__aeabi_f2iz (Thumb, 50 bytes, Stack size 0 bytes, ffixi.o(.text))
[Called By]

- >> adc_evt

__aeabi_f2uiz (Thumb, 40 bytes, Stack size 0 bytes, ffixui.o(.text))
[Called By]

- >> adc_evt

__aeabi_f2d (Thumb, 40 bytes, Stack size 0 bytes, f2d.o(.text))
[Called By]

- >> hal_adc_value_cal

__aeabi_d2f (Thumb, 56 bytes, Stack size 8 bytes, d2f.o(.text))
[Stack]

- Max Depth = 8
- Call Chain = __aeabi_d2f

[Calls]

- >> _float_round

[Called By]

- >> hal_adc_value_cal

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

_float_round (Thumb, 16 bytes, Stack size 0 bytes, fepilogue.o(.text))
[Called By]

- >> __aeabi_fdiv
- >> __aeabi_fadd
- >> __aeabi_d2f

_float_epilogue (Thumb, 114 bytes, Stack size 12 bytes, fepilogue.o(.text))
[Stack]

- Max Depth = 12
- Call Chain = _float_epilogue

[Called By]

- >> __aeabi_ui2f
- >> __aeabi_i2f
- >> __aeabi_fadd

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

- Max Depth = 8
- Call Chain = _double_round

[Called By]

- >> __aeabi_ddiv
- >> _double_epilogue

_double_epilogue (Thumb, 164 bytes, Stack size 48 bytes, depilogue.o(.text))
[Stack]

- Max Depth = 56
- Call Chain = _double_epilogue ⇒ __aeabi_llsr

[Calls]

- >> __aeabi_llsr
- >> __aeabi_llsl
- >> __ARM_clz
- >> _double_round

[Called By]

- >> __aeabi_i2d
- >> __aeabi_dmul

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

- Max Depth = 8
- Call Chain = __aeabi_llsl

[Called By]

- >> _double_epilogue

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

- Max Depth = 8
- Call Chain = __aeabi_llsr

[Called By]

- >> _double_epilogue

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

__decompress (Thumb, 0 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)

__decompress1 (Thumb, 86 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)

hal_pwrmgr_enter_sleep_rtc_reset (Thumb, 46 bytes, Stack size 0 bytes, pwrmgr.o(_section_sram_code_))
[Calls]

- >> drv_disable_irq (via Veneer)
- >> enter_sleep_off_mode (via Veneer)
- >> config_RTC (via Veneer)
- >> hal_pwrmgr_RAM_retention_clr

[Called By]

- >> check_16MXtal_by_rcTracking

kscan_sleep_handler (Thumb, 142 bytes, Stack size 24 bytes, kscan.o(_section_sram_code_))
[Stack]

- Max Depth = 68
- Call Chain = kscan_sleep_handler ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpioin_set_flag
- >> hal_gpio_wakeup_set
- >> hal_gpio_read
- >> hal_gpio_pin_init
- >> hal_gpio_pull_set
- >> hal_kscan_clear_config (via Veneer)

[Called By]

- >> kscan_enter_power_off_gpio_option (via Veneer)

[Address Reference Count : 1]

- kscan.o(i.hal_kscan_init)

hal_watchdog_init (Thumb, 160 bytes, Stack size 16 bytes, watchdog.o(_section_sram_code_))
[Stack]

- Max Depth = 16
- Call Chain = hal_watchdog_init

[Calls]

- >> hal_clk_gate_enable

[Called By]

- >> watchdog_config

[Address Reference Count : 1]

- watchdog.o(i.watchdog_config)

hal_bsp_btn_callback (Thumb, 290 bytes, Stack size 16 bytes, hal_keyboard_matrix.o(_section_sram_code_))
[Stack]

- Max Depth = 660
- Call Chain = hal_bsp_btn_callback ⇒ VOICE_Start ⇒ start_voice_task ⇒ voice_report_start_cmd_handle ⇒ Google_AudioProfile_SetParameter ⇒ GATTServApp_ProcessCharCfg ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> hal_gpio_write
- >> hal_gpio_pin_init
- >> dbg_printf (via Veneer)
- >> bonding_info_key_handle (via Veneer)
- >> start_enable_latency_event (via Veneer)
- >> enable_advert (via Veneer)
- >> disable_slave_latency_handle (via Veneer)
- >> bonding_info_key_advertise_handle (via Veneer)
- >> start_sending_single_carrier (via Veneer)
- >> start_enter_power_off_mode (via Veneer)
- >> open_ir_learn (via Veneer)
- >> ir_stop_learn_wavefrom_handle (via Veneer)
- >> ir_sending_learn_wavefrom_handle (via Veneer)
- >> ir_right_sending_stop_handle (via Veneer)
- >> ir_right_sending_handle (via Veneer)
- >> get_ir_learn_mode (via Veneer)
- >> bt_key_code_sending_over_handle (via Veneer)
- >> bt_key_code_sending_handle (via Veneer)
- >> advance_close_ir_learn (via Veneer)
- >> VOICE_Stop (via Veneer)
- >> VOICE_Start (via Veneer)

[Address Reference Count : 1]

- hal_keyboard_matrix.o(i.hal_keyboard_matrix_task_init)

sending_nec_38khz (Thumb, 168 bytes, Stack size 24 bytes, ir_task.o(_section_sram_code_))
[Stack]

- Max Depth = 36
- Call Chain = sending_nec_38khz ⇒ WaitUs

[Calls]

- >> WaitUs
- >> hal_pwm_set_count_val (via Veneer)
- >> hal_timer_set_loadtimer
- >> read_current_fine_time (via Veneer)

[Called By]

- >> timer_expired_callback

L2CAP_Fragment_SendDataPkt (Thumb, 38 bytes, Stack size 8 bytes, l2cap_util.o(_section_sram_code_))
[Stack]

- Max Depth = 8
- Call Chain = L2CAP_Fragment_SendDataPkt

[Calls]

- >> HCI_SendDataPkt (via Veneer)

[Called By]

- >> l2capPktToSegmentBuff (via Veneer)
- >> l2capSegmentBuffToLinkLayer

l2capSegmentBuffToLinkLayer (Thumb, 90 bytes, Stack size 24 bytes, l2cap_util.o(_section_sram_code_))
[Stack]

- Max Depth = 32
- Call Chain = l2capSegmentBuffToLinkLayer ⇒ L2CAP_Fragment_SendDataPkt

[Calls]

- >> L2CAP_Fragment_SendDataPkt

[Called By]

- >> l2capEncapSendData (via Veneer)
- >> l2capPocessFragmentTxData

l2capPocessFragmentTxData (Thumb, 34 bytes, Stack size 8 bytes, l2cap_util.o(_section_sram_code_))
[Stack]

- Max Depth = 40
- Call Chain = l2capPocessFragmentTxData ⇒ l2capSegmentBuffToLinkLayer ⇒ L2CAP_Fragment_SendDataPkt

[Calls]

- >> l2capSegmentBuffToLinkLayer

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

LL_ENC_AES128_Encrypt1 (Thumb, 26 bytes, Stack size 16 bytes, patch.o(i.LL_ENC_AES128_Encrypt1))
[Stack]

- Max Depth = 16
- Call Chain = LL_ENC_AES128_Encrypt1

[Calls]

- >> LL_ENC_AES128_Encrypt0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

LL_IRQHandler1 (Thumb, 406 bytes, Stack size 24 bytes, patch.o(i.LL_IRQHandler1))
[Stack]

- Max Depth = 32
- Call Chain = LL_IRQHandler1 ⇒ ll_processBasicIRQ_secondaryScanSRX

[Calls]

- >> read_current_fine_time (via Veneer)
- >> ll_processBasicIRQ_secondaryScanSRX
- >> ll_processBasicIRQ_secondaryInitSRX
- >> ll_processBasicIRQ_secondaryAdvTRX
- >> ll_processBasicIRQ_secondaryAdvSTX
- >> ll_processBasicIRQ_secScanTRX
- >> ll_processBasicIRQ_ScanTRX
- >> ll_processBasicIRQ_SRX
- >> ll_schedule_next_event (via Veneer)
- >> ll_processPrdScanIRQ (via Veneer)
- >> ll_processPrdAdvIRQ (via Veneer)
- >> ll_processExtScanIRQ (via Veneer)
- >> ll_processExtInitIRQ (via Veneer)
- >> ll_processExtAdvIRQ (via Veneer)
- >> ll_processBasicIRQ (via Veneer)
- >> ll_hw_set_rx_timeout (via Veneer)
- >> ll_hw_get_tr_mode (via Veneer)
- >> ll_hw_get_irq_status (via Veneer)
- >> ll_hw_clr_irq (via Veneer)
- >> ll_debug_output (via Veneer)
- >> llSetupSecScan (via Veneer)
- >> llSetupSecInit (via Veneer)
- >> llSetupSecAdvEvt (via Veneer)
- >> llSecAdvAllow (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

LL_Reset1 (Thumb, 24 bytes, Stack size 8 bytes, patch.o(i.LL_Reset1))
[Stack]

- Max Depth = 28
- Call Chain = LL_Reset1 ⇒ patch_linkBuf_init

[Calls]

- >> patch_linkBuf_init
- >> LL_Reset0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

LL_set_default_conn_params1 (Thumb, 70 bytes, Stack size 8 bytes, patch.o(i.LL_set_default_conn_params1))
[Stack]

- Max Depth = 8
- Call Chain = LL_set_default_conn_params1

[Calls]

- >> LL_set_default_conn_params0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

SystemInit (Thumb, 8 bytes, Stack size 0 bytes, system_armcm0.o(i.SystemInit))
[Address Reference Count : 1]

- startup_armcm0.o(.text)

WaitMs (Thumb, 18 bytes, Stack size 8 bytes, clock.o(i.WaitMs))
[Stack]

- Max Depth = 8
- Call Chain = WaitMs

[Calls]

- >> WaitRTCCount (via Veneer)
- >> __aeabi_uidivmod (via Veneer)

[Called By]

- >> voiceCaptureStart (via Veneer)
- >> open_ir_learn (via Veneer)

WaitUs (Thumb, 36 bytes, Stack size 12 bytes, clock.o(i.WaitUs))
[Stack]

- Max Depth = 12
- Call Chain = WaitUs

[Called By]

- >> rf_phy_dtm_ext_tx_singleTone
- >> sending_nec_38khz

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

- >> _double_epilogue

__psr (Thumb, 6 bytes, Stack size 0 bytes, patch.o(i.__psr))
[Called By]

- >> fs_check_psr (via Veneer)

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

__wdt_init (Thumb, 12 bytes, Stack size 0 bytes, patch.o(i.__wdt_init))
[Called By]

- >> wakeup_init1

_efuse_chip_version_check (Thumb, 26 bytes, Stack size 16 bytes, phy_sec_ext.o(i._efuse_chip_version_check))
[Stack]

- Max Depth = 72
- Call Chain = _efuse_chip_version_check ⇒ finidv

[Calls]

- >> efuse_read (via Veneer)
- >> finidv

[Called By]

- >> _rom_sec_boot_init

_hard_fault (Thumb, 210 bytes, Stack size 8 bytes, jump_table.o(i._hard_fault))
[Stack]

- Max Depth = 8
- Call Chain = _hard_fault

[Calls]

- >> hal_system_soft_reset
- >> rtc_get_counter (via Veneer)
- >> rom_uart_init (via Veneer)
- >> log_printf (via Veneer)

[Address Reference Count : 1]

- jump_table.o(.emb_text)

_rom_efuse_version_init (Thumb, 18 bytes, Stack size 16 bytes, phy_sec_ext.o(i._rom_efuse_version_init))
[Stack]

- Max Depth = 28
- Call Chain = _rom_efuse_version_init ⇒ lib_efuse_load

[Calls]

- >> efuse_read (via Veneer)
- >> lib_efuse_load

[Called By]

- >> hal_rom_boot_init

_rom_sec_boot_init (Thumb, 22 bytes, Stack size 8 bytes, phy_sec_ext.o(i._rom_sec_boot_init))
[Stack]

- Max Depth = 80
- Call Chain = _rom_sec_boot_init ⇒ _efuse_chip_version_check ⇒ finidv

[Calls]

- >> efuse_init
- >> _efuse_chip_version_check

[Called By]

- >> hal_rom_boot_init

app_main (Thumb, 20 bytes, Stack size 8 bytes, hidkbd_main.o(i.app_main))
[Stack]

- Max Depth = 8
- Call Chain = app_main

[Calls]

- >> osal_start_system (via Veneer)
- >> osal_pwrmgr_device (via Veneer)
- >> osal_init_system (via Veneer)

[Called By]

- >> main

clear_adcc_cfg (Thumb, 20 bytes, Stack size 8 bytes, adc.o(i.clear_adcc_cfg))
[Stack]

- Max Depth = 8
- Call Chain = clear_adcc_cfg

[Calls]

- >> __aeabi_memclr4 (via Veneer)

[Called By]

- >> hal_poilling_adc_stop
- >> hal_adc_stop
- >> hal_adc_init

clk_change_mod_restore (Thumb, 36 bytes, Stack size 16 bytes, pwrmgr.o(i.clk_change_mod_restore))
[Stack]

- Max Depth = 16
- Call Chain = clk_change_mod_restore

[Address Reference Count : 1]

- pwrmgr.o(i.hclk_clock_switch)

clk_init (Thumb, 108 bytes, Stack size 32 bytes, patch.o(i.clk_init))
[Stack]

- Max Depth = 80
- Call Chain = clk_init ⇒ _clk_apply_setting1

[Calls]

- >> _clk_apply_setting1

[Called By]

- >> main
- >> hal_system_clock_change_active
- >> wakeup_init1

config_RTC1 (Thumb, 144 bytes, Stack size 24 bytes, patch.o(i.config_RTC1))
[Stack]

- Max Depth = 24
- Call Chain = config_RTC1

[Calls]

- >> WaitRTCCount (via Veneer)
- >> isTimer5Running
- >> read_TIM5_remainder_timer
- >> read_LL_remainder_time (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

efuse_init (Thumb, 14 bytes, Stack size 0 bytes, phy_sec_ext.o(i.efuse_init))
[Called By]

- >> _rom_sec_boot_init
- >> wakeup_init1

enterSleepProcess1 (Thumb, 44 bytes, Stack size 8 bytes, patch.o(i.enterSleepProcess1))
[Stack]

- Max Depth = 16
- Call Chain = enterSleepProcess1 ⇒ rc32k_cap_cal

[Calls]

- >> rc32k_cap_cal
- >> osal_search_active_task
- >> enterSleepProcess0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

finidv (Thumb, 126 bytes, Stack size 56 bytes, phy_sec_ext.o(i.finidv))
[Stack]

- Max Depth = 56
- Call Chain = finidv

[Calls]

- >> osal_memcmp (via Veneer)
- >> efuse_read (via Veneer)
- >> LL_ENC_AES128_Encrypt0 (via Veneer)

[Called By]

- >> _efuse_chip_version_check

gen_pn_prbs9 (Thumb, 116 bytes, Stack size 72 bytes, rf_phy_driver.o(i.gen_pn_prbs9))
[Stack]

- Max Depth = 72
- Call Chain = gen_pn_prbs9

[Calls]

- >> bit_to_byte (via Veneer)

[Called By]

- >> rf_phy_dtm_ble_pkt_gen

global_config_hclk_related (Thumb, 140 bytes, Stack size 8 bytes, patch.o(i.global_config_hclk_related))
[Stack]

- Max Depth = 8
- Call Chain = global_config_hclk_related

[Called By]

- >> init_config (via Veneer)
- >> hal_system_clock_change_process0

hal_ADC_IRQHandler (Thumb, 180 bytes, Stack size 160 bytes, adc.o(i.hal_ADC_IRQHandler))
[Stack]

- Max Depth = 228
- Call Chain = hal_ADC_IRQHandler ⇒ hal_poilling_adc_stop ⇒ disable_analog_pin ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_poilling_adc_stop

[Address Reference Count : 1]

- adc.o(i.hal_adc_start)

hal_ADC_VOICE_IRQHandler (Thumb, 158 bytes, Stack size 40 bytes, voice.o(i.hal_ADC_VOICE_IRQHandler))
[Stack]

- Max Depth = 40
- Call Chain = hal_ADC_VOICE_IRQHandler

[Address Reference Count : 1]

- voice.o(i.hal_voice_start)

hal_GPIO_IRQHandler (Thumb, 20 bytes, Stack size 8 bytes, gpio.o(i.hal_GPIO_IRQHandler))
[Stack]

- Max Depth = 48
- Call Chain = hal_GPIO_IRQHandler ⇒ hal_gpioin_event ⇒ hal_gpio_interrupt_enable

[Calls]

- >> hal_gpioin_event

[Address Reference Count : 1]

- gpio.o(i.hal_gpioin_register)

hal_TIMER5_IRQHandler (Thumb, 38 bytes, Stack size 8 bytes, timer.o(i.hal_TIMER5_IRQHandler))
[Stack]

- Max Depth = 8
- Call Chain = hal_TIMER5_IRQHandler

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)

[Address Reference Count : 1]

- timer.o(i.hal_timer_set)

hal_TIMER6_IRQHandler (Thumb, 38 bytes, Stack size 8 bytes, timer.o(i.hal_TIMER6_IRQHandler))
[Stack]

- Max Depth = 8
- Call Chain = hal_TIMER6_IRQHandler

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)

[Address Reference Count : 1]

- timer.o(i.hal_timer_set)

hal_adc_config_channel (Thumb, 676 bytes, Stack size 48 bytes, adc.o(i.hal_adc_config_channel))
[Stack]

- Max Depth = 76
- Call Chain = hal_adc_config_channel ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_ds_control
- >> hal_gpio_cfg_analog_io
- >> hal_clk_gate_enable
- >> hal_gpio_pull_set
- >> set_sampling_resolution
- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> adcMeasureTask (via Veneer)

hal_adc_deinit (Thumb, 16 bytes, Stack size 8 bytes, adc.o(i.hal_adc_deinit))
[Stack]

- Max Depth = 24
- Call Chain = hal_adc_deinit ⇒ hal_pwrmgr_unregister

[Calls]

- >> hal_pwrmgr_unregister

[Called By]

- >> voiceCaptureStart (via Veneer)

hal_adc_init (Thumb, 24 bytes, Stack size 8 bytes, adc.o(i.hal_adc_init))
[Stack]

- Max Depth = 20
- Call Chain = hal_adc_init ⇒ hal_pwrmgr_register

[Calls]

- >> hal_pwrmgr_register
- >> clear_adcc_cfg

[Called By]

- >> adcMeasureTask (via Veneer)

hal_adc_start (Thumb, 218 bytes, Stack size 24 bytes, adc.o(i.hal_adc_start))
[Stack]

- Max Depth = 40
- Call Chain = hal_adc_start ⇒ hal_pwrmgr_lock

[Calls]

- >> hal_pwrmgr_lock
- >> __NVIC_EnableIRQ
- >> __NVIC_DisableIRQ
- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> adcMeasureTask (via Veneer)

hal_adc_stop (Thumb, 140 bytes, Stack size 24 bytes, adc.o(i.hal_adc_stop))
[Stack]

- Max Depth = 76
- Call Chain = hal_adc_stop ⇒ disable_analog_pin ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_pwrmgr_unlock
- >> hal_clk_gate_disable
- >> disable_analog_pin
- >> __NVIC_DisableIRQ
- >> clear_adcc_cfg

[Called By]

- >> hal_ADC_compare_IRQHandler

hal_adc_value_cal (Thumb, 294 bytes, Stack size 40 bytes, adc.o(i.hal_adc_value_cal))
[Stack]

- Max Depth = 168
- Call Chain = hal_adc_value_cal ⇒ __aeabi_dmul ⇒ _double_epilogue ⇒ __aeabi_llsr

[Calls]

- >> hal_adc_load_calibration_value
- >> __aeabi_ui2f
- >> __aeabi_i2f
- >> __aeabi_i2d
- >> __aeabi_fsub
- >> __aeabi_fmul
- >> __aeabi_fdiv
- >> __aeabi_fadd
- >> __aeabi_f2d
- >> __aeabi_dmul
- >> __aeabi_ddiv
- >> __aeabi_d2f
- >> __ARM_scalbnf
- >> __ARM_scalbn

[Called By]

- >> adc_evt

hal_cache_tag_flush (Thumb, 66 bytes, Stack size 16 bytes, flash.o(i.hal_cache_tag_flush))
[Stack]

- Max Depth = 16
- Call Chain = hal_cache_tag_flush

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)

[Called By]

- >> hal_flash_erase_sector
- >> hw_spif_cache_config

hal_clk_gate_disable (Thumb, 52 bytes, Stack size 0 bytes, clock.o(i.hal_clk_gate_disable))
[Called By]

- >> uart_hw_deinit (via Veneer)
- >> hal_pwm_stop (via Veneer)
- >> hal_timer_stop
- >> hal_voice_disable
- >> hal_poilling_adc_stop
- >> hal_adc_stop

hal_clk_gate_enable (Thumb, 52 bytes, Stack size 0 bytes, clock.o(i.hal_clk_gate_enable))
[Called By]

- >> uart_hw_init (via Veneer)
- >> kscan_hw_config (via Veneer)
- >> hw_spif_cache_config
- >> hal_pwm_init (via Veneer)
- >> hal_timer_set
- >> hal_watchdog_init
- >> hal_voice_enable
- >> hal_voice_config
- >> hal_adc_config_channel

hal_clk_reset (Thumb, 122 bytes, Stack size 8 bytes, clock.o(i.hal_clk_reset))
[Stack]

- Max Depth = 8
- Call Chain = hal_clk_reset

[Called By]

- >> uart_hw_init (via Veneer)
- >> uart_hw_deinit (via Veneer)
- >> hal_poilling_adc_stop

hal_flash_erase_sector (Thumb, 172 bytes, Stack size 40 bytes, flash.o(i.hal_flash_erase_sector))
[Stack]

- Max Depth = 88
- Call Chain = hal_flash_erase_sector ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> spif_erase_sector (via Veneer)
- >> hal_cache_tag_flush
- >> _spif_wait_nobusy_x
- >> spif_unlock
- >> spif_lock

[Called By]

- >> hal_fs_garbage_collect (via Veneer)
- >> ppsp_impl_prc_serv_msgs_upda (via Veneer)

hal_flash_read (Thumb, 104 bytes, Stack size 40 bytes, flash.o(i.hal_flash_read))
[Stack]

- Max Depth = 68
- Call Chain = hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> spif_unlock
- >> spif_lock

[Called By]

- >> fs_spif_read (via Veneer)
- >> update_local_address (via Veneer)

hal_flash_write (Thumb, 160 bytes, Stack size 48 bytes, flash.o(i.hal_flash_write))
[Stack]

- Max Depth = 96
- Call Chain = hal_flash_write ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> spif_write (via Veneer)
- >> _spif_wait_nobusy_x
- >> spif_unlock
- >> spif_lock

[Called By]

- >> ppsp_impl_psh_prog_data (via Veneer)

hal_flash_write_by_dma (Thumb, 178 bytes, Stack size 48 bytes, flash.o(i.hal_flash_write_by_dma))
[Stack]

- Max Depth = 96
- Call Chain = hal_flash_write_by_dma ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> spif_write_dma (via Veneer)
- >> _spif_wait_nobusy_x
- >> spif_unlock
- >> spif_lock

[Called By]

- >> fs_spif_write (via Veneer)

hal_gpio_cfg_analog_io (Thumb, 52 bytes, Stack size 12 bytes, gpio.o(i.hal_gpio_cfg_analog_io))
[Stack]

- Max Depth = 28
- Call Chain = hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_pull_set

[Called By]

- >> hal_gpio_pin_init
- >> disable_analog_pin
- >> hal_voice_config
- >> hal_adc_config_channel
- >> kscan_soft_read_pin_init (via Veneer)
- >> adcMeasureTask (via Veneer)

hal_gpio_ds_control (Thumb, 26 bytes, Stack size 0 bytes, gpio.o(i.hal_gpio_ds_control))
[Called By]

- >> hal_adc_config_channel

hal_gpio_fmux (Thumb, 26 bytes, Stack size 0 bytes, gpio.o(i.hal_gpio_fmux))
[Called By]

- >> hal_gpio_pin_init
- >> hal_gpio_fmux_set
- >> uart_hw_deinit (via Veneer)
- >> kscan_hw_config (via Veneer)
- >> hal_pwm_close_channel (via Veneer)
- >> kscan_soft_read_pin_init (via Veneer)

hal_gpio_fmux_set (Thumb, 50 bytes, Stack size 16 bytes, gpio.o(i.hal_gpio_fmux_set))
[Stack]

- Max Depth = 16
- Call Chain = hal_gpio_fmux_set

[Calls]

- >> hal_gpio_fmux

[Called By]

- >> uart_hw_init (via Veneer)
- >> hal_pwm_open_channel (via Veneer)
- >> hal_voice_dmic_open

hal_gpio_init (Thumb, 70 bytes, Stack size 8 bytes, gpio.o(i.hal_gpio_init))
[Stack]

- Max Depth = 20
- Call Chain = hal_gpio_init ⇒ hal_pwrmgr_register

[Calls]

- >> __NVIC_SetPriority
- >> __NVIC_EnableIRQ
- >> hal_pwrmgr_register
- >> __aeabi_memclr4 (via Veneer)

[Called By]

- >> main

hal_gpio_pin2pin3_control (Thumb, 24 bytes, Stack size 0 bytes, gpio.o(i.hal_gpio_pin2pin3_control))
[Called By]

- >> hal_gpio_pin_init
- >> hal_gpio_wakeup_handler

hal_gpio_pin_init (Thumb, 102 bytes, Stack size 16 bytes, gpio.o(i.hal_gpio_pin_init))
[Stack]

- Max Depth = 44
- Call Chain = hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_pin2pin3_control
- >> hal_gpio_cfg_analog_io
- >> hal_gpio_fmux

[Called By]

- >> hal_gpioin_enable
- >> hal_gpioin_disable
- >> hal_gpio_write
- >> disable_analog_pin
- >> kscan_sleep_handler
- >> kscan_wakeup_handler
- >> hal_voice_config
- >> IrTask_Init (via Veneer)
- >> open_ir_learn (via Veneer)
- >> advance_close_ir_learn (via Veneer)
- >> kscan_soft_read_pin_init (via Veneer)
- >> hal_bsp_btn_callback
- >> close_ir_learn (via Veneer)

hal_gpio_pull_set (Thumb, 76 bytes, Stack size 16 bytes, gpio.o(i.hal_gpio_pull_set))
[Stack]

- Max Depth = 16
- Call Chain = hal_gpio_pull_set

[Called By]

- >> hal_gpio_cfg_analog_io
- >> uart_hw_init (via Veneer)
- >> hal_rtc_clock_config
- >> hal_low_power_io_init
- >> disable_analog_pin
- >> kscan_hw_config (via Veneer)
- >> kscan_sleep_handler
- >> kscan_wakeup_handler
- >> hal_voice_config
- >> hal_adc_config_channel
- >> IrTask_Init (via Veneer)
- >> open_ir_learn (via Veneer)
- >> kscan_soft_read_pin_init (via Veneer)

hal_gpio_read (Thumb, 38 bytes, Stack size 0 bytes, gpio.o(i.hal_gpio_read))
[Called By]

- >> hal_gpioin_enable
- >> hal_gpio_wakeup_handler
- >> hal_gpio_sleep_handler
- >> kscan_sleep_handler
- >> kscan_wakeup_handler
- >> kscan_soft_polling_read (via Veneer)

hal_gpio_wakeup_set (Thumb, 108 bytes, Stack size 24 bytes, gpio.o(i.hal_gpio_wakeup_set))
[Stack]

- Max Depth = 32
- Call Chain = hal_gpio_wakeup_set ⇒ hal_gpio_wakeup_control

[Calls]

- >> hal_gpio_wakeup_control

[Called By]

- >> hal_gpio_sleep_handler
- >> kscan_sleep_handler

hal_gpio_write (Thumb, 34 bytes, Stack size 4 bytes, gpio.o(i.hal_gpio_write))
[Stack]

- Max Depth = 48
- Call Chain = hal_gpio_write ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_pin_init

[Called By]

- >> hal_gpio_wakeup_handler
- >> single_carrier_ProcessEvent (via Veneer)
- >> IrTask_ProcessEvent (via Veneer)
- >> IrTask_Init (via Veneer)
- >> ble_advertiseing_status_display_handle (via Veneer)
- >> stop_voice_task (via Veneer)
- >> start_voice_task (via Veneer)
- >> open_ir_learn (via Veneer)
- >> ir_stop_learn_wavefrom_handle (via Veneer)
- >> ir_sending_learn_wavefrom_handle (via Veneer)
- >> ir_right_sending_stop_handle (via Veneer)
- >> ir_right_sending_handle (via Veneer)
- >> bt_key_code_sending_handle (via Veneer)
- >> advance_close_ir_learn (via Veneer)
- >> kscan_soft_polling_read (via Veneer)
- >> hal_bsp_btn_callback
- >> adcMeasureTask (via Veneer)
- >> close_ir_learn (via Veneer)

hal_gpioin_disable (Thumb, 62 bytes, Stack size 12 bytes, gpio.o(i.hal_gpioin_disable))
[Stack]

- Max Depth = 56
- Call Chain = hal_gpioin_disable ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_pin_init

[Called By]

- >> hal_gpioin_unregister
- >> hal_gpioin_register

hal_gpioin_enable (Thumb, 102 bytes, Stack size 16 bytes, gpio.o(i.hal_gpioin_enable))
[Stack]

- Max Depth = 60
- Call Chain = hal_gpioin_enable ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_read
- >> hal_gpio_pin_init
- >> hal_gpio_interrupt_enable

[Called By]

- >> hal_gpioin_register
- >> hal_gpio_wakeup_handler

hal_gpioin_register (Thumb, 50 bytes, Stack size 24 bytes, gpio.o(i.hal_gpioin_register))
[Stack]

- Max Depth = 84
- Call Chain = hal_gpioin_register ⇒ hal_gpioin_enable ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpioin_enable
- >> hal_gpioin_disable

[Called By]

- >> open_ir_learn (via Veneer)

hal_gpioin_set_flag (Thumb, 10 bytes, Stack size 0 bytes, gpio.o(i.hal_gpioin_set_flag))
[Called By]

- >> kscan_sleep_handler

hal_gpioin_unregister (Thumb, 32 bytes, Stack size 12 bytes, gpio.o(i.hal_gpioin_unregister))
[Stack]

- Max Depth = 68
- Call Chain = hal_gpioin_unregister ⇒ hal_gpioin_disable ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpioin_disable

[Called By]

- >> advance_close_ir_learn (via Veneer)
- >> ir_learn_handle (via Veneer)
- >> close_ir_learn (via Veneer)

hal_gpioretention_register (Thumb, 36 bytes, Stack size 0 bytes, gpio.o(i.hal_gpioretention_register))
[Called By]

- >> single_carrier_ProcessEvent (via Veneer)
- >> ble_advertiseing_status_display_handle (via Veneer)
- >> open_ir_learn (via Veneer)

hal_poilling_adc_stop (Thumb, 112 bytes, Stack size 16 bytes, adc.o(i.hal_poilling_adc_stop))
[Stack]

- Max Depth = 68
- Call Chain = hal_poilling_adc_stop ⇒ disable_analog_pin ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_pwrmgr_unlock
- >> hal_clk_reset
- >> hal_clk_gate_disable
- >> disable_analog_pin
- >> __NVIC_DisableIRQ
- >> clear_adcc_cfg

[Called By]

- >> hal_ADC_IRQHandler
- >> voiceCaptureStart (via Veneer)

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

- >> hal_low_power_io_init

hal_pwrmgr_RAM_retention (Thumb, 20 bytes, Stack size 0 bytes, pwrmgr.o(i.hal_pwrmgr_RAM_retention))
[Called By]

- >> hal_low_power_io_init

hal_pwrmgr_RAM_retention_clr (Thumb, 16 bytes, Stack size 0 bytes, pwrmgr.o(i.hal_pwrmgr_RAM_retention_clr))
[Called By]

- >> hal_pwrmgr_enter_sleep_rtc_reset

hal_pwrmgr_RAM_retention_set (Thumb, 24 bytes, Stack size 0 bytes, pwrmgr.o(i.hal_pwrmgr_RAM_retention_set))
[Called By]

- >> hal_low_power_io_init
- >> hal_pwrmgr_sleep_process

hal_pwrmgr_init (Thumb, 40 bytes, Stack size 8 bytes, pwrmgr.o(i.hal_pwrmgr_init))
[Stack]

- Max Depth = 8
- Call Chain = hal_pwrmgr_init

[Calls]

- >> __aeabi_memclr4 (via Veneer)
- >> enableSleep (via Veneer)
- >> disableSleep (via Veneer)

[Called By]

- >> main

hal_pwrmgr_lock (Thumb, 80 bytes, Stack size 16 bytes, pwrmgr.o(i.hal_pwrmgr_lock))
[Stack]

- Max Depth = 16
- Call Chain = hal_pwrmgr_lock

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> disableSleep (via Veneer)

[Called By]

- >> txmit_buf_use_tx_buf (via Veneer)
- >> kscan_wakeup_handler
- >> hal_pwm_start (via Veneer)
- >> hal_voice_start
- >> hal_adc_start
- >> open_ir_learn (via Veneer)
- >> ir_stop_learn_wavefrom_handle (via Veneer)
- >> ir_right_sending_stop_handle (via Veneer)

hal_pwrmgr_poweroff (Thumb, 84 bytes, Stack size 32 bytes, pwrmgr.o(i.hal_pwrmgr_poweroff))
[Stack]

- Max Depth = 32
- Call Chain = hal_pwrmgr_poweroff

[Calls]

- >> drv_disable_irq (via Veneer)
- >> gpio_wakeup_set (via Veneer)
- >> gpio_pull_set (via Veneer)

[Called By]

- >> enter_poweroff_mode (via Veneer)

hal_pwrmgr_register (Thumb, 56 bytes, Stack size 12 bytes, pwrmgr.o(i.hal_pwrmgr_register))
[Stack]

- Max Depth = 12
- Call Chain = hal_pwrmgr_register

[Called By]

- >> hal_uart_init (via Veneer)
- >> hal_spif_cache_init
- >> hal_gpio_init
- >> hal_kscan_init (via Veneer)
- >> hal_pwm_init (via Veneer)
- >> hal_timer_init
- >> hal_voice_init
- >> hal_adc_init
- >> IrTask_Init (via Veneer)

hal_pwrmgr_sleep_process (Thumb, 42 bytes, Stack size 16 bytes, pwrmgr.o(i.hal_pwrmgr_sleep_process))
[Stack]

- Max Depth = 16
- Call Chain = hal_pwrmgr_sleep_process

[Calls]

- >> hal_pwrmgr_RAM_retention_set

[Address Reference Count : 1]

- jump_table.o(jump_table_mem_area)

hal_pwrmgr_unlock (Thumb, 94 bytes, Stack size 16 bytes, pwrmgr.o(i.hal_pwrmgr_unlock))
[Stack]

- Max Depth = 16
- Call Chain = hal_pwrmgr_unlock

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> enableSleep (via Veneer)
- >> disableSleep (via Veneer)

[Called By]

- >> irq_tx_empty_handler
- >> hal_kscan_timeout_handler (via Veneer)
- >> hal_pwm_stop (via Veneer)
- >> hal_voice_stop
- >> hal_poilling_adc_stop
- >> hal_adc_stop
- >> ir_stop_learn_wavefrom_handle (via Veneer)
- >> ir_right_sending_stop_handle (via Veneer)
- >> advance_close_ir_learn (via Veneer)
- >> close_ir_learn (via Veneer)

hal_pwrmgr_unregister (Thumb, 66 bytes, Stack size 16 bytes, pwrmgr.o(i.hal_pwrmgr_unregister))
[Stack]

- Max Depth = 16
- Call Chain = hal_pwrmgr_unregister

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> osal_memcpy (via Veneer)

[Called By]

- >> hal_voice_deinit
- >> hal_adc_deinit

hal_pwrmgr_wakeup_process (Thumb, 110 bytes, Stack size 16 bytes, pwrmgr.o(i.hal_pwrmgr_wakeup_process))
[Stack]

- Max Depth = 16
- Call Chain = hal_pwrmgr_wakeup_process

[Calls]

- >> __NVIC_SetPriority

[Address Reference Count : 1]

- jump_table.o(jump_table_mem_area)

hal_rc32k_clk_tracking_init (Thumb, 18 bytes, Stack size 0 bytes, clock.o(i.hal_rc32k_clk_tracking_init))
[Called By]

- >> hal_rfphy_init

hal_rom_boot_init (Thumb, 12 bytes, Stack size 8 bytes, patch.o(i.hal_rom_boot_init))
[Stack]

- Max Depth = 88
- Call Chain = hal_rom_boot_init ⇒ _rom_sec_boot_init ⇒ _efuse_chip_version_check ⇒ finidv

[Calls]

- >> _rom_sec_boot_init
- >> _rom_efuse_version_init

[Called By]

- >> hal_rfphy_init

hal_rtc_clock_config (Thumb, 118 bytes, Stack size 16 bytes, clock.o(i.hal_rtc_clock_config))
[Stack]

- Max Depth = 32
- Call Chain = hal_rtc_clock_config ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_pull_set

[Called By]

- >> main

hal_spif_cache_init (Thumb, 24 bytes, Stack size 8 bytes, flash.o(i.hal_spif_cache_init))
[Stack]

- Max Depth = 48
- Call Chain = hal_spif_cache_init ⇒ hw_spif_cache_config ⇒ hal_cache_tag_flush

[Calls]

- >> hal_pwrmgr_register
- >> hw_spif_cache_config

[Called By]

- >> main

hal_system_clock_change_active (Thumb, 124 bytes, Stack size 16 bytes, patch.o(i.hal_system_clock_change_active))
[Stack]

- Max Depth = 96
- Call Chain = hal_system_clock_change_active ⇒ clk_init ⇒ _clk_apply_setting1

[Calls]

- >> WaitRTCCount (via Veneer)
- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> clk_init
- >> rf_phy_ini
- >> sysClockChangeAllow
- >> hal_system_clock_change_process
- >> ll_hw_tx2rx_timing_config (via Veneer)
- >> ll_hw_set_timing (via Veneer)
- >> ll_hw_set_loop_timeout (via Veneer)

[Called By]

- >> hclk_clock_switch

hal_system_clock_change_process (Thumb, 12 bytes, Stack size 0 bytes, patch.o(i.hal_system_clock_change_process))
[Called By]

- >> hal_system_clock_change_active
- >> wakeup_init1

hal_system_clock_change_process0 (Thumb, 102 bytes, Stack size 20 bytes, patch.o(i.hal_system_clock_change_process0))
[Stack]

- Max Depth = 28
- Call Chain = hal_system_clock_change_process0 ⇒ global_config_hclk_related

[Calls]

- >> global_config_hclk_related
- >> __ARM_common_switch8 (via Veneer)

[Address Reference Count : 1]

- patch.o(i.ll_patch_hclk_dynamic_chg)

hal_system_soft_reset (Thumb, 28 bytes, Stack size 0 bytes, clock.o(i.hal_system_soft_reset))
[Called By]

- >> single_carrier_ProcessEvent (via Veneer)
- >> OTA_task_ProcessEvent (via Veneer)
- >> _hard_fault
- >> ppsp_impl_prc_serv_msgs_comp (via Veneer)

hal_timer_init (Thumb, 30 bytes, Stack size 8 bytes, timer.o(i.hal_timer_init))
[Stack]

- Max Depth = 20
- Call Chain = hal_timer_init ⇒ hal_pwrmgr_register

[Calls]

- >> hal_pwrmgr_register
- >> hal_timer_stop

[Called By]

- >> IrTask_Init (via Veneer)

hal_timer_set (Thumb, 86 bytes, Stack size 8 bytes, timer.o(i.hal_timer_set))
[Stack]

- Max Depth = 8
- Call Chain = hal_timer_set

[Calls]

- >> __NVIC_SetPriority
- >> __NVIC_EnableIRQ
- >> hal_clk_gate_enable
- >> hal_timer_set_loadtimer

[Called By]

- >> ir_sending_learn_wavefrom_handle (via Veneer)
- >> ir_right_sending_handle (via Veneer)

hal_timer_set_loadtimer (Thumb, 22 bytes, Stack size 0 bytes, timer.o(i.hal_timer_set_loadtimer))
[Called By]

- >> hal_timer_set
- >> sending_learn_wavefrom (via Veneer)
- >> sending_nec_38khz

hal_timer_sleep_handler (Thumb, 14 bytes, Stack size 0 bytes, timer.o(i.hal_timer_sleep_handler))
[Address Reference Count : 1]

- timer.o(i.hal_timer_init)

hal_timer_stop (Thumb, 62 bytes, Stack size 8 bytes, timer.o(i.hal_timer_stop))
[Stack]

- Max Depth = 8
- Call Chain = hal_timer_stop

[Calls]

- >> __NVIC_DisableIRQ
- >> hal_clk_gate_disable
- >> hal_timer_stop_counter

[Called By]

- >> hal_timer_init
- >> ir_stop_learn_wavefrom_handle (via Veneer)
- >> ir_right_sending_stop_handle (via Veneer)

hal_timer_stop_counter (Thumb, 10 bytes, Stack size 0 bytes, timer.o(i.hal_timer_stop_counter))
[Called By]

- >> hal_timer_stop
- >> sending_learn_wavefrom (via Veneer)

hal_voice_amic_gain (Thumb, 30 bytes, Stack size 0 bytes, voice.o(i.hal_voice_amic_gain))
[Called By]

- >> hal_voice_config

hal_voice_amic_mode (Thumb, 48 bytes, Stack size 0 bytes, voice.o(i.hal_voice_amic_mode))
[Called By]

- >> hal_voice_config

hal_voice_amute_off (Thumb, 12 bytes, Stack size 0 bytes, voice.o(i.hal_voice_amute_off))
[Called By]

- >> hal_voice_config

hal_voice_amute_on (Thumb, 12 bytes, Stack size 0 bytes, voice.o(i.hal_voice_amute_on))
[Called By]

- >> hal_voice_config

hal_voice_config (Thumb, 364 bytes, Stack size 56 bytes, voice.o(i.hal_voice_config))
[Stack]

- Max Depth = 100
- Call Chain = hal_voice_config ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_pin_init
- >> hal_gpio_cfg_analog_io
- >> hal_clk_gate_enable
- >> __aeabi_memcpy (via Veneer)
- >> hal_gpio_pull_set
- >> hal_voice_rate
- >> hal_voice_gain
- >> hal_voice_flt_bw
- >> hal_voice_encode
- >> hal_voice_dmic_open
- >> hal_voice_dmic_mode
- >> hal_voice_amute_on
- >> hal_voice_amute_off
- >> hal_voice_amic_mode
- >> hal_voice_amic_gain
- >> set_voice_amute_cfg

[Called By]

- >> voiceCaptureStart (via Veneer)

hal_voice_deinit (Thumb, 18 bytes, Stack size 8 bytes, voice.o(i.hal_voice_deinit))
[Stack]

- Max Depth = 24
- Call Chain = hal_voice_deinit ⇒ hal_pwrmgr_unregister

[Calls]

- >> hal_pwrmgr_unregister

[Called By]

- >> stop_voice_task (via Veneer)

hal_voice_disable (Thumb, 20 bytes, Stack size 8 bytes, voice.o(i.hal_voice_disable))
[Stack]

- Max Depth = 8
- Call Chain = hal_voice_disable

[Calls]

- >> hal_clk_gate_disable

[Called By]

- >> hal_voice_stop

hal_voice_dmic_mode (Thumb, 12 bytes, Stack size 0 bytes, voice.o(i.hal_voice_dmic_mode))
[Called By]

- >> hal_voice_config

hal_voice_dmic_open (Thumb, 20 bytes, Stack size 8 bytes, voice.o(i.hal_voice_dmic_open))
[Stack]

- Max Depth = 24
- Call Chain = hal_voice_dmic_open ⇒ hal_gpio_fmux_set

[Calls]

- >> hal_gpio_fmux_set

[Called By]

- >> hal_voice_config

hal_voice_enable (Thumb, 20 bytes, Stack size 8 bytes, voice.o(i.hal_voice_enable))
[Stack]

- Max Depth = 8
- Call Chain = hal_voice_enable

[Calls]

- >> hal_clk_gate_enable

[Called By]

- >> hal_voice_start

hal_voice_encode (Thumb, 18 bytes, Stack size 0 bytes, voice.o(i.hal_voice_encode))
[Called By]

- >> hal_voice_config

hal_voice_flt_bw (Thumb, 16 bytes, Stack size 0 bytes, voice.o(i.hal_voice_flt_bw))
[Called By]

- >> hal_voice_config

hal_voice_gain (Thumb, 18 bytes, Stack size 0 bytes, voice.o(i.hal_voice_gain))
[Called By]

- >> hal_voice_config

hal_voice_init (Thumb, 34 bytes, Stack size 8 bytes, voice.o(i.hal_voice_init))
[Stack]

- Max Depth = 20
- Call Chain = hal_voice_init ⇒ hal_pwrmgr_register

[Calls]

- >> hal_pwrmgr_register
- >> osal_memset (via Veneer)

[Called By]

- >> voiceCaptureStart (via Veneer)

hal_voice_rate (Thumb, 18 bytes, Stack size 0 bytes, voice.o(i.hal_voice_rate))
[Called By]

- >> hal_voice_config

hal_voice_start (Thumb, 108 bytes, Stack size 16 bytes, voice.o(i.hal_voice_start))
[Stack]

- Max Depth = 32
- Call Chain = hal_voice_start ⇒ hal_pwrmgr_lock

[Calls]

- >> hal_pwrmgr_lock
- >> hal_voice_enable

[Called By]

- >> voiceCaptureStart (via Veneer)

hal_voice_stop (Thumb, 60 bytes, Stack size 8 bytes, voice.o(i.hal_voice_stop))
[Stack]

- Max Depth = 24
- Call Chain = hal_voice_stop ⇒ hal_pwrmgr_unlock

[Calls]

- >> hal_pwrmgr_unlock
- >> hal_voice_disable

[Called By]

- >> stop_voice_task (via Veneer)

hclk_clock_switch (Thumb, 44 bytes, Stack size 8 bytes, pwrmgr.o(i.hclk_clock_switch))
[Stack]

- Max Depth = 104
- Call Chain = hclk_clock_switch ⇒ hal_system_clock_change_active ⇒ clk_init ⇒ _clk_apply_setting1

[Calls]

- >> hal_system_clock_change_active

[Called By]

- >> voiceCaptureStart (via Veneer)
- >> open_ir_learn (via Veneer)
- >> advance_close_ir_learn (via Veneer)
- >> voice_task_ProcessEvent (via Veneer)
- >> close_ir_learn (via Veneer)

isTimer5Running (Thumb, 12 bytes, Stack size 0 bytes, patch.o(i.isTimer5Running))
[Called By]

- >> config_RTC1

lib_efuse_load (Thumb, 168 bytes, Stack size 12 bytes, lib_efuse3.o(i.lib_efuse_load))
[Stack]

- Max Depth = 12
- Call Chain = lib_efuse_load

[Called By]

- >> _rom_efuse_version_init

llProcessSlaveControlPacket1 (Thumb, 48 bytes, Stack size 8 bytes, patch.o(i.llProcessSlaveControlPacket1))
[Stack]

- Max Depth = 8
- Call Chain = llProcessSlaveControlPacket1

[Calls]

- >> llProcessSlaveControlPacket0 (via Veneer)
- >> llEnqueueCtrlPkt (via Veneer)

[Address Reference Count : 1]

- patch.o(_func_xip_code_.ll_patch_slave)

llProcessTxData1 (Thumb, 16 bytes, Stack size 8 bytes, patch.o(i.llProcessTxData1))
[Stack]

- Max Depth = 8
- Call Chain = llProcessTxData1

[Calls]

- >> llProcessTxData0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

llReleaseConnId1 (Thumb, 178 bytes, Stack size 24 bytes, patch.o(i.llReleaseConnId1))
[Stack]

- Max Depth = 24
- Call Chain = llReleaseConnId1

[Calls]

- >> osal_mem_free (via Veneer)
- >> llReleaseConnId0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

llSetupNextSlaveEvent1 (Thumb, 42 bytes, Stack size 8 bytes, patch.o(i.llSetupNextSlaveEvent1))
[Stack]

- Max Depth = 8
- Call Chain = llSetupNextSlaveEvent1

[Calls]

- >> llSetupNextSlaveEvent0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_func_xip_code_.ll_patch_slave)

llSetupStartEncRsp (Thumb, 60 bytes, Stack size 8 bytes, patch.o(i.llSetupStartEncRsp))
[Stack]

- Max Depth = 8
- Call Chain = llSetupStartEncRsp

[Calls]

- >> LL_ENC_Encrypt (via Veneer)

[Called By]

- >> llProcessSlaveControlProcedures1 (via Veneer)

llSlaveEvt_TaskEndOk1 (Thumb, 78 bytes, Stack size 16 bytes, patch.o(i.llSlaveEvt_TaskEndOk1))
[Stack]

- Max Depth = 16
- Call Chain = llSlaveEvt_TaskEndOk1

[Calls]

- >> osal_mem_free (via Veneer)
- >> llSlaveEvt_TaskEndOk0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

llWriteTxData1 (Thumb, 152 bytes, Stack size 40 bytes, patch.o(i.llWriteTxData1))
[Stack]

- Max Depth = 40
- Call Chain = llWriteTxData1

[Calls]

- >> __aeabi_memcpy (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> update_tx_write_ptr (via Veneer)
- >> get_tx_write_ptr (via Veneer)
- >> getTxBufferFree (via Veneer)
- >> LL_ENC_Encrypt (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

ll_adptive_adj_next_time1 (Thumb, 186 bytes, Stack size 24 bytes, patch.o(i.ll_adptive_adj_next_time1))
[Stack]

- Max Depth = 24
- Call Chain = ll_adptive_adj_next_time1

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> ll_hw_get_anchor (via Veneer)

[Address Reference Count : 1]

- patch.o(_func_xip_code_.ll_patch_slave)

ll_generateTxBuffer1 (Thumb, 552 bytes, Stack size 72 bytes, patch.o(i.ll_generateTxBuffer1))
[Stack]

- Max Depth = 72
- Call Chain = ll_generateTxBuffer1

[Calls]

- >> osal_mem_free (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> update_tx_read_ptr (via Veneer)
- >> ll_hw_write_tfifo (via Veneer)
- >> ll_hw_get_tfifo_wrptr (via Veneer)
- >> llEnqueueCtrlPkt (via Veneer)
- >> get_tx_read_ptr (via Veneer)
- >> getTxBufferSize (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

ll_hw_go1 (Thumb, 490 bytes, Stack size 32 bytes, patch.o(i.ll_hw_go1))
[Stack]

- Max Depth = 40
- Call Chain = ll_hw_go1 ⇒ llbuf_alloc_time_statics

[Calls]

- >> osal_mem_alloc (via Veneer)
- >> read_current_fine_time (via Veneer)
- >> llbuf_alloc_time_statics
- >> set_max_length (via Veneer)
- >> ll_hw_set_rx_timeout (via Veneer)
- >> ll_hw_get_tr_mode (via Veneer)
- >> get_rx_write_ptr (via Veneer)
- >> getRxBufferFree (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

ll_hw_read_tfifo_rtlp1 (Thumb, 194 bytes, Stack size 24 bytes, patch.o(i.ll_hw_read_tfifo_rtlp1))
[Stack]

- Max Depth = 24
- Call Chain = ll_hw_read_tfifo_rtlp1

[Calls]

- >> osal_mem_free (via Veneer)
- >> ll_hw_read_tfifo_packet (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

ll_patch_hclk_dynamic_chg (Thumb, 8 bytes, Stack size 0 bytes, patch.o(i.ll_patch_hclk_dynamic_chg))
[Called By]

- >> main

ll_patch_restore (Thumb, 88 bytes, Stack size 20 bytes, patch.o(i.ll_patch_restore))
[Stack]

- Max Depth = 20
- Call Chain = ll_patch_restore

[Called By]

- >> spif_unlock
- >> spif_lock

ll_processBasicIRQ_SRX (Thumb, 20 bytes, Stack size 8 bytes, patch.o(i.ll_processBasicIRQ_SRX))
[Stack]

- Max Depth = 8
- Call Chain = ll_processBasicIRQ_SRX

[Calls]

- >> ll_processBasicIRQ (via Veneer)

[Called By]

- >> LL_IRQHandler1

ll_processBasicIRQ_ScanTRX (Thumb, 20 bytes, Stack size 8 bytes, patch.o(i.ll_processBasicIRQ_ScanTRX))
[Stack]

- Max Depth = 8
- Call Chain = ll_processBasicIRQ_ScanTRX

[Calls]

- >> ll_processBasicIRQ (via Veneer)

[Called By]

- >> LL_IRQHandler1

ll_processBasicIRQ_secScanTRX (Thumb, 20 bytes, Stack size 8 bytes, patch.o(i.ll_processBasicIRQ_secScanTRX))
[Stack]

- Max Depth = 8
- Call Chain = ll_processBasicIRQ_secScanTRX

[Calls]

- >> ll_processBasicIRQ (via Veneer)

[Called By]

- >> LL_IRQHandler1

ll_processBasicIRQ_secondaryAdvSTX (Thumb, 20 bytes, Stack size 8 bytes, patch.o(i.ll_processBasicIRQ_secondaryAdvSTX))
[Stack]

- Max Depth = 8
- Call Chain = ll_processBasicIRQ_secondaryAdvSTX

[Calls]

- >> ll_processBasicIRQ (via Veneer)

[Called By]

- >> LL_IRQHandler1

ll_processBasicIRQ_secondaryAdvTRX (Thumb, 20 bytes, Stack size 8 bytes, patch.o(i.ll_processBasicIRQ_secondaryAdvTRX))
[Stack]

- Max Depth = 8
- Call Chain = ll_processBasicIRQ_secondaryAdvTRX

[Calls]

- >> ll_processBasicIRQ (via Veneer)

[Called By]

- >> LL_IRQHandler1

ll_processBasicIRQ_secondaryInitSRX (Thumb, 20 bytes, Stack size 8 bytes, patch.o(i.ll_processBasicIRQ_secondaryInitSRX))
[Stack]

- Max Depth = 8
- Call Chain = ll_processBasicIRQ_secondaryInitSRX

[Calls]

- >> ll_processBasicIRQ (via Veneer)

[Called By]

- >> LL_IRQHandler1

ll_processBasicIRQ_secondaryScanSRX (Thumb, 20 bytes, Stack size 8 bytes, patch.o(i.ll_processBasicIRQ_secondaryScanSRX))
[Stack]

- Max Depth = 8
- Call Chain = ll_processBasicIRQ_secondaryScanSRX

[Calls]

- >> ll_processBasicIRQ (via Veneer)

[Called By]

- >> LL_IRQHandler1

ll_scheduler_singleconn (Thumb, 76 bytes, Stack size 8 bytes, patch.o(i.ll_scheduler_singleconn))
[Stack]

- Max Depth = 8
- Call Chain = ll_scheduler_singleconn

[Calls]

- >> set_timer (via Veneer)
- >> ll_scheduler0 (via Veneer)
- >> isTimer1Running (via Veneer)

[Address Reference Count : 1]

- patch.o(_func_xip_code_.ll_patch_slave)

llbuf_alloc_time_statics (Thumb, 62 bytes, Stack size 8 bytes, patch.o(i.llbuf_alloc_time_statics))
[Stack]

- Max Depth = 8
- Call Chain = llbuf_alloc_time_statics

[Calls]

- >> read_current_fine_time (via Veneer)

[Called By]

- >> ll_hw_go1

main (Thumb, 112 bytes, Stack size 16 bytes, main.o(i.main))
[Stack]

- Max Depth = 308
- Call Chain = main ⇒ data_save_init ⇒ hal_fs_init ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> ll_patch_slave (via Veneer)
- >> ll_patch_hclk_dynamic_chg
- >> init_config (via Veneer)
- >> hal_spif_cache_init
- >> hal_rtc_clock_config
- >> hal_pwrmgr_init
- >> hal_gpio_init
- >> drv_irq_init (via Veneer)
- >> dbg_printf_init (via Veneer)
- >> dbg_printf (via Veneer)
- >> data_save_init (via Veneer)
- >> clk_init
- >> app_main
- >> Key_Short_Press_Ir_Sending_Handle_From_Poweroff (via Veneer)
- >> hal_rfphy_init
- >> hal_low_power_io_init

[Address Reference Count : 1]

- entry9a.o(.ARM.Collect$$$$0000000B)

move_to_slave_function1 (Thumb, 78 bytes, Stack size 8 bytes, patch.o(i.move_to_slave_function1))
[Stack]

- Max Depth = 8
- Call Chain = move_to_slave_function1

[Calls]

- >> move_to_slave_function0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_func_xip_code_.ll_patch_slave)

osalInitTasks (Thumb, 176 bytes, Stack size 16 bytes, osal_hidkbd.o(i.osalInitTasks))
[Stack]

- Max Depth = 564
- Call Chain = osalInitTasks ⇒ HidKbd_Init ⇒ GAPBondMgr_SetParameter ⇒ gapBondMgrEraseAllBondings ⇒ gapBondMgrEraseBonding ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_memset (via Veneer)
- >> GAPRole_Init (via Veneer)
- >> GAPBondMgr_Init (via Veneer)
- >> voice_task_Init (via Veneer)
- >> single_carrier_Init (via Veneer)
- >> osal_CbTimerInit (via Veneer)
- >> hal_keyboard_matrix_task_init (via Veneer)
- >> SleepTask_Init (via Veneer)
- >> SM_Init (via Veneer)
- >> OTA_Init (via Veneer)
- >> LL_Init (via Veneer)
- >> L2CAP_Init (via Veneer)
- >> IrTask_Init (via Veneer)
- >> HidDev_Init (via Veneer)
- >> HCI_Init (via Veneer)
- >> GATT_Init (via Veneer)
- >> GAP_Init (via Veneer)
- >> Bsp_Btn_Init (via Veneer)
- >> Batt_Init (via Veneer)
- >> HidKbd_Init (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> GATTServApp_Init (via Veneer)

[Address Reference Count : 1]

- jump_table.o(jump_table_mem_area)

osal_idle_task0 (Thumb, 20 bytes, Stack size 8 bytes, patch.o(i.osal_idle_task0))
[Stack]

- Max Depth = 8
- Call Chain = osal_idle_task0

[Calls]

- >> osal_pwrmgr_powerconserve0 (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

osal_search_active_task (Thumb, 52 bytes, Stack size 8 bytes, patch.o(i.osal_search_active_task))
[Stack]

- Max Depth = 8
- Call Chain = osal_search_active_task

[Called By]

- >> enterSleepProcess1

patch_linkBuf_init (Thumb, 142 bytes, Stack size 20 bytes, patch.o(i.patch_linkBuf_init))
[Stack]

- Max Depth = 20
- Call Chain = patch_linkBuf_init

[Called By]

- >> LL_Reset1

rc32k_calibration (Thumb, 122 bytes, Stack size 24 bytes, rf_phy_driver.o(i.rc32k_calibration))
[Stack]

- Max Depth = 24
- Call Chain = rc32k_calibration

[Calls]

- >> WaitRTCCount (via Veneer)

[Called By]

- >> rf_calibrate1

rc32k_cap_cal (Thumb, 74 bytes, Stack size 8 bytes, patch.o(i.rc32k_cap_cal))
[Stack]

- Max Depth = 8
- Call Chain = rc32k_cap_cal

[Calls]

- >> WaitRTCCount (via Veneer)

[Called By]

- >> enterSleepProcess1

rf_calibrate1 (Thumb, 12 bytes, Stack size 8 bytes, rf_phy_driver.o(i.rf_calibrate1))
[Stack]

- Max Depth = 36
- Call Chain = rf_calibrate1 ⇒ rf_tpCal_gen_cap_arrary ⇒ rf_tp_cal

[Calls]

- >> rf_tpCal_gen_cap_arrary
- >> rc32k_calibration

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

rf_phy_ana_cfg (Thumb, 232 bytes, Stack size 12 bytes, rf_phy_driver.o(i.rf_phy_ana_cfg))
[Stack]

- Max Depth = 12
- Call Chain = rf_phy_ana_cfg

[Called By]

- >> rf_phy_ini
- >> rf_phy_dtm_trigged

rf_phy_bb_cfg (Thumb, 310 bytes, Stack size 24 bytes, rf_phy_driver.o(i.rf_phy_bb_cfg))
[Stack]

- Max Depth = 24
- Call Chain = rf_phy_bb_cfg

[Calls]

- >> ll_hw_set_crc_fmt (via Veneer)

[Called By]

- >> rf_phy_ini

rf_phy_change_cfg0 (Thumb, 138 bytes, Stack size 20 bytes, rf_phy_driver.o(i.rf_phy_change_cfg0))
[Stack]

- Max Depth = 20
- Call Chain = rf_phy_change_cfg0

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

rf_phy_dtm_ble_pkt_gen (Thumb, 116 bytes, Stack size 264 bytes, rf_phy_driver.o(i.rf_phy_dtm_ble_pkt_gen))
[Stack]

- Max Depth = 336
- Call Chain = rf_phy_dtm_ble_pkt_gen ⇒ gen_pn_prbs9

[Calls]

- >> gen_pn_prbs9
- >> ll_hw_write_tfifo (via Veneer)

[Called By]

- >> rf_phy_dtm_trigged

rf_phy_dtm_ext_acc_code_set (Thumb, 6 bytes, Stack size 0 bytes, rf_phy_driver.o(i.rf_phy_dtm_ext_acc_code_set))
[Called By]

- >> single_carrier_ProcessEvent (via Veneer)

rf_phy_dtm_ext_tx_singleTone (Thumb, 76 bytes, Stack size 40 bytes, rf_phy_driver.o(i.rf_phy_dtm_ext_tx_singleTone))
[Stack]

- Max Depth = 400
- Call Chain = rf_phy_dtm_ext_tx_singleTone ⇒ rf_phy_dtm_trigged ⇒ rf_phy_dtm_ble_pkt_gen ⇒ gen_pn_prbs9

[Calls]

- >> WaitUs
- >> rf_phy_dtm_trigged
- >> rf_phy_dtm_stop
- >> rf_phy_dtm_init

[Called By]

- >> single_carrier_ProcessEvent (via Veneer)

rf_phy_dtm_trigged (Thumb, 678 bytes, Stack size 24 bytes, rf_phy_driver.o(i.rf_phy_dtm_trigged))
[Stack]

- Max Depth = 360
- Call Chain = rf_phy_dtm_trigged ⇒ rf_phy_dtm_ble_pkt_gen ⇒ gen_pn_prbs9

[Calls]

- >> __aeabi_idivmod (via Veneer)
- >> rf_phy_ini
- >> read_current_fine_time (via Veneer)
- >> rf_tpCal_cfg_avg
- >> rf_phy_set_txPower
- >> rf_phy_dtm_zigbee_pkt_gen
- >> rf_phy_dtm_ble_pkt_gen
- >> rf_phy_ana_cfg
- >> ll_hw_trigger (via Veneer)
- >> ll_hw_set_timing (via Veneer)
- >> ll_hw_set_stx (via Veneer)
- >> ll_hw_set_srx (via Veneer)
- >> ll_hw_set_irq (via Veneer)
- >> ll_hw_rst_tfifo (via Veneer)
- >> ll_hw_clr_irq (via Veneer)

[Called By]

- >> rf_phy_dtm_ext_tx_singleTone

rf_phy_dtm_zigbee_pkt_gen (Thumb, 110 bytes, Stack size 160 bytes, rf_phy_driver.o(i.rf_phy_dtm_zigbee_pkt_gen))
[Stack]

- Max Depth = 160
- Call Chain = rf_phy_dtm_zigbee_pkt_gen

[Calls]

- >> zigbee_crc16_gen (via Veneer)
- >> ll_hw_write_tfifo (via Veneer)

[Called By]

- >> rf_phy_dtm_trigged

rf_phy_ini (Thumb, 42 bytes, Stack size 8 bytes, rf_phy_driver.o(i.rf_phy_ini))
[Stack]

- Max Depth = 32
- Call Chain = rf_phy_ini ⇒ rf_phy_bb_cfg

[Calls]

- >> rf_phy_set_txPower
- >> rf_phy_bb_cfg
- >> rf_phy_ana_cfg
- >> ll_hw_tx2rx_timing_config (via Veneer)

[Called By]

- >> hal_system_clock_change_active
- >> rf_phy_dtm_trigged
- >> wakeupProcess1

[Address Reference Count : 1]

- jump_table.o(jump_table_mem_area)

rf_phy_set_txPower (Thumb, 108 bytes, Stack size 20 bytes, rf_phy_driver.o(i.rf_phy_set_txPower))
[Stack]

- Max Depth = 20
- Call Chain = rf_phy_set_txPower

[Called By]

- >> rf_phy_ini
- >> rf_phy_dtm_trigged

rf_tpCal_cfg_avg (Thumb, 182 bytes, Stack size 28 bytes, rf_phy_driver.o(i.rf_tpCal_cfg_avg))
[Stack]

- Max Depth = 52
- Call Chain = rf_tpCal_cfg_avg ⇒ rf_tp_cal

[Calls]

- >> rf_tp_cal

[Called By]

- >> rf_phy_dtm_trigged

rf_tpCal_gen_cap_arrary (Thumb, 60 bytes, Stack size 4 bytes, rf_phy_driver.o(i.rf_tpCal_gen_cap_arrary))
[Stack]

- Max Depth = 28
- Call Chain = rf_tpCal_gen_cap_arrary ⇒ rf_tp_cal

[Calls]

- >> rf_tp_cal

[Called By]

- >> rf_calibrate1

rf_tp_cal (Thumb, 236 bytes, Stack size 24 bytes, rf_phy_driver.o(i.rf_tp_cal))
[Stack]

- Max Depth = 24
- Call Chain = rf_tp_cal

[Calls]

- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> rf_tpCal_gen_cap_arrary
- >> rf_tpCal_cfg_avg

sysClockChangeAllow (Thumb, 46 bytes, Stack size 8 bytes, patch.o(i.sysClockChangeAllow))
[Stack]

- Max Depth = 16
- Call Chain = sysClockChangeAllow ⇒ read_LL_remainder_time1

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> read_LL_remainder_time1

[Called By]

- >> hal_system_clock_change_active

wakeupProcess1 (Thumb, 434 bytes, Stack size 24 bytes, patch.o(i.wakeupProcess1))
[Stack]

- Max Depth = 128
- Call Chain = wakeupProcess1 ⇒ wakeup_init1 ⇒ clk_init ⇒ _clk_apply_setting1

[Calls]

- >> WaitRTCCount (via Veneer)
- >> __aeabi_uidivmod (via Veneer)
- >> drv_irq_init (via Veneer)
- >> set_sleep_flag (via Veneer)
- >> osal_start_system (via Veneer)
- >> rtc_get_counter (via Veneer)
- >> rf_phy_ini
- >> read_current_fine_time (via Veneer)
- >> wakeup_init1
- >> set_timer (via Veneer)
- >> osalTimeUpdate (via Veneer)
- >> ll_hw_tx2rx_timing_config (via Veneer)
- >> ll_debug_output (via Veneer)
- >> app_wakeup_process (via Veneer)

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

wakeup_init1 (Thumb, 288 bytes, Stack size 24 bytes, patch.o(i.wakeup_init1))
[Stack]

- Max Depth = 104
- Call Chain = wakeup_init1 ⇒ clk_init ⇒ _clk_apply_setting1

[Calls]

- >> WaitRTCCount (via Veneer)
- >> clk_init
- >> rtc_get_counter (via Veneer)
- >> efuse_init
- >> hal_system_clock_change_process
- >> __wdt_init
- >> check_96MXtal_by_rcTracking
- >> check_16MXtal_by_rcTracking
- >> NVIC_EnableIRQ
- >> set_timer (via Veneer)
- >> set_max_length (via Veneer)
- >> ll_hw_set_timing (via Veneer)
- >> ll_hw_set_rx_timeout_1st (via Veneer)
- >> ll_hw_set_rx_timeout (via Veneer)
- >> ll_hw_set_loop_timeout (via Veneer)
- >> ll_hw_set_empty_head (via Veneer)
- >> ll_hw_ign_rfifo (via Veneer)

[Called By]

- >> wakeupProcess1

[Address Reference Count : 1]

- patch.o(_section_xip_code_)

watchdog_config (Thumb, 28 bytes, Stack size 8 bytes, watchdog.o(i.watchdog_config))
[Stack]

- Max Depth = 24
- Call Chain = watchdog_config ⇒ hal_watchdog_init

[Calls]

- >> hal_watchdog_init

[Called By]

- >> single_carrier_ProcessEvent (via Veneer)

### Local Symbols

__NVIC_SetPriority (Thumb, 60 bytes, Stack size 0 bytes, main.o(i.__NVIC_SetPriority))
[Called By]

- >> hal_rfphy_init

ble_mem_init_config (Thumb, 80 bytes, Stack size 32 bytes, main.o(i.ble_mem_init_config))
[Stack]

- Max Depth = 56
- Call Chain = ble_mem_init_config ⇒ LL_InitConnectContext

[Calls]

- >> osal_mem_set_heap (via Veneer)
- >> LL_InitConnectContext (via Veneer)
- >> Host_InitContext (via Veneer)

[Called By]

- >> hal_rfphy_init

hal_low_power_io_init (Thumb, 88 bytes, Stack size 64 bytes, main.o(i.hal_low_power_io_init))
[Stack]

- Max Depth = 80
- Call Chain = hal_low_power_io_init ⇒ hal_gpio_pull_set

[Calls]

- >> hal_pwrmgr_RAM_retention_set
- >> hal_pwrmgr_RAM_retention
- >> hal_pwrmgr_LowCurrentLdo_enable
- >> hal_gpio_pull_set
- >> __aeabi_memcpy4 (via Veneer)

[Called By]

- >> main

hal_rfphy_init (Thumb, 86 bytes, Stack size 8 bytes, main.o(i.hal_rfphy_init))
[Stack]

- Max Depth = 96
- Call Chain = hal_rfphy_init ⇒ hal_rom_boot_init ⇒ _rom_sec_boot_init ⇒ _efuse_chip_version_check ⇒ finidv

[Calls]

- >> hal_rom_boot_init
- >> hal_rc32k_clk_tracking_init
- >> ble_mem_init_config
- >> __NVIC_SetPriority

[Called By]

- >> main

irq_rx_handler (Thumb, 84 bytes, Stack size 56 bytes, uart.o(_section_sram_code_))
[Stack]

- Max Depth = 56
- Call Chain = irq_rx_handler

[Called By]

- >> hal_UART1_IRQHandler (via Veneer)
- >> hal_UART0_IRQHandler (via Veneer)

irq_tx_empty_handler (Thumb, 138 bytes, Stack size 32 bytes, uart.o(_section_sram_code_))
[Stack]

- Max Depth = 48
- Call Chain = irq_tx_empty_handler ⇒ hal_pwrmgr_unlock

[Calls]

- >> hal_pwrmgr_unlock

[Called By]

- >> hal_UART1_IRQHandler (via Veneer)
- >> hal_UART0_IRQHandler (via Veneer)

txmit_buf_polling (Thumb, 96 bytes, Stack size 20 bytes, uart.o(i.txmit_buf_polling))
[Stack]

- Max Depth = 20
- Call Chain = txmit_buf_polling

[Called By]

- >> hal_uart_send_buff

txmit_buf_use_tx_buf (Thumb, 176 bytes, Stack size 32 bytes, uart.o(i.txmit_buf_use_tx_buf))
[Stack]

- Max Depth = 48
- Call Chain = txmit_buf_use_tx_buf ⇒ hal_pwrmgr_lock

[Calls]

- >> hal_pwrmgr_lock (via Veneer)
- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> __aeabi_memcpy (via Veneer)

[Called By]

- >> hal_uart_send_buff

uart_hw_deinit (Thumb, 106 bytes, Stack size 24 bytes, uart.o(i.uart_hw_deinit))
[Stack]

- Max Depth = 32
- Call Chain = uart_hw_deinit ⇒ hal_clk_reset

[Calls]

- >> hal_gpio_fmux (via Veneer)
- >> hal_clk_reset (via Veneer)
- >> hal_clk_gate_disable (via Veneer)

[Called By]

- >> uart_hw_init

uart_hw_init (Thumb, 330 bytes, Stack size 48 bytes, uart.o(i.uart_hw_init))
[Stack]

- Max Depth = 80
- Call Chain = uart_hw_init ⇒ uart_hw_deinit ⇒ hal_clk_reset

[Calls]

- >> hal_gpio_fmux_set (via Veneer)
- >> hal_clk_reset (via Veneer)
- >> hal_clk_gate_enable (via Veneer)
- >> clk_get_pclk (via Veneer)
- >> __aeabi_uidivmod (via Veneer)
- >> uart_hw_deinit
- >> hal_gpio_pull_set (via Veneer)

[Called By]

- >> hal_uart_init
- >> uart_wakeup_process_1
- >> uart_wakeup_process_0

uart_wakeup_process_0 (Thumb, 10 bytes, Stack size 8 bytes, uart.o(i.uart_wakeup_process_0))
[Stack]

- Max Depth = 88
- Call Chain = uart_wakeup_process_0 ⇒ uart_hw_init ⇒ uart_hw_deinit ⇒ hal_clk_reset

[Calls]

- >> uart_hw_init

[Address Reference Count : 1]

- uart.o(i.hal_uart_init)

uart_wakeup_process_1 (Thumb, 10 bytes, Stack size 8 bytes, uart.o(i.uart_wakeup_process_1))
[Stack]

- Max Depth = 88
- Call Chain = uart_wakeup_process_1 ⇒ uart_hw_init ⇒ uart_hw_deinit ⇒ hal_clk_reset

[Calls]

- >> uart_hw_init

[Address Reference Count : 1]

- uart.o(i.hal_uart_init)

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

- >> hal_gpio_wakeup_handler
- >> hal_gpio_init

__NVIC_SetPriority (Thumb, 60 bytes, Stack size 0 bytes, gpio.o(i.__NVIC_SetPriority))
[Called By]

- >> hal_gpio_wakeup_handler
- >> hal_gpio_init

hal_gpio_interrupt_enable (Thumb, 58 bytes, Stack size 8 bytes, gpio.o(i.hal_gpio_interrupt_enable))
[Stack]

- Max Depth = 8
- Call Chain = hal_gpio_interrupt_enable

[Called By]

- >> hal_gpioin_enable
- >> hal_gpioin_event

hal_gpio_retention_enable (Thumb, 100 bytes, Stack size 16 bytes, gpio.o(i.hal_gpio_retention_enable))
[Stack]

- Max Depth = 16
- Call Chain = hal_gpio_retention_enable

[Called By]

- >> hal_gpio_wakeup_handler
- >> hal_gpio_sleep_handler

hal_gpio_sleep_handler (Thumb, 80 bytes, Stack size 24 bytes, gpio.o(i.hal_gpio_sleep_handler))
[Stack]

- Max Depth = 56
- Call Chain = hal_gpio_sleep_handler ⇒ hal_gpio_wakeup_set ⇒ hal_gpio_wakeup_control

[Calls]

- >> hal_gpio_wakeup_set
- >> hal_gpio_read
- >> hal_gpio_retention_enable

[Address Reference Count : 1]

- gpio.o(i.hal_gpio_init)

hal_gpio_wakeup_control (Thumb, 58 bytes, Stack size 8 bytes, gpio.o(i.hal_gpio_wakeup_control))
[Stack]

- Max Depth = 8
- Call Chain = hal_gpio_wakeup_control

[Called By]

- >> hal_gpio_wakeup_set

hal_gpio_wakeup_handler (Thumb, 148 bytes, Stack size 16 bytes, gpio.o(i.hal_gpio_wakeup_handler))
[Stack]

- Max Depth = 76
- Call Chain = hal_gpio_wakeup_handler ⇒ hal_gpioin_enable ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpioin_enable
- >> hal_gpio_write
- >> hal_gpio_read
- >> hal_gpio_pin2pin3_control
- >> hal_gpioin_event_pin
- >> hal_gpio_retention_enable
- >> __NVIC_SetPriority
- >> __NVIC_EnableIRQ

[Address Reference Count : 1]

- gpio.o(i.hal_gpio_init)

hal_gpioin_event (Thumb, 100 bytes, Stack size 32 bytes, gpio.o(i.hal_gpioin_event))
[Stack]

- Max Depth = 40
- Call Chain = hal_gpioin_event ⇒ hal_gpio_interrupt_enable

[Calls]

- >> hal_gpioin_event_pin
- >> hal_gpio_interrupt_enable

[Called By]

- >> hal_GPIO_IRQHandler

hal_gpioin_event_pin (Thumb, 36 bytes, Stack size 0 bytes, gpio.o(i.hal_gpioin_event_pin))
[Called By]

- >> hal_gpioin_event
- >> hal_gpio_wakeup_handler

__NVIC_DisableIRQ (Thumb, 26 bytes, Stack size 0 bytes, timer.o(i.__NVIC_DisableIRQ))
[Called By]

- >> hal_timer_stop

__NVIC_EnableIRQ (Thumb, 18 bytes, Stack size 0 bytes, timer.o(i.__NVIC_EnableIRQ))
[Called By]

- >> hal_timer_set

__NVIC_SetPriority (Thumb, 60 bytes, Stack size 0 bytes, timer.o(i.__NVIC_SetPriority))
[Called By]

- >> hal_timer_set

hal_timer_wakeup_handler (Thumb, 14 bytes, Stack size 0 bytes, timer.o(i.hal_timer_wakeup_handler))
[Address Reference Count : 1]

- timer.o(i.hal_timer_init)

__NVIC_SetPriority (Thumb, 60 bytes, Stack size 0 bytes, pwrmgr.o(i.__NVIC_SetPriority))
[Called By]

- >> hal_pwrmgr_wakeup_process

log_vsprintf (Thumb, 608 bytes, Stack size 56 bytes, my_printf.o(i.log_vsprintf))
[Stack]

- Max Depth = 184
- Call Chain = log_vsprintf ⇒ number

[Calls]

- >> skip_atoi
- >> number

[Called By]

- >> dbg_printf

number (Thumb, 356 bytes, Stack size 128 bytes, my_printf.o(i.number))
[Stack]

- Max Depth = 128
- Call Chain = number

[Calls]

- >> __aeabi_uidivmod (via Veneer)

[Called By]

- >> log_vsprintf

skip_atoi (Thumb, 32 bytes, Stack size 0 bytes, my_printf.o(i.skip_atoi))
[Called By]

- >> log_vsprintf

spif_lock (Thumb, 36 bytes, Stack size 8 bytes, flash.o(_section_sram_code_))
[Stack]

- Max Depth = 28
- Call Chain = spif_lock ⇒ ll_patch_restore

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> ll_patch_restore

[Called By]

- >> hal_flash_write_by_dma
- >> hal_flash_write
- >> hal_flash_read
- >> hal_flash_erase_sector

spif_unlock (Thumb, 24 bytes, Stack size 8 bytes, flash.o(_section_sram_code_))
[Stack]

- Max Depth = 28
- Call Chain = spif_unlock ⇒ ll_patch_restore

[Calls]

- >> drv_enable_irq (via Veneer)
- >> drv_disable_irq (via Veneer)
- >> ll_patch_restore

[Called By]

- >> hal_flash_write_by_dma
- >> hal_flash_write
- >> hal_flash_read
- >> hal_flash_erase_sector

_spif_read_status_reg_x (Thumb, 104 bytes, Stack size 32 bytes, flash.o(i._spif_read_status_reg_x))
[Stack]

- Max Depth = 32
- Call Chain = _spif_read_status_reg_x

[Calls]

- >> spif_rddata (via Veneer)
- >> spif_cmd (via Veneer)

[Called By]

- >> _spif_wait_nobusy_x

_spif_wait_nobusy_x (Thumb, 38 bytes, Stack size 16 bytes, flash.o(i._spif_wait_nobusy_x))
[Stack]

- Max Depth = 48
- Call Chain = _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x

[Calls]

- >> WaitRTCCount (via Veneer)
- >> _spif_read_status_reg_x

[Called By]

- >> hal_flash_write_by_dma
- >> hal_flash_write
- >> hal_flash_erase_sector

hw_spif_cache_config (Thumb, 140 bytes, Stack size 24 bytes, flash.o(i.hw_spif_cache_config))
[Stack]

- Max Depth = 40
- Call Chain = hw_spif_cache_config ⇒ hal_cache_tag_flush

[Calls]

- >> hal_clk_gate_enable
- >> spif_read_id (via Veneer)
- >> spif_config (via Veneer)
- >> hal_cache_tag_flush

[Called By]

- >> hal_spif_cache_init

[Address Reference Count : 1]

- flash.o(i.hal_spif_cache_init)

check_addr (Thumb, 26 bytes, Stack size 0 bytes, fs.o(i.check_addr))
[Called By]

- >> hal_fs_item_read
- >> hal_fs_item_del
- >> hal_fs_garbage_collect

fs_check_psr (Thumb, 16 bytes, Stack size 8 bytes, fs.o(i.fs_check_psr))
[Stack]

- Max Depth = 8
- Call Chain = fs_check_psr

[Calls]

- >> __psr (via Veneer)

[Called By]

- >> hal_fs_item_write
- >> hal_fs_item_read
- >> hal_fs_item_del
- >> hal_fs_garbage_collect
- >> fs_spif_write

fs_init (Thumb, 322 bytes, Stack size 128 bytes, fs.o(i.fs_init))
[Stack]

- Max Depth = 276
- Call Chain = fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_memset (via Veneer)
- >> __aeabi_idivmod (via Veneer)
- >> fs_spif_write
- >> fs_spif_read
- >> fs_search_items

[Called By]

- >> hal_fs_init
- >> hal_fs_garbage_collect

fs_search_items (Thumb, 362 bytes, Stack size 72 bytes, fs.o(i.fs_search_items))
[Stack]

- Max Depth = 148
- Call Chain = fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> fs_spif_read

[Called By]

- >> hal_fs_item_find_id
- >> hal_fs_get_garbage_size
- >> fs_init

fs_spif_read (Thumb, 38 bytes, Stack size 8 bytes, fs.o(i.fs_spif_read))
[Stack]

- Max Depth = 76
- Call Chain = fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> hal_flash_read (via Veneer)

[Called By]

- >> hal_fs_item_read
- >> hal_fs_item_del
- >> hal_fs_garbage_collect
- >> fs_search_items
- >> fs_init

fs_spif_write (Thumb, 58 bytes, Stack size 16 bytes, fs.o(i.fs_spif_write))
[Stack]

- Max Depth = 112
- Call Chain = fs_spif_write ⇒ hal_flash_write_by_dma ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x

[Calls]

- >> fs_check_psr
- >> hal_flash_write_by_dma (via Veneer)

[Called By]

- >> hal_fs_item_write
- >> hal_fs_item_del
- >> hal_fs_garbage_collect
- >> fs_init

kscan_wakeup_handler (Thumb, 218 bytes, Stack size 24 bytes, kscan.o(_section_sram_code_))
[Stack]

- Max Depth = 68
- Call Chain = kscan_wakeup_handler ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_read
- >> hal_gpio_pin_init
- >> hal_pwrmgr_lock
- >> hal_gpio_pull_set
- >> osal_start_timerEx (via Veneer)
- >> kscan_hw_config (via Veneer)

[Address Reference Count : 1]

- kscan.o(i.hal_kscan_init)

hal_kscan_clear_config (Thumb, 38 bytes, Stack size 0 bytes, kscan.o(i.hal_kscan_clear_config))
[Called By]

- >> kscan_hw_config
- >> hal_kscan_timeout_handler
- >> kscan_sleep_handler (via Veneer)

kscan_compare_key (Thumb, 116 bytes, Stack size 48 bytes, kscan.o(i.kscan_compare_key))
[Stack]

- Max Depth = 48
- Call Chain = kscan_compare_key

[Calls]

- >> __aeabi_memcpy (via Veneer)

[Called By]

- >> hal_KSCAN_IRQHandler
- >> hal_kscan_timeout_handler

rmv_ghost_key (Thumb, 66 bytes, Stack size 20 bytes, kscan.o(i.rmv_ghost_key))
[Stack]

- Max Depth = 20
- Call Chain = rmv_ghost_key

[Called By]

- >> hal_KSCAN_IRQHandler
- >> hal_kscan_timeout_handler

adc_wakeup_hdl (Thumb, 20 bytes, Stack size 0 bytes, adc.o(_section_sram_code_))
[Address Reference Count : 1]

- adc.o(i.hal_adc_init)

__NVIC_DisableIRQ (Thumb, 26 bytes, Stack size 0 bytes, adc.o(i.__NVIC_DisableIRQ))
[Called By]

- >> hal_poilling_adc_stop
- >> hal_adc_stop
- >> hal_adc_start

__NVIC_EnableIRQ (Thumb, 18 bytes, Stack size 0 bytes, adc.o(i.__NVIC_EnableIRQ))
[Called By]

- >> hal_adc_start

adc_compare_cb (Thumb, 238 bytes, Stack size 40 bytes, adc.o(i.adc_compare_cb))
[Stack]

- Max Depth = 248
- Call Chain = adc_compare_cb ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf (via Veneer)

[Called By]

- >> hal_ADC_compare_IRQHandler

disable_analog_pin (Thumb, 36 bytes, Stack size 8 bytes, adc.o(i.disable_analog_pin))
[Stack]

- Max Depth = 52
- Call Chain = disable_analog_pin ⇒ hal_gpio_pin_init ⇒ hal_gpio_cfg_analog_io ⇒ hal_gpio_pull_set

[Calls]

- >> hal_gpio_pin_init
- >> hal_gpio_cfg_analog_io
- >> hal_gpio_pull_set

[Called By]

- >> hal_poilling_adc_stop
- >> hal_adc_stop

hal_ADC_compare_IRQHandler (Thumb, 286 bytes, Stack size 184 bytes, adc.o(i.hal_ADC_compare_IRQHandler))
[Stack]

- Max Depth = 432
- Call Chain = hal_ADC_compare_IRQHandler ⇒ adc_compare_cb ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> adc_compare_cb
- >> hal_adc_stop

[Address Reference Count : 1]

- adc.o(i.hal_adc_start)

hal_adc_load_calibration_value (Thumb, 64 bytes, Stack size 0 bytes, adc.o(i.hal_adc_load_calibration_value))
[Called By]

- >> hal_adc_value_cal

set_sampling_resolution (Thumb, 170 bytes, Stack size 16 bytes, adc.o(i.set_sampling_resolution))
[Stack]

- Max Depth = 16
- Call Chain = set_sampling_resolution

[Calls]

- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> hal_adc_config_channel

set_voice_amute_cfg (Thumb, 138 bytes, Stack size 20 bytes, voice.o(i.set_voice_amute_cfg))
[Stack]

- Max Depth = 20
- Call Chain = set_voice_amute_cfg

[Called By]

- >> hal_voice_config

gapBondMgrAddBond (Thumb, 344 bytes, Stack size 40 bytes, gapbondmgr.o(i.gapBondMgrAddBond))
[Stack]

- Max Depth = 412
- Call Chain = gapBondMgrAddBond ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_snv_write
- >> gapBondSetupPrivFlag
- >> gapBondMgr_SyncWhiteList
- >> gapBondMgrFindEmpty
- >> gapBondMgrFindAddr

[Called By]

- >> GAPBondMgr_ProcessGAPMsg
- >> gapBondRecvEvt

gapBondMgrAuthenticate (Thumb, 254 bytes, Stack size 56 bytes, gapbondmgr.o(i.gapBondMgrAuthenticate))
[Stack]

- Max Depth = 304
- Call Chain = gapBondMgrAuthenticate ⇒ GAP_Authenticate ⇒ SM_StartPairing ⇒ smGeneratePairingReqRsp ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> GAP_Authenticate

[Called By]

- >> GAPBondMgr_ProcessGAPMsg

gapBondMgrBondTotal (Thumb, 42 bytes, Stack size 16 bytes, gapbondmgr.o(i.gapBondMgrBondTotal))
[Stack]

- Max Depth = 16
- Call Chain = gapBondMgrBondTotal

[Calls]

- >> osal_isbufset (via Veneer)

[Called By]

- >> GAPBondMgr_GetParameter
- >> gapBondSetupPrivFlag

gapBondMgrChangeState (Thumb, 88 bytes, Stack size 32 bytes, gapbondmgr.o(i.gapBondMgrChangeState))
[Stack]

- Max Depth = 404
- Call Chain = gapBondMgrChangeState ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_snv_write
- >> osal_snv_read
- >> osal_isbufset (via Veneer)

[Called By]

- >> GAPBondMgr_ServiceChangeInd

gapBondMgrEraseAllBondings (Thumb, 24 bytes, Stack size 8 bytes, gapbondmgr.o(i.gapBondMgrEraseAllBondings))
[Stack]

- Max Depth = 460
- Call Chain = gapBondMgrEraseAllBondings ⇒ gapBondMgrEraseBonding ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> gapBondMgrEraseBonding

[Called By]

- >> GAPBondMgr_SetParameter
- >> GAPBondMgr_ProcessGAPMsg

gapBondMgrEraseBonding (Thumb, 190 bytes, Stack size 80 bytes, gapbondmgr.o(i.gapBondMgrEraseBonding))
[Stack]

- Max Depth = 452
- Call Chain = gapBondMgrEraseBonding ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_memset (via Veneer)
- >> osal_snv_write
- >> osal_snv_read
- >> osal_isbufset (via Veneer)

[Called By]

- >> bonding_info_key_handle
- >> GAPBondMgr_SetParameter
- >> GAPBondMgr_ProcessGAPMsg
- >> gapBondMgrEraseAllBondings

gapBondMgrFindAddr (Thumb, 42 bytes, Stack size 16 bytes, gapbondmgr.o(i.gapBondMgrFindAddr))
[Stack]

- Max Depth = 16
- Call Chain = gapBondMgrFindAddr

[Calls]

- >> osal_memcmp (via Veneer)

[Called By]

- >> bonding_info_key_handle
- >> GAPBondMgr_ResolveAddr
- >> gapBondMgrAddBond

gapBondMgrFindCharCfgItem (Thumb, 28 bytes, Stack size 0 bytes, gapbondmgr.o(i.gapBondMgrFindCharCfgItem))
[Called By]

- >> gapBondMgrUpdateCharCfg

gapBondMgrFindEmpty (Thumb, 40 bytes, Stack size 16 bytes, gapbondmgr.o(i.gapBondMgrFindEmpty))
[Stack]

- Max Depth = 16
- Call Chain = gapBondMgrFindEmpty

[Calls]

- >> osal_isbufset (via Veneer)

[Called By]

- >> bonding_info_key_handle
- >> gapBondMgrAddBond

gapBondMgrGetPublicAddr (Thumb, 54 bytes, Stack size 32 bytes, gapbondmgr.o(i.gapBondMgrGetPublicAddr))
[Stack]

- Max Depth = 244
- Call Chain = gapBondMgrGetPublicAddr ⇒ osal_snv_read ⇒ hal_fs_item_read ⇒ hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_snv_read

[Called By]

- >> GAPBondMgr_ResolveAddr

gapBondMgrInvertCharCfgItem (Thumb, 28 bytes, Stack size 0 bytes, gapbondmgr.o(i.gapBondMgrInvertCharCfgItem))
[Called By]

- >> GAPBondMgr_LinkEst
- >> gapBondMgrUpdateCharCfg

gapBondMgrReadBonds (Thumb, 84 bytes, Stack size 16 bytes, gapbondmgr.o(i.gapBondMgrReadBonds))
[Stack]

- Max Depth = 228
- Call Chain = gapBondMgrReadBonds ⇒ osal_snv_read ⇒ hal_fs_item_read ⇒ hal_fs_item_find_id ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_memset (via Veneer)
- >> osal_snv_read
- >> gapBondSetupPrivFlag
- >> gapBondMgr_SyncWhiteList

[Called By]

- >> bonding_info_key_handle
- >> GAPBondMgr_SetParameter
- >> GAPBondMgr_ProcessGAPMsg
- >> GAPBondMgr_Init

gapBondMgrSendServiceChange (Thumb, 14 bytes, Stack size 8 bytes, gapbondmgr.o(i.gapBondMgrSendServiceChange))
[Stack]

- Max Depth = 580
- Call Chain = gapBondMgrSendServiceChange ⇒ GATTServApp_SendServiceChangedInd ⇒ GATT_ServiceChangedInd ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> GATTServApp_SendServiceChangedInd

[Called By]

- >> GAPBondMgr_ServiceChangeInd

[Address Reference Count : 1]

- gapbondmgr.o(i.GAPBondMgr_ServiceChangeInd)

gapBondMgrSlaveSecurityReq (Thumb, 62 bytes, Stack size 8 bytes, gapbondmgr.o(i.gapBondMgrSlaveSecurityReq))
[Stack]

- Max Depth = 176
- Call Chain = gapBondMgrSlaveSecurityReq ⇒ GAP_SendSlaveSecurityRequest ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> GAP_SendSlaveSecurityRequest

[Called By]

- >> GAPBondMgr_LinkEst

gapBondMgrUpdateCharCfg (Thumb, 170 bytes, Stack size 48 bytes, gapbondmgr.o(i.gapBondMgrUpdateCharCfg))
[Stack]

- Max Depth = 420
- Call Chain = gapBondMgrUpdateCharCfg ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_memset (via Veneer)
- >> osal_snv_write
- >> osal_snv_read
- >> osal_isbufset (via Veneer)
- >> gapBondMgrInvertCharCfgItem
- >> gapBondMgrFindCharCfgItem

[Called By]

- >> GAPBondMgr_UpdateCharCfg

gapBondMgr_SyncCharCfg (Thumb, 114 bytes, Stack size 40 bytes, gapbondmgr.o(i.gapBondMgr_SyncCharCfg))
[Stack]

- Max Depth = 484
- Call Chain = gapBondMgr_SyncCharCfg ⇒ GAPBondMgr_UpdateCharCfg ⇒ gapBondMgrUpdateCharCfg ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> GATT_FindNextAttr
- >> GATT_FindHandleUUID
- >> GATTServApp_ReadAttr
- >> GAPBondMgr_UpdateCharCfg

[Called By]

- >> gapBondRecvEvt

gapBondMgr_SyncWhiteList (Thumb, 46 bytes, Stack size 16 bytes, gapbondmgr.o(i.gapBondMgr_SyncWhiteList))
[Stack]

- Max Depth = 16
- Call Chain = gapBondMgr_SyncWhiteList

[Calls]

- >> osal_isbufset (via Veneer)
- >> HCI_LE_ClearWhiteListCmd (via Veneer)
- >> HCI_LE_AddWhiteListCmd (via Veneer)

[Called By]

- >> gapBondMgrReadBonds
- >> gapBondMgrAddBond

gapBondRecvEvt (Thumb, 80 bytes, Stack size 16 bytes, gapbondmgr.o(i.gapBondRecvEvt))
[Stack]

- Max Depth = 500
- Call Chain = gapBondRecvEvt ⇒ gapBondMgr_SyncCharCfg ⇒ GAPBondMgr_UpdateCharCfg ⇒ gapBondMgrUpdateCharCfg ⇒ osal_snv_write ⇒ hal_fs_garbage_collect ⇒ fs_init ⇒ fs_search_items ⇒ fs_spif_read ⇒ hal_flash_read ⇒ spif_unlock ⇒ ll_patch_restore

[Calls]

- >> osal_msg_deallocate (via Veneer)
- >> gapBondMgr_SyncCharCfg
- >> gapBondMgrAddBond

[Called By]

- >> GAPBondMgr_ProcessGAPMsg

gapBondSetupPrivFlag (Thumb, 32 bytes, Stack size 8 bytes, gapbondmgr.o(i.gapBondSetupPrivFlag))
[Stack]

- Max Depth = 32
- Call Chain = gapBondSetupPrivFlag ⇒ GGS_SetParameter ⇒ ggs_SetAttrWPermit

[Calls]

- >> GGS_SetParameter
- >> gapBondMgrBondTotal

[Called By]

- >> gapBondMgrReadBonds
- >> gapBondMgrAddBond

ggs_ReadAttrCB (Thumb, 194 bytes, Stack size 24 bytes, gapgattserver.o(i.ggs_ReadAttrCB))
[Stack]

- Max Depth = 24
- Call Chain = ggs_ReadAttrCB

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_strlen (via Veneer)
- >> __ARM_common_switch8 (via Veneer)

[Address Reference Count : 1]

- gapgattserver.o(.constdata)

ggs_SetAttrWPermit (Thumb, 88 bytes, Stack size 8 bytes, gapgattserver.o(i.ggs_SetAttrWPermit))
[Stack]

- Max Depth = 8
- Call Chain = ggs_SetAttrWPermit

[Called By]

- >> GGS_SetParameter

ggs_WriteAttrCB (Thumb, 222 bytes, Stack size 40 bytes, gapgattserver.o(i.ggs_WriteAttrCB))
[Stack]

- Max Depth = 40
- Call Chain = ggs_WriteAttrCB

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_strlen (via Veneer)

[Address Reference Count : 1]

- gapgattserver.o(.constdata)

gapRole_ProcessGAPMsg (Thumb, 486 bytes, Stack size 24 bytes, peripheral.o(i.gapRole_ProcessGAPMsg))
[Stack]

- Max Depth = 732
- Call Chain = gapRole_ProcessGAPMsg ⇒ GAPBondMgr_LinkEst ⇒ GATTServApp_SendServiceChangedInd ⇒ GATT_ServiceChangedInd ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_set_event (via Veneer)
- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_get_timeoutEx (via Veneer)
- >> GAP_UpdateAdvertisingData
- >> GAP_EndDiscoverable
- >> GAPBondMgr_LinkEst
- >> __ARM_common_switch8 (via Veneer)

[Called By]

- >> gapRole_ProcessOSALMsg

gapRole_ProcessOSALMsg (Thumb, 142 bytes, Stack size 8 bytes, peripheral.o(i.gapRole_ProcessOSALMsg))
[Stack]

- Max Depth = 740
- Call Chain = gapRole_ProcessOSALMsg ⇒ gapRole_ProcessGAPMsg ⇒ GAPBondMgr_LinkEst ⇒ GATTServApp_SendServiceChangedInd ⇒ GATT_ServiceChangedInd ⇒ GATT_Indication ⇒ ATT_HandleValueInd ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> dbg_printf
- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> GAPRole_TerminateConnection
- >> gapRole_ProcessGAPMsg
- >> GAP_GetParamValue

[Called By]

- >> GAPRole_ProcessEvent

gapRole_startConnUpdate (Thumb, 56 bytes, Stack size 24 bytes, peripheral.o(i.gapRole_startConnUpdate))
[Stack]

- Max Depth = 256
- Call Chain = gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_start_timerEx (via Veneer)
- >> L2CAP_ConnParamUpdateReq
- >> GAP_GetParamValue

[Called By]

- >> GAPRole_SetParameter
- >> GAPRole_SendUpdateParam
- >> GAPRole_ProcessEvent

gattServApp_FindAuthorizeAttrCB (Thumb, 14 bytes, Stack size 8 bytes, gattservapp.o(i.gattServApp_FindAuthorizeAttrCB))
[Stack]

- Max Depth = 8
- Call Chain = gattServApp_FindAuthorizeAttrCB

[Calls]

- >> gattServApp_FindServiceCBs

[Called By]

- >> GATTServApp_ReadAttr
- >> gattServApp_ProcessWriteReq
- >> gattServApp_ProcessPrepareWriteReq

gattServApp_FindCharCfgItem (Thumb, 28 bytes, Stack size 0 bytes, gattservapp.o(i.gattServApp_FindCharCfgItem))
[Called By]

- >> GATTServApp_WriteCharCfg
- >> GATTServApp_ReadCharCfg
- >> GATTServApp_InitCharCfg

gattServApp_FindPrepareWriteQ (Thumb, 30 bytes, Stack size 0 bytes, gattservapp.o(i.gattServApp_FindPrepareWriteQ))
[Called By]

- >> gattServApp_ProcessPrepareWriteReq
- >> gattServApp_ProcessExecuteWriteReq
- >> gattServApp_HandleConnStatusCB

gattServApp_FindServiceCBs (Thumb, 26 bytes, Stack size 0 bytes, gattservapp.o(i.gattServApp_FindServiceCBs))
[Called By]

- >> GATTServApp_ReadAttr
- >> GATTServApp_WriteAttr
- >> gattServApp_FindAuthorizeAttrCB

gattServApp_HandleConnStatusCB (Thumb, 88 bytes, Stack size 24 bytes, gattservapp.o(i.gattServApp_HandleConnStatusCB))
[Stack]

- Max Depth = 44
- Call Chain = gattServApp_HandleConnStatusCB ⇒ linkDB_State ⇒ linkDB_Find

[Calls]

- >> osal_memset (via Veneer)
- >> linkDB_State
- >> GATTServApp_InitCharCfg
- >> gattServApp_FindPrepareWriteQ

[Address Reference Count : 1]

- gattservapp.o(i.GATTServApp_Init)

gattServApp_ProcessExecuteWriteReq (Thumb, 132 bytes, Stack size 40 bytes, gattservapp.o(i.gattServApp_ProcessExecuteWriteReq))
[Stack]

- Max Depth = 292
- Call Chain = gattServApp_ProcessExecuteWriteReq ⇒ ATT_ExecuteWriteRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_memset (via Veneer)
- >> ATT_ExecuteWriteRsp
- >> GATTServApp_WriteAttr
- >> gattServApp_FindPrepareWriteQ

[Called By]

- >> gattServApp_ProcessMsg

gattServApp_ProcessFindByTypeValueReq (Thumb, 228 bytes, Stack size 48 bytes, gattservapp.o(i.gattServApp_ProcessFindByTypeValueReq))
[Stack]

- Max Depth = 300
- Call Chain = gattServApp_ProcessFindByTypeValueReq ⇒ ATT_FindByTypeValueRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcmp (via Veneer)
- >> GATT_FindNextAttr
- >> GATT_FindHandleUUID
- >> GATTServApp_ReadAttr
- >> ATT_FindByTypeValueRsp

[Called By]

- >> gattServApp_ProcessMsg

gattServApp_ProcessMsg (Thumb, 334 bytes, Stack size 40 bytes, gattservapp.o(i.gattServApp_ProcessMsg))
[Stack]

- Max Depth = 364
- Call Chain = gattServApp_ProcessMsg ⇒ gattServApp_ProcessReadByTypeReq ⇒ ATT_ReadByTypeRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> GATTServApp_ReadAttr
- >> GATT_FindHandle
- >> GATT_AppCompletedMsg
- >> ATT_ReadRsp
- >> ATT_ReadBlobRsp
- >> ATT_ExchangeMTURsp
- >> ATT_ErrorRsp
- >> gattServApp_ProcessWriteReq
- >> gattServApp_ProcessReadMultiReq
- >> gattServApp_ProcessReadByTypeReq
- >> gattServApp_ProcessReadByGrpTypeReq
- >> gattServApp_ProcessPrepareWriteReq
- >> gattServApp_ProcessFindByTypeValueReq
- >> gattServApp_ProcessExecuteWriteReq

[Called By]

- >> GATTServApp_ProcessEvent

gattServApp_ProcessPrepareWriteReq (Thumb, 150 bytes, Stack size 24 bytes, gattservapp.o(i.gattServApp_ProcessPrepareWriteReq))
[Stack]

- Max Depth = 276
- Call Chain = gattServApp_ProcessPrepareWriteReq ⇒ ATT_PrepareWriteRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_memcpy (via Veneer)
- >> GATT_FindHandle
- >> ATT_PrepareWriteRsp
- >> gattServApp_FindPrepareWriteQ
- >> gattServApp_FindAuthorizeAttrCB

[Called By]

- >> gattServApp_ProcessMsg

gattServApp_ProcessReadByGrpTypeReq (Thumb, 346 bytes, Stack size 72 bytes, gattservapp.o(i.gattServApp_ProcessReadByGrpTypeReq))
[Stack]

- Max Depth = 324
- Call Chain = gattServApp_ProcessReadByGrpTypeReq ⇒ ATT_ReadByGrpTypeRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> osal_memcpy (via Veneer)
- >> GATT_FindNextAttr
- >> GATT_FindHandleUUID
- >> GATTServApp_ReadAttr
- >> GATT_VerifyReadPermissions
- >> ATT_ReadByGrpTypeRsp

[Called By]

- >> gattServApp_ProcessMsg

gattServApp_ProcessReadByTypeReq (Thumb, 306 bytes, Stack size 72 bytes, gattservapp.o(i.gattServApp_ProcessReadByTypeReq))
[Stack]

- Max Depth = 324
- Call Chain = gattServApp_ProcessReadByTypeReq ⇒ ATT_ReadByTypeRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> __aeabi_uidivmod (via Veneer)
- >> osal_memcpy (via Veneer)
- >> GATT_FindHandleUUID
- >> GATTServApp_ReadAttr
- >> GATT_VerifyReadPermissions
- >> ATT_ReadByTypeRsp

[Called By]

- >> gattServApp_ProcessMsg

gattServApp_ProcessReadMultiReq (Thumb, 224 bytes, Stack size 48 bytes, gattservapp.o(i.gattServApp_ProcessReadMultiReq))
[Stack]

- Max Depth = 300
- Call Chain = gattServApp_ProcessReadMultiReq ⇒ ATT_ReadMultiRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_memcpy (via Veneer)
- >> GATTServApp_ReadAttr
- >> GATT_FindHandle
- >> ATT_ReadMultiRsp

[Called By]

- >> gattServApp_ProcessMsg

gattServApp_ProcessWriteReq (Thumb, 130 bytes, Stack size 32 bytes, gattservapp.o(i.gattServApp_ProcessWriteReq))
[Stack]

- Max Depth = 284
- Call Chain = gattServApp_ProcessWriteReq ⇒ ATT_WriteRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> GATT_FindHandle
- >> ATT_WriteRsp
- >> GATTServApp_WriteAttr
- >> gattServApp_FindAuthorizeAttrCB

[Called By]

- >> gattServApp_ProcessMsg

gattServApp_SetNumPrepareWrites (Thumb, 112 bytes, Stack size 24 bytes, gattservapp.o(i.gattServApp_SetNumPrepareWrites))
[Stack]

- Max Depth = 24
- Call Chain = gattServApp_SetNumPrepareWrites

[Calls]

- >> osal_memset (via Veneer)

[Called By]

- >> GATTServApp_Init

gattServApp_WriteAttrCB (Thumb, 46 bytes, Stack size 24 bytes, gattservapp.o(i.gattServApp_WriteAttrCB))
[Stack]

- Max Depth = 72
- Call Chain = gattServApp_WriteAttrCB ⇒ GATTServApp_ProcessCCCWriteReq ⇒ GATTServApp_SendCCCUpdatedEvent

[Calls]

- >> GATTServApp_ProcessCCCWriteReq

[Address Reference Count : 1]

- gattservapp.o(.constdata)

devInfo_ReadAttrCB (Thumb, 290 bytes, Stack size 24 bytes, devinfoservice.o(i.devInfo_ReadAttrCB))
[Stack]

- Max Depth = 24
- Call Chain = devInfo_ReadAttrCB

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- devinfoservice.o(.constdata)

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

- scanparamservice.o(.constdata)

scanParamWriteAttrCB (Thumb, 92 bytes, Stack size 32 bytes, scanparamservice.o(i.scanParamWriteAttrCB))
[Stack]

- Max Depth = 80
- Call Chain = scanParamWriteAttrCB ⇒ GATTServApp_ProcessCCCWriteReq ⇒ GATTServApp_SendCCCUpdatedEvent

[Calls]

- >> osal_memcpy (via Veneer)
- >> GATTServApp_ProcessCCCWriteReq

[Address Reference Count : 1]

- scanparamservice.o(.constdata)

battNotifyCB (Thumb, 62 bytes, Stack size 256 bytes, battservice.o(i.battNotifyCB))
[Stack]

- Max Depth = 532
- Call Chain = battNotifyCB ⇒ GATT_Notification ⇒ ATT_HandleValueNoti ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> GATT_Notification
- >> GATTServApp_ReadCharCfg

[Address Reference Count : 1]

- battservice.o(i.Batt_MeasLevel)

battReadAttrCB (Thumb, 84 bytes, Stack size 16 bytes, battservice.o(i.battReadAttrCB))
[Stack]

- Max Depth = 16
- Call Chain = battReadAttrCB

[Calls]

- >> osal_memcpy (via Veneer)

[Address Reference Count : 1]

- battservice.o(.constdata)

battWriteAttrCB (Thumb, 82 bytes, Stack size 24 bytes, battservice.o(i.battWriteAttrCB))
[Stack]

- Max Depth = 72
- Call Chain = battWriteAttrCB ⇒ GATTServApp_ProcessCCCWriteReq ⇒ GATTServApp_SendCCCUpdatedEvent

[Calls]

- >> GATTServApp_ProcessCCCWriteReq

[Address Reference Count : 1]

- battservice.o(.constdata)

bsp_DetectBtn (Thumb, 186 bytes, Stack size 16 bytes, bsp_button.o(i.bsp_DetectBtn))
[Stack]

- Max Depth = 40
- Call Chain = bsp_DetectBtn ⇒ bsp_is_key_press

[Calls]

- >> bsp_is_key_press
- >> bsp_PutKey

[Called By]

- >> bsp_KeyPro

bsp_PutKey (Thumb, 24 bytes, Stack size 0 bytes, bsp_button.o(i.bsp_PutKey))
[Called By]

- >> bsp_DetectBtn

bsp_btn_map (Thumb, 366 bytes, Stack size 0 bytes, bsp_button.o(i.bsp_btn_map))
[Called By]

- >> bsp_set_key_value_by_row_col
- >> bsp_is_key_press

bsp_is_key_press (Thumb, 100 bytes, Stack size 24 bytes, bsp_button.o(i.bsp_is_key_press))
[Stack]

- Max Depth = 24
- Call Chain = bsp_is_key_press

[Calls]

- >> bsp_btn_map

[Called By]

- >> bsp_DetectBtn

kscan_evt_handler (Thumb, 94 bytes, Stack size 24 bytes, bsp_button_task.o(_section_sram_code_))
[Stack]

- Max Depth = 48
- Call Chain = kscan_evt_handler ⇒ bsp_set_key_value_by_row_col

[Calls]

- >> osal_set_event (via Veneer)
- >> bsp_set_key_value_by_row_col (via Veneer)

[Address Reference Count : 1]

- bsp_button_task.o(i.kscan_button_init)

voice_evt_handler_adpcm (Thumb, 72 bytes, Stack size 24 bytes, voice_task.o(_section_sram_code_))
[Stack]

- Max Depth = 64
- Call Chain = voice_evt_handler_adpcm ⇒ voice_requeset_data ⇒ ReadBuffer

[Calls]

- >> osal_set_event (via Veneer)
- >> FillBuffer (via Veneer)
- >> voice_requeset_data (via Veneer)

[Address Reference Count : 1]

- voice_task.o(i.voiceCaptureStart)

voiceCaptureStart (Thumb, 162 bytes, Stack size 24 bytes, voice_task.o(i.voiceCaptureStart))
[Stack]

- Max Depth = 128
- Call Chain = voiceCaptureStart ⇒ hclk_clock_switch ⇒ hal_system_clock_change_active ⇒ clk_init ⇒ _clk_apply_setting1

[Calls]

- >> WaitMs (via Veneer)
- >> osal_stop_timerEx (via Veneer)
- >> hclk_clock_switch (via Veneer)
- >> osal_get_timeoutEx (via Veneer)
- >> hal_voice_start (via Veneer)
- >> hal_voice_init (via Veneer)
- >> hal_voice_config (via Veneer)
- >> hal_poilling_adc_stop (via Veneer)
- >> hal_adc_deinit (via Veneer)
- >> InitQueue
- >> InitCircularBuffer

[Called By]

- >> voice_task_ProcessEvent

AudioProfile_HandleConnStatusCB (Thumb, 50 bytes, Stack size 8 bytes, audiogattprofile.o(i.AudioProfile_HandleConnStatusCB))
[Stack]

- Max Depth = 28
- Call Chain = AudioProfile_HandleConnStatusCB ⇒ linkDB_State ⇒ linkDB_Find

[Calls]

- >> linkDB_State
- >> GATTServApp_InitCharCfg

[Address Reference Count : 1]

- audiogattprofile.o(i.AudioProfile_AddService)

AudioProfile_ReadAttrCB (Thumb, 48 bytes, Stack size 32 bytes, audiogattprofile.o(i.AudioProfile_ReadAttrCB))
[Stack]

- Max Depth = 56
- Call Chain = AudioProfile_ReadAttrCB ⇒ AudioProfile_Read

[Calls]

- >> AudioProfile_Read

[Address Reference Count : 1]

- audiogattprofile.o(.constdata)

AudioProfile_WriteAttrCB (Thumb, 100 bytes, Stack size 24 bytes, audiogattprofile.o(i.AudioProfile_WriteAttrCB))
[Stack]

- Max Depth = 232
- Call Chain = AudioProfile_WriteAttrCB ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf
- >> GATTServApp_ProcessCCCWriteReq

[Address Reference Count : 1]

- audiogattprofile.o(.constdata)

timer_expired_callback (Thumb, 22 bytes, Stack size 8 bytes, ir_task.o(_section_sram_code_))
[Stack]

- Max Depth = 44
- Call Chain = timer_expired_callback ⇒ sending_nec_38khz ⇒ WaitUs

[Calls]

- >> sending_learn_wavefrom (via Veneer)
- >> sending_nec_38khz

[Address Reference Count : 1]

- ir_task.o(i.IrTask_Init)

ir_recving_Hdl (Thumb, 194 bytes, Stack size 32 bytes, ir_task.o(_section_sram_code_))
[Stack]

- Max Depth = 32
- Call Chain = ir_recving_Hdl

[Calls]

- >> osal_clear_event (via Veneer)
- >> osal_start_timerEx (via Veneer)

[Address Reference Count : 1]

- ir_task.o(i.open_ir_learn)

adc_evt (Thumb, 246 bytes, Stack size 32 bytes, battdetect.o(_section_sram_code_))
[Stack]

- Max Depth = 240
- Call Chain = adc_evt ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf (via Veneer)
- >> __aeabi_fsub
- >> __aeabi_fmul
- >> __aeabi_fdiv
- >> hal_adc_value_cal
- >> update_batt_value (via Veneer)
- >> __aeabi_f2uiz
- >> __aeabi_f2iz
- >> __ARM_common_switch8 (via Veneer)

[Address Reference Count : 1]

- battdetect.o(i.adcMeasureTask)

ppsp_serv_get_attr (Thumb, 124 bytes, Stack size 24 bytes, ppsp_serv.o(i.ppsp_serv_get_attr))
[Stack]

- Max Depth = 24
- Call Chain = ppsp_serv_get_attr

[Calls]

- >> osal_memcpy (via Veneer)
- >> __ARM_common_switch8 (via Veneer)

[Address Reference Count : 1]

- ppsp_serv.o(.constdata)

ppsp_serv_hdlr_conn_stat (Thumb, 50 bytes, Stack size 8 bytes, ppsp_serv.o(i.ppsp_serv_hdlr_conn_stat))
[Stack]

- Max Depth = 28
- Call Chain = ppsp_serv_hdlr_conn_stat ⇒ linkDB_State ⇒ linkDB_Find

[Calls]

- >> linkDB_State
- >> GATTServApp_InitCharCfg

[Address Reference Count : 1]

- ppsp_serv.o(i.ppsp_serv_add_serv)

ppsp_serv_set_attr (Thumb, 284 bytes, Stack size 48 bytes, ppsp_serv.o(i.ppsp_serv_set_attr))
[Stack]

- Max Depth = 96
- Call Chain = ppsp_serv_set_attr ⇒ GATTServApp_ProcessCCCWriteReq ⇒ GATTServApp_SendCCCUpdatedEvent

[Calls]

- >> osal_memcpy (via Veneer)
- >> GATTServApp_ProcessCCCWriteReq

[Address Reference Count : 1]

- ppsp_serv.o(.constdata)

ppsp_impl_ack_serv_msgs_comp (Thumb, 58 bytes, Stack size 24 bytes, ppsp_impl.o(i.ppsp_impl_ack_serv_msgs_comp))
[Stack]

- Max Depth = 64
- Call Chain = ppsp_impl_ack_serv_msgs_comp ⇒ ppsp_impl_new_msgs_raws

[Calls]

- >> osal_mem_free (via Veneer)
- >> ppsp_impl_new_msgs_raws

[Called By]

- >> ppsp_impl_prc_serv_msgs_comp

ppsp_impl_ack_serv_msgs_pack (Thumb, 82 bytes, Stack size 24 bytes, ppsp_impl.o(i.ppsp_impl_ack_serv_msgs_pack))
[Stack]

- Max Depth = 64
- Call Chain = ppsp_impl_ack_serv_msgs_pack ⇒ ppsp_impl_new_msgs_raws

[Calls]

- >> osal_mem_free (via Veneer)
- >> ppsp_impl_new_msgs_raws

[Called By]

- >> ppsp_impl_prc_serv_msgs_pack

ppsp_impl_ack_serv_msgs_upda (Thumb, 86 bytes, Stack size 24 bytes, ppsp_impl.o(i.ppsp_impl_ack_serv_msgs_upda))
[Stack]

- Max Depth = 64
- Call Chain = ppsp_impl_ack_serv_msgs_upda ⇒ ppsp_impl_new_msgs_raws

[Calls]

- >> osal_mem_free (via Veneer)
- >> ppsp_impl_new_msgs_raws

[Called By]

- >> ppsp_impl_prc_serv_msgs_upda

ppsp_impl_ack_serv_msgs_verf (Thumb, 78 bytes, Stack size 24 bytes, ppsp_impl.o(i.ppsp_impl_ack_serv_msgs_verf))
[Stack]

- Max Depth = 64
- Call Chain = ppsp_impl_ack_serv_msgs_verf ⇒ ppsp_impl_new_msgs_raws

[Calls]

- >> osal_mem_free (via Veneer)
- >> ppsp_impl_new_msgs_raws

[Called By]

- >> ppsp_impl_serv_rmsg_hdlr

ppsp_impl_ack_serv_msgs_vers (Thumb, 70 bytes, Stack size 24 bytes, ppsp_impl.o(i.ppsp_impl_ack_serv_msgs_vers))
[Stack]

- Max Depth = 64
- Call Chain = ppsp_impl_ack_serv_msgs_vers ⇒ ppsp_impl_new_msgs_raws

[Calls]

- >> osal_mem_free (via Veneer)
- >> ppsp_impl_new_msgs_raws

[Called By]

- >> ppsp_impl_serv_rmsg_hdlr

ppsp_impl_cal_crc16_CCITT_FALSE (Thumb, 42 bytes, Stack size 12 bytes, ppsp_impl.o(i.ppsp_impl_cal_crc16_CCITT_FALSE))
[Stack]

- Max Depth = 12
- Call Chain = ppsp_impl_cal_crc16_CCITT_FALSE

[Called By]

- >> ppsp_impl_prc_serv_msgs_comp

ppsp_impl_chk_msgs_vali (Thumb, 116 bytes, Stack size 20 bytes, ppsp_impl.o(i.ppsp_impl_chk_msgs_vali))
[Stack]

- Max Depth = 20
- Call Chain = ppsp_impl_chk_msgs_vali

[Called By]

- >> ppsp_impl_serv_rmsg_hdlr

ppsp_impl_new_msgs_raws (Thumb, 84 bytes, Stack size 40 bytes, ppsp_impl.o(i.ppsp_impl_new_msgs_raws))
[Stack]

- Max Depth = 40
- Call Chain = ppsp_impl_new_msgs_raws

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_mem_alloc (via Veneer)

[Called By]

- >> ppsp_impl_prc_serv_msgs_rand
- >> ppsp_impl_ack_serv_msgs_vers
- >> ppsp_impl_ack_serv_msgs_verf
- >> ppsp_impl_ack_serv_msgs_upda
- >> ppsp_impl_ack_serv_msgs_pack
- >> ppsp_impl_ack_serv_msgs_comp

ppsp_impl_prc_serv_msgs_comp (Thumb, 138 bytes, Stack size 16 bytes, ppsp_impl.o(i.ppsp_impl_prc_serv_msgs_comp))
[Stack]

- Max Depth = 224
- Call Chain = ppsp_impl_prc_serv_msgs_comp ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> hal_system_soft_reset (via Veneer)
- >> dbg_printf
- >> ppsp_impl_psh_prog_data
- >> ppsp_impl_cal_crc16_CCITT_FALSE
- >> ppsp_impl_ack_serv_msgs_comp

[Called By]

- >> ppsp_impl_serv_rmsg_hdlr

ppsp_impl_prc_serv_msgs_pack (Thumb, 76 bytes, Stack size 24 bytes, ppsp_impl.o(i.ppsp_impl_prc_serv_msgs_pack))
[Stack]

- Max Depth = 128
- Call Chain = ppsp_impl_prc_serv_msgs_pack ⇒ ppsp_impl_psh_prog_data ⇒ hal_flash_write ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x

[Calls]

- >> ppsp_impl_psh_prog_data
- >> ppsp_impl_ack_serv_msgs_pack

[Called By]

- >> ppsp_impl_serv_rmsg_hdlr

ppsp_impl_prc_serv_msgs_rand (Thumb, 114 bytes, Stack size 72 bytes, ppsp_impl.o(i.ppsp_impl_prc_serv_msgs_rand))
[Stack]

- Max Depth = 112
- Call Chain = ppsp_impl_prc_serv_msgs_rand ⇒ ppsp_impl_new_msgs_raws

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_mem_free (via Veneer)
- >> ppsp_impl_new_msgs_raws

[Called By]

- >> ppsp_impl_serv_rmsg_hdlr

ppsp_impl_prc_serv_msgs_upda (Thumb, 220 bytes, Stack size 24 bytes, ppsp_impl.o(i.ppsp_impl_prc_serv_msgs_upda))
[Stack]

- Max Depth = 232
- Call Chain = ppsp_impl_prc_serv_msgs_upda ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf
- >> hal_flash_erase_sector (via Veneer)
- >> osal_memcpy (via Veneer)
- >> ppsp_impl_ack_serv_msgs_upda

[Called By]

- >> ppsp_impl_serv_rmsg_hdlr

ppsp_impl_psh_prog_data (Thumb, 58 bytes, Stack size 8 bytes, ppsp_impl.o(i.ppsp_impl_psh_prog_data))
[Stack]

- Max Depth = 104
- Call Chain = ppsp_impl_psh_prog_data ⇒ hal_flash_write ⇒ _spif_wait_nobusy_x ⇒ _spif_read_status_reg_x

[Calls]

- >> hal_flash_write (via Veneer)

[Called By]

- >> ppsp_impl_prc_serv_msgs_pack
- >> ppsp_impl_prc_serv_msgs_comp

ppsp_impl_serv_rmsg_hdlr (Thumb, 198 bytes, Stack size 24 bytes, ppsp_impl.o(i.ppsp_impl_serv_rmsg_hdlr))
[Stack]

- Max Depth = 256
- Call Chain = ppsp_impl_serv_rmsg_hdlr ⇒ ppsp_impl_prc_serv_msgs_upda ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> ppsp_impl_prc_serv_msgs_upda
- >> ppsp_impl_prc_serv_msgs_rand
- >> ppsp_impl_prc_serv_msgs_pack
- >> ppsp_impl_prc_serv_msgs_comp
- >> ppsp_impl_chk_msgs_vali
- >> ppsp_impl_ack_serv_msgs_vers
- >> ppsp_impl_ack_serv_msgs_verf
- >> stop_enter_power_off_mode

[Address Reference Count : 1]

- ppsp_impl.o(i.ppsp_impl_reg_serv_appl)

ppsp_impl_reset_appCb (Thumb, 16 bytes, Stack size 8 bytes, ota_task.o(i.ppsp_impl_reset_appCb))
[Stack]

- Max Depth = 8
- Call Chain = ppsp_impl_reset_appCb

[Calls]

- >> osal_start_timerEx (via Veneer)

[Address Reference Count : 1]

- ota_task.o(.data)

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

- hiddev.o(i.HidDev_Init)

hidDevBondCount (Thumb, 22 bytes, Stack size 8 bytes, hiddev.o(i.hidDevBondCount))
[Stack]

- Max Depth = 40
- Call Chain = hidDevBondCount ⇒ GAPBondMgr_GetParameter ⇒ gapBondMgrBondTotal

[Calls]

- >> GAPBondMgr_GetParameter

[Called By]

- >> HidDev_Report
- >> hidDevDisconnected

hidDevDisconnected (Thumb, 96 bytes, Stack size 24 bytes, hiddev.o(i.hidDevDisconnected))
[Stack]

- Max Depth = 64
- Call Chain = hidDevDisconnected ⇒ hidDevBondCount ⇒ GAPBondMgr_GetParameter ⇒ gapBondMgrBondTotal

[Calls]

- >> osal_stop_timerEx (via Veneer)
- >> osal_memset (via Veneer)
- >> Batt_HandleConnStatusCB
- >> GATT_FindHandle
- >> GATTServApp_InitCharCfg
- >> hidDevBondCount

[Called By]

- >> hidDevGapStateCB

hidDevInitialAdvertising (Thumb, 60 bytes, Stack size 8 bytes, hiddev.o(i.hidDevInitialAdvertising))
[Stack]

- Max Depth = 296
- Call Chain = hidDevInitialAdvertising ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> GAPRole_SetParameter
- >> GAP_SetParamValue

[Called By]

- >> HidDev_Report
- >> hidDevGapStateCB

hidDevPairStateCB (Thumb, 66 bytes, Stack size 16 bytes, hiddev.o(i.hidDevPairStateCB))
[Stack]

- Max Depth = 224
- Call Chain = hidDevPairStateCB ⇒ dbg_printf ⇒ log_vsprintf ⇒ number

[Calls]

- >> dbg_printf

[Address Reference Count : 1]

- hiddev.o(.constdata)

hidDevRptByHandle (Thumb, 42 bytes, Stack size 8 bytes, hiddev.o(i.hidDevRptByHandle))
[Stack]

- Max Depth = 8
- Call Chain = hidDevRptByHandle

[Called By]

- >> HidDev_WriteAttrCB
- >> HidDev_ReadAttrCB

hidDevSendReport (Thumb, 140 bytes, Stack size 40 bytes, hiddev.o(i.hidDevSendReport))
[Stack]

- Max Depth = 328
- Call Chain = hidDevSendReport ⇒ GAPRole_SetParameter ⇒ gapRole_startConnUpdate ⇒ L2CAP_ConnParamUpdateReq ⇒ l2capSendReq ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_memcpy (via Veneer)
- >> GAPRole_SetParameter
- >> GATT_Notification
- >> GATT_FindHandle
- >> GATTServApp_ReadCharCfg
- >> hidDevStartIdleTimer

[Called By]

- >> HidDev_Report

hidDevStartIdleTimer (Thumb, 22 bytes, Stack size 8 bytes, hiddev.o(i.hidDevStartIdleTimer))
[Stack]

- Max Depth = 8
- Call Chain = hidDevStartIdleTimer

[Calls]

- >> osal_start_timerEx (via Veneer)

[Called By]

- >> HidDev_ProcessEvent
- >> HidDev_WriteAttrCB
- >> HidDev_ReadAttrCB
- >> hidDevSendReport

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

- hiddev.o(.data)

hidKbdRptCB (Thumb, 62 bytes, Stack size 24 bytes, hiddev.o(i.hidKbdRptCB))
[Stack]

- Max Depth = 40
- Call Chain = hidKbdRptCB ⇒ HidKbd_GetParameter

[Calls]

- >> HidKbd_SetParameter
- >> HidKbd_GetParameter

[Address Reference Count : 1]

- hiddev.o(.data)

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

- >> wakeup_init1
- >> _clk_apply_setting1

_clk_apply_setting1 (Thumb, 250 bytes, Stack size 48 bytes, patch.o(i._clk_apply_setting1))
[Stack]

- Max Depth = 48
- Call Chain = _clk_apply_setting1

[Calls]

- >> NVIC_EnableIRQ

[Called By]

- >> clk_init

check_16MXtal_by_rcTracking (Thumb, 316 bytes, Stack size 24 bytes, patch.o(i.check_16MXtal_by_rcTracking))
[Stack]

- Max Depth = 24
- Call Chain = check_16MXtal_by_rcTracking

[Calls]

- >> WaitRTCCount (via Veneer)
- >> set_sleep_flag (via Veneer)
- >> hal_pwrmgr_enter_sleep_rtc_reset
- >> rtc_get_counter (via Veneer)

[Called By]

- >> wakeup_init1

check_96MXtal_by_rcTracking (Thumb, 246 bytes, Stack size 24 bytes, patch.o(i.check_96MXtal_by_rcTracking))
[Stack]

- Max Depth = 24
- Call Chain = check_96MXtal_by_rcTracking

[Calls]

- >> WaitRTCCount (via Veneer)

[Called By]

- >> wakeup_init1

read_LL_remainder_time1 (Thumb, 34 bytes, Stack size 8 bytes, patch.o(i.read_LL_remainder_time1))
[Stack]

- Max Depth = 8
- Call Chain = read_LL_remainder_time1

[Calls]

- >> read_current_fine_time (via Veneer)

[Called By]

- >> sysClockChangeAllow

read_TIM5_remainder_timer (Thumb, 8 bytes, Stack size 0 bytes, patch.o(i.read_TIM5_remainder_timer))
[Called By]

- >> config_RTC1

rf_phy_dtm_init (Thumb, 40 bytes, Stack size 8 bytes, rf_phy_driver.o(i.rf_phy_dtm_init))
[Stack]

- Max Depth = 8
- Call Chain = rf_phy_dtm_init

[Calls]

- >> set_timer (via Veneer)

[Called By]

- >> rf_phy_dtm_ext_tx_singleTone

rf_phy_dtm_stop (Thumb, 36 bytes, Stack size 0 bytes, rf_phy_driver.o(i.rf_phy_dtm_stop))
[Called By]

- >> rf_phy_dtm_ext_tx_singleTone

gapSendDeviceInitDoneEvent (Thumb, 64 bytes, Stack size 16 bytes, gap_configmgr.o(i.gapSendDeviceInitDoneEvent))
[Stack]

- Max Depth = 16
- Call Chain = gapSendDeviceInitDoneEvent

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> gapReadBufSizeCmdStatus
- >> gapReadBD_ADDRStatus

disconnectNext (Thumb, 26 bytes, Stack size 8 bytes, gap_linkmgr.o(i.disconnectNext))
[Stack]

- Max Depth = 28
- Call Chain = disconnectNext ⇒ linkDB_FindFirst

[Calls]

- >> HCI_DisconnectCmd (via Veneer)
- >> linkDB_FindFirst

[Called By]

- >> GAP_TerminateLinkReq
- >> gapProcessDisconnectCompleteEvt
- >> gapProcessConnectionCompleteEvt

gapFreeAuthLink (Thumb, 68 bytes, Stack size 16 bytes, gap_linkmgr.o(i.gapFreeAuthLink))
[Stack]

- Max Depth = 16
- Call Chain = gapFreeAuthLink

[Calls]

- >> osal_mem_free (via Veneer)

[Called By]

- >> GAP_Authenticate
- >> gapProcessDisconnectCompleteEvt
- >> sendAuthEvent

sendAuthEvent (Thumb, 234 bytes, Stack size 40 bytes, gap_linkmgr.o(i.sendAuthEvent))
[Stack]

- Max Depth = 56
- Call Chain = sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> linkDB_Find
- >> GAP_GetParamValue
- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)
- >> gapFreeAuthLink

[Called By]

- >> gapPairingCompleteCB

sendTerminateEvent (Thumb, 42 bytes, Stack size 24 bytes, gap_linkmgr.o(i.sendTerminateEvent))
[Stack]

- Max Depth = 24
- Call Chain = sendTerminateEvent

[Calls]

- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)

[Called By]

- >> gapProcessDisconnectCompleteEvt
- >> gapProcessConnectionCompleteEvt

gapAllocAdvRecs (Thumb, 74 bytes, Stack size 16 bytes, gap_peridevmgr.o(i.gapAllocAdvRecs))
[Stack]

- Max Depth = 16
- Call Chain = gapAllocAdvRecs

[Calls]

- >> osal_memset (via Veneer)
- >> osal_mem_free (via Veneer)
- >> osal_mem_alloc (via Veneer)

[Called By]

- >> GAP_PeriDevMgrInit

gapFreeAdvertState (Thumb, 20 bytes, Stack size 8 bytes, gap_peridevmgr.o(i.gapFreeAdvertState))
[Stack]

- Max Depth = 8
- Call Chain = gapFreeAdvertState

[Calls]

- >> osal_mem_free (via Veneer)

[Called By]

- >> GAP_MakeDiscoverable
- >> gapWriteAdvEnableStatus
- >> gapSendMakeDiscEvent
- >> gapProcessAdvertisingEvt

gapPeriProcessHCICmdCompleteEvt (Thumb, 130 bytes, Stack size 8 bytes, gap_peridevmgr.o(i.gapPeriProcessHCICmdCompleteEvt))
[Stack]

- Max Depth = 84
- Call Chain = gapPeriProcessHCICmdCompleteEvt ⇒ gapWriteAdvEnableStatus ⇒ isLimitedDiscoverableMode ⇒ gapFindADType

[Calls]

- >> __ARM_common_switch8 (via Veneer)
- >> gapWriteAdvEnableStatus
- >> gapWriteAdvDataStatus
- >> gapSetAdvParamsStatus

[Address Reference Count : 1]

- gap_peridevmgr.o(.data)

gapProcessAdvertisingEvt (Thumb, 108 bytes, Stack size 16 bytes, gap_peridevmgr.o(i.gapProcessAdvertisingEvt))
[Stack]

- Max Depth = 32
- Call Chain = gapProcessAdvertisingEvt ⇒ GAP_EndDiscoverable

[Calls]

- >> osal_stop_timerEx (via Veneer)
- >> osal_start_timerEx (via Veneer)
- >> GAP_EndDiscoverable
- >> gapFreeAdvertState

[Address Reference Count : 1]

- gap_peridevmgr.o(.data)

gapSendMakeDiscEvent (Thumb, 54 bytes, Stack size 16 bytes, gap_peridevmgr.o(i.gapSendMakeDiscEvent))
[Stack]

- Max Depth = 24
- Call Chain = gapSendMakeDiscEvent ⇒ gapFreeAdvertState

[Calls]

- >> osal_msg_send (via Veneer)
- >> osal_msg_allocate (via Veneer)
- >> gapFreeAdvertState

[Called By]

- >> gapWriteAdvEnableStatus
- >> gapSetAdvParamsStatus

isLimitedDiscoverableMode (Thumb, 40 bytes, Stack size 8 bytes, gap_peridevmgr.o(i.isLimitedDiscoverableMode))
[Stack]

- Max Depth = 44
- Call Chain = isLimitedDiscoverableMode ⇒ gapFindADType

[Calls]

- >> gapFindADType

[Called By]

- >> gapWriteAdvEnableStatus
- >> gapSetAdvParams

gapProcessHCICmdCompleteEvt (Thumb, 172 bytes, Stack size 16 bytes, gap_task.o(i.gapProcessHCICmdCompleteEvt))
[Stack]

- Max Depth = 48
- Call Chain = gapProcessHCICmdCompleteEvt ⇒ gapReadBD_ADDRStatus ⇒ gapSendDeviceInitDoneEvent

[Calls]

- >> gapReadBufSizeCmdStatus
- >> gapReadBD_ADDRStatus
- >> gapProcessRandomAddrComplete

[Called By]

- >> gapProcessOSALMsg

gapProcessOSALMsg (Thumb, 190 bytes, Stack size 16 bytes, gap_task.o(i.gapProcessOSALMsg))
[Stack]

- Max Depth = 200
- Call Chain = gapProcessOSALMsg ⇒ L2CAP_CmdReject ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> L2CAP_CmdReject
- >> gapProcessHCICmdCompleteEvt
- >> gapProcessDisconnectCompleteEvt
- >> gapProcessConnectionCompleteEvt
- >> gapProcessConnUpdateCompleteEvt

[Called By]

- >> GAP_ProcessEvent

gattFindServerInfo (Thumb, 38 bytes, Stack size 12 bytes, gatt_server.o(i.gattFindServerInfo))
[Stack]

- Max Depth = 12
- Call Chain = gattFindServerInfo

[Called By]

- >> gattServerProcessMsgCB
- >> gattServerHandleConnStatusCB
- >> gattGetServerStatus

gattGetServerStatus (Thumb, 44 bytes, Stack size 8 bytes, gatt_server.o(i.gattGetServerStatus))
[Stack]

- Max Depth = 20
- Call Chain = gattGetServerStatus ⇒ gattFindServerInfo

[Calls]

- >> gattFindServerInfo

[Called By]

- >> GATT_Notification
- >> GATT_Indication

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

- gatt_server.o(.constdata)

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

- gatt_server.o(.constdata)

gattProcessFindByTypeValueReq (Thumb, 44 bytes, Stack size 8 bytes, gatt_server.o(i.gattProcessFindByTypeValueReq))
[Stack]

- Max Depth = 96
- Call Chain = gattProcessFindByTypeValueReq ⇒ GATT_FindHandleUUID ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATT_FindHandleUUID

[Address Reference Count : 1]

- gatt_server.o(.constdata)

gattProcessFindInfoReq (Thumb, 226 bytes, Stack size 56 bytes, gatt_server.o(i.gattProcessFindInfoReq))
[Stack]

- Max Depth = 308
- Call Chain = gattProcessFindInfoReq ⇒ ATT_FindInfoRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_memcpy (via Veneer)
- >> GATT_FindHandleUUID
- >> ATT_FindInfoRsp

[Address Reference Count : 1]

- gatt_server.o(.constdata)

gattProcessReadByGrpTypeReq (Thumb, 68 bytes, Stack size 16 bytes, gatt_server.o(i.gattProcessReadByGrpTypeReq))
[Stack]

- Max Depth = 104
- Call Chain = gattProcessReadByGrpTypeReq ⇒ GATT_FindHandleUUID ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATT_FindHandleUUID
- >> ATT_CompareUUID

[Address Reference Count : 1]

- gatt_server.o(.constdata)

gattProcessReadByTypeReq (Thumb, 44 bytes, Stack size 8 bytes, gatt_server.o(i.gattProcessReadByTypeReq))
[Stack]

- Max Depth = 96
- Call Chain = gattProcessReadByTypeReq ⇒ GATT_FindHandleUUID ⇒ ATT_CompareUUID ⇒ ATT_ConvertUUIDto128

[Calls]

- >> GATT_FindHandleUUID

[Address Reference Count : 1]

- gatt_server.o(.constdata)

gattProcessReadMultiReq (Thumb, 72 bytes, Stack size 24 bytes, gatt_server.o(i.gattProcessReadMultiReq))
[Stack]

- Max Depth = 60
- Call Chain = gattProcessReadMultiReq ⇒ GATT_VerifyReadPermissions ⇒ linkDB_Authen ⇒ linkDB_Find

[Calls]

- >> GATT_VerifyReadPermissions
- >> GATT_FindHandle

[Address Reference Count : 1]

- gatt_server.o(.constdata)

gattProcessReadReq (Thumb, 30 bytes, Stack size 8 bytes, gatt_server.o(i.gattProcessReadReq))
[Stack]

- Max Depth = 44
- Call Chain = gattProcessReadReq ⇒ GATT_VerifyReadPermissions ⇒ linkDB_Authen ⇒ linkDB_Find

[Calls]

- >> GATT_VerifyReadPermissions
- >> GATT_FindHandle

[Address Reference Count : 1]

- gatt_server.o(.constdata)

gattProcessWriteReq (Thumb, 34 bytes, Stack size 16 bytes, gatt_server.o(i.gattProcessWriteReq))
[Stack]

- Max Depth = 52
- Call Chain = gattProcessWriteReq ⇒ GATT_VerifyWritePermissions ⇒ linkDB_Authen ⇒ linkDB_Find

[Calls]

- >> GATT_FindHandle
- >> GATT_VerifyWritePermissions

[Address Reference Count : 1]

- gatt_server.o(.constdata)

gattResetServerInfo (Thumb, 16 bytes, Stack size 8 bytes, gatt_server.o(i.gattResetServerInfo))
[Stack]

- Max Depth = 16
- Call Chain = gattResetServerInfo ⇒ gattStopTimer

[Calls]

- >> gattStopTimer

[Called By]

- >> gattServerProcessMsgCB
- >> gattServerHandleConnStatusCB

gattServerHandleConnStatusCB (Thumb, 122 bytes, Stack size 24 bytes, gatt_server.o(i.gattServerHandleConnStatusCB))
[Stack]

- Max Depth = 64
- Call Chain = gattServerHandleConnStatusCB ⇒ gattNotifyEvent

[Calls]

- >> linkDB_State
- >> gattNotifyEvent
- >> gattResetServerInfo
- >> gattFindServerInfo

[Address Reference Count : 1]

- gatt_server.o(i.GATT_InitServer)

gattServerHandleTimerCB (Thumb, 42 bytes, Stack size 16 bytes, gatt_server.o(i.gattServerHandleTimerCB))
[Stack]

- Max Depth = 56
- Call Chain = gattServerHandleTimerCB ⇒ gattNotifyEvent

[Calls]

- >> gattNotifyEvent

[Address Reference Count : 1]

- gatt_server.o(i.GATT_Indication)

gattServerProcessMsgCB (Thumb, 200 bytes, Stack size 288 bytes, gatt_server.o(i.gattServerProcessMsgCB))
[Stack]

- Max Depth = 540
- Call Chain = gattServerProcessMsgCB ⇒ ATT_ErrorRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> ATT_ErrorRsp
- >> gattNotifyEvent
- >> gattResetServerInfo
- >> gattFindServerInfo

[Address Reference Count : 1]

- gatt_server.o(i.GATT_InitServer)

gattServiceLastHandle (Thumb, 24 bytes, Stack size 4 bytes, gatt_server.o(i.gattServiceLastHandle))
[Stack]

- Max Depth = 4
- Call Chain = gattServiceLastHandle

[Calls]

- >> GATT_ServiceNumAttrs

[Called By]

- >> GATT_FindNextAttr

gattProcessRxData (Thumb, 142 bytes, Stack size 32 bytes, gatt_task.o(i.gattProcessRxData))
[Stack]

- Max Depth = 284
- Call Chain = gattProcessRxData ⇒ ATT_ErrorRsp ⇒ attSendMsg ⇒ SM_GenerateAuthenSig ⇒ sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> ATT_ErrorRsp
- >> ATT_ParsePacket
- >> osal_bm_free (via Veneer)
- >> L2CAP_HostNumCompletedPkts

[Called By]

- >> GATT_ProcessEvent

l2capProcessRsp (Thumb, 104 bytes, Stack size 56 bytes, l2cap_task.o(i.l2capProcessRsp))
[Stack]

- Max Depth = 96
- Call Chain = l2capProcessRsp ⇒ l2capNotifySignal

[Calls]

- >> l2capStopTimer
- >> l2capParseParamUpdateRsp
- >> l2capParseCmdReject
- >> l2capNotifySignal
- >> l2capFreeChannel
- >> l2capFindLocalId

[Called By]

- >> l2capProcessSignal

l2capProcessRxData (Thumb, 142 bytes, Stack size 32 bytes, l2cap_task.o(i.l2capProcessRxData))
[Stack]

- Max Depth = 256
- Call Chain = l2capProcessRxData ⇒ l2capProcessSignal ⇒ L2CAP_CmdReject ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_bm_free (via Veneer)
- >> l2capParsePacket
- >> l2capNotifyData
- >> l2capProcessSignal
- >> L2CAP_HostNumCompletedPkts

[Called By]

- >> L2CAP_ProcessEvent

l2capProcessSignal (Thumb, 164 bytes, Stack size 40 bytes, l2cap_task.o(i.l2capProcessSignal))
[Stack]

- Max Depth = 224
- Call Chain = l2capProcessSignal ⇒ L2CAP_CmdReject ⇒ l2capSendCmd ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> l2capParseSignalHdr
- >> l2capNotifySignal
- >> l2capHandleRxError
- >> L2CAP_ParseParamUpdateReq
- >> l2capProcessRsp
- >> L2CAP_CmdReject

[Called By]

- >> l2capProcessRxData

reportStatusChange (Thumb, 40 bytes, Stack size 24 bytes, linkdb.o(i.reportStatusChange))
[Stack]

- Max Depth = 24
- Call Chain = reportStatusChange

[Called By]

- >> linkDB_Remove
- >> linkDB_Add

smResponderProcessLTKReq (Thumb, 230 bytes, Stack size 64 bytes, sm_rsppairing.o(i.smResponderProcessLTKReq))
[Stack]

- Max Depth = 192
- Call Chain = smResponderProcessLTKReq ⇒ smEndPairing ⇒ gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_memcmp (via Veneer)
- >> linkDB_Find
- >> HCI_LE_LtkReqReplyCmd
- >> HCI_LE_LtkReqNegReplyCmd
- >> sm_s1
- >> smEndPairing
- >> smDetermineKeySize

[Address Reference Count : 1]

- sm_rsppairing.o(.data)

smResponderSendNextKeyInfo (Thumb, 448 bytes, Stack size 32 bytes, sm_rsppairing.o(i.smResponderSendNextKeyInfo))
[Stack]

- Max Depth = 216
- Call Chain = smResponderSendNextKeyInfo ⇒ smPairingSendMasterID ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_memset (via Veneer)
- >> linkDB_Find
- >> osal_mem_alloc (via Veneer)
- >> osal_rand (via Veneer)
- >> osal_CbTimerStart (via Veneer)
- >> __ARM_common_switch8 (via Veneer)
- >> smPairingSendSingingInfo
- >> smPairingSendMasterID
- >> smPairingSendIdentityInfo
- >> smPairingSendIdentityAddrInfo
- >> smPairingSendEncInfo
- >> smDetermineKeySize
- >> smGenerateRandBuf
- >> gapGetSRK
- >> gapGetIRK
- >> gapGetDevAddressMode
- >> gapGetDevAddress

[Address Reference Count : 1]

- sm_rsppairing.o(.data)

smpResponderProcessEncryptionInformation (Thumb, 84 bytes, Stack size 24 bytes, sm_rsppairing.o(i.smpResponderProcessEncryptionInformation))
[Stack]

- Max Depth = 24
- Call Chain = smpResponderProcessEncryptionInformation

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> smDetermineKeySize

[Called By]

- >> smpResponderProcessIncoming

smpResponderProcessIdentityAddrInfo (Thumb, 72 bytes, Stack size 16 bytes, sm_rsppairing.o(i.smpResponderProcessIdentityAddrInfo))
[Stack]

- Max Depth = 144
- Call Chain = smpResponderProcessIdentityAddrInfo ⇒ smEndPairing ⇒ gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> osal_memcpy (via Veneer)
- >> smEndPairing

[Called By]

- >> smpResponderProcessIncoming

smpResponderProcessIdentityInfo (Thumb, 70 bytes, Stack size 16 bytes, sm_rsppairing.o(i.smpResponderProcessIdentityInfo))
[Stack]

- Max Depth = 16
- Call Chain = smpResponderProcessIdentityInfo

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_mem_alloc (via Veneer)

[Called By]

- >> smpResponderProcessIncoming

smpResponderProcessIncoming (Thumb, 178 bytes, Stack size 32 bytes, sm_rsppairing.o(i.smpResponderProcessIncoming))
[Stack]

- Max Depth = 288
- Call Chain = smpResponderProcessIncoming ⇒ smpResponderProcessPairingRandom ⇒ sm_c1 ⇒ sm_c1new ⇒ sm_xor

[Calls]

- >> __ARM_common_switch8 (via Veneer)
- >> smEndPairing
- >> smAuthReqToUint8
- >> smpResponderProcessPairingReq
- >> smpResponderProcessSigningInfo
- >> smpResponderProcessPairingRandom
- >> smpResponderProcessPairingConfirm
- >> smpResponderProcessMasterID
- >> smpResponderProcessIdentityInfo
- >> smpResponderProcessIdentityAddrInfo
- >> smpResponderProcessEncryptionInformation
- >> gapSendPairingReqEvent

[Address Reference Count : 1]

- sm_rsppairing.o(.data)

smpResponderProcessMasterID (Thumb, 100 bytes, Stack size 16 bytes, sm_rsppairing.o(i.smpResponderProcessMasterID))
[Stack]

- Max Depth = 144
- Call Chain = smpResponderProcessMasterID ⇒ smEndPairing ⇒ gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> osal_memcpy (via Veneer)
- >> smEndPairing

[Called By]

- >> smpResponderProcessIncoming

smpResponderProcessPairingConfirm (Thumb, 76 bytes, Stack size 24 bytes, sm_rsppairing.o(i.smpResponderProcessPairingConfirm))
[Stack]

- Max Depth = 240
- Call Chain = smpResponderProcessPairingConfirm ⇒ sm_c1 ⇒ sm_c1new ⇒ sm_xor

[Calls]

- >> osal_memcpy (via Veneer)
- >> sm_c1
- >> smGenerateConfirm

[Called By]

- >> smpResponderProcessIncoming

smpResponderProcessPairingRandom (Thumb, 92 bytes, Stack size 40 bytes, sm_rsppairing.o(i.smpResponderProcessPairingRandom))
[Stack]

- Max Depth = 256
- Call Chain = smpResponderProcessPairingRandom ⇒ sm_c1 ⇒ sm_c1new ⇒ sm_xor

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_memcmp (via Veneer)
- >> sm_c1
- >> smGenerateRandMsg

[Called By]

- >> smpResponderProcessIncoming

smpResponderProcessSigningInfo (Thumb, 86 bytes, Stack size 24 bytes, sm_rsppairing.o(i.smpResponderProcessSigningInfo))
[Stack]

- Max Depth = 152
- Call Chain = smpResponderProcessSigningInfo ⇒ smEndPairing ⇒ gapPairingCompleteCB ⇒ sendAuthEvent ⇒ gapFreeAuthLink

[Calls]

- >> osal_memcpy (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> smEndPairing

[Called By]

- >> smpResponderProcessIncoming

smProcessOSALMsg (Thumb, 134 bytes, Stack size 16 bytes, sm_task.o(i.smProcessOSALMsg))
[Stack]

- Max Depth = 224
- Call Chain = smProcessOSALMsg ⇒ smProcessDataMsg ⇒ smSendFailAndEnd ⇒ smSendSMMsg ⇒ L2CAP_SendData ⇒ l2capEncapSendData ⇒ l2capPktToSegmentBuff ⇒ L2CAP_Fragment_bm_alloc

[Calls]

- >> osal_bm_free (via Veneer)
- >> smProcessRandComplete
- >> smProcessEncryptChange
- >> smProcessDataMsg

[Called By]

- >> SM_ProcessEvent

l2capHandleTimerCB (Thumb, 40 bytes, Stack size 24 bytes, l2cap_util.o(i.l2capHandleTimerCB))
[Stack]

- Max Depth = 64
- Call Chain = l2capHandleTimerCB ⇒ l2capNotifySignal

[Calls]

- >> l2capNotifySignal

[Address Reference Count : 1]

- l2cap_util.o(i.l2capSendReq)

generate_subkey (Thumb, 148 bytes, Stack size 32 bytes, sm_mgr.o(i.generate_subkey))
[Stack]

- Max Depth = 44
- Call Chain = generate_subkey ⇒ xor_128

[Calls]

- >> osal_memset (via Veneer)
- >> osal_mem_free (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> xor_128
- >> smEncryptLocal
- >> leftshift_onebit

[Called By]

- >> sm_CMAC

leftshift_onebit (Thumb, 28 bytes, Stack size 8 bytes, sm_mgr.o(i.leftshift_onebit))
[Stack]

- Max Depth = 8
- Call Chain = leftshift_onebit

[Called By]

- >> generate_subkey

smEncrypt (Thumb, 16 bytes, Stack size 8 bytes, sm_mgr.o(i.smEncrypt))
[Stack]

- Max Depth = 8
- Call Chain = smEncrypt

[Calls]

- >> LL_Encrypt (via Veneer)

[Called By]

- >> sm_s1
- >> sm_c1new
- >> sm_ah

smEncryptLocal (Thumb, 8 bytes, Stack size 8 bytes, sm_mgr.o(i.smEncryptLocal))
[Stack]

- Max Depth = 8
- Call Chain = smEncryptLocal

[Calls]

- >> LL_Encrypt (via Veneer)

[Called By]

- >> sm_CMAC
- >> generate_subkey

sm_CMAC (Thumb, 340 bytes, Stack size 64 bytes, sm_mgr.o(i.sm_CMAC))
[Stack]

- Max Depth = 108
- Call Chain = sm_CMAC ⇒ generate_subkey ⇒ xor_128

[Calls]

- >> osal_memset (via Veneer)
- >> osal_memcpy (via Veneer)
- >> osal_mem_free (via Veneer)
- >> osal_mem_alloc (via Veneer)
- >> xor_128
- >> smEncryptLocal
- >> generate_subkey

[Called By]

- >> SM_VerifyAuthenSig
- >> SM_GenerateAuthenSig

sm_xor (Thumb, 26 bytes, Stack size 8 bytes, sm_mgr.o(i.sm_xor))
[Stack]

- Max Depth = 8
- Call Chain = sm_xor

[Called By]

- >> sm_c1new

xor_128 (Thumb, 22 bytes, Stack size 12 bytes, sm_mgr.o(i.xor_128))
[Stack]

- Max Depth = 12
- Call Chain = xor_128

[Called By]

- >> sm_CMAC
- >> generate_subkey

smFreePairingParams (Thumb, 102 bytes, Stack size 16 bytes, sm_pairing.o(i.smFreePairingParams))
[Stack]

- Max Depth = 32
- Call Chain = smFreePairingParams ⇒ smStopRspTimer

[Calls]

- >> osal_mem_free (via Veneer)
- >> smStopRspTimer

[Called By]

- >> smLinkCheck
- >> smEndPairing
- >> SM_StartPairing

smSetPairingReqRsp (Thumb, 60 bytes, Stack size 16 bytes, sm_pairing.o(i.smSetPairingReqRsp))
[Stack]

- Max Depth = 24
- Call Chain = smSetPairingReqRsp ⇒ smUint8ToAuthReq

[Calls]

- >> osal_memset (via Veneer)
- >> smUint8ToAuthReq

[Called By]

- >> sm_c1
- >> smGeneratePairingReqRsp

smpProcessIncoming (Thumb, 72 bytes, Stack size 16 bytes, sm_pairing.o(i.smpProcessIncoming))
[Stack]

- Max Depth = 28
- Call Chain = smpProcessIncoming ⇒ linkDB_Find

[Calls]

- >> linkDB_Find

[Called By]

- >> smProcessDataMsg

### Undefined Global Symbols

__arm_fini_ (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By]

- >> __rt_lib_shutdown_fini