This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMS320F28075: How to get the maxim stack usage information from "call_graph.exe" or "ofd6x.exe"

Part Number: TMS320F28075


Tool/software: Code Composer Studio

Hi expert,

My customer is drafting documents based on their F28075 software. In this documents, they need to know the maxim stack usage. We wondering how to get this information since we are not very experienced on this.

Firstly, should we pick the maxim "WCS" value in the output of calling "C:\dir>ofd6x -x -g ex.out | call_graph"?

Secondly, will "stack usage" in CCS be a good method to get this infromation?

I really need you advice on this. Thanks!

Attached is our output:

Call Graph for XXX.out
**********************************************************************
_c_int00 : wcs = 34
|  __args_main : wcs = 34
|  |  _main : wcs = 32
|  |  |  _CLAConfigClaMemory : wcs = 4
|  |  |  |  ___memcpy_ff : wcs = 2
|  |  |  _CLAInitCpu1Cla1 : wcs = 2
|  |  |  _CaliDataRead : wcs = 24
|  |  |  |  _CaliDataCheck : wcs = 12
|  |  |  _Cpu2ClaVarsInit : wcs = 2
|  |  |  _EnableDog : wcs = 2
|  |  |  _Gpiocfg : wcs = 28
|  |  |  |  _GPIO_SetupPinOptions : wcs = 26
|  |  |  |  _InitECap1Gpio : wcs = 4
|  |  |  |  _InitECap2Gpio : wcs = 4
|  |  |  |  _InitECap3Gpio : wcs = 4
|  |  |  |  _InitECap4Gpio : wcs = 4
|  |  |  |  _InitECap5Gpio : wcs = 4
|  |  |  |  _InitEPwmGpio : wcs = 4
|  |  |  |  |  _InitEPwm10Gpio : wcs = 2
|  |  |  |  |  _InitEPwm11Gpio : wcs = 2
|  |  |  |  |  _InitEPwm2Gpio : wcs = 2
|  |  |  |  |  _InitEPwm3Gpio : wcs = 2
|  |  |  |  |  _InitEPwm6Gpio : wcs = 2
|  |  |  |  |  _InitEPwm7Gpio : wcs = 2
|  |  |  |  |  _InitEPwm8Gpio : wcs = 2
|  |  |  |  |  _InitEPwm9Gpio : wcs = 2
|  |  |  |  _InitGpio : wcs = 6
|  |  |  |  _InitGpioUsing : wcs = 2
|  |  |  |  _InitSciGpio : wcs = 2
|  |  |  _InitCLATask1Para : wcs = 2
|  |  |  _InitCPU : wcs = 4
|  |  |  |  _InitCpuTimers : wcs = 2
|  |  |  _InitInterComm : wcs = 20
|  |  |  |  _InterCommDataInit : wcs = 2
|  |  |  |  _SciCTblInfoInit : wcs = 2
|  |  |  |  _SciCTblInfoRegist : wcs = 18
|  |  |  |  |  _SciCTblRegist : wcs = 8
|  |  |  _InitInterrupt : wcs = 2
|  |  |  _InitPFC : wcs = 10
|  |  |  |  _InitILoop1Parameters : wcs = 8
|  |  |  |  _InitILoop2Parameters : wcs = 8
|  |  |  |  _InitILoop3Parameters : wcs = 8
|  |  |  |  _InitPFCFlag : wcs = 4
|  |  |  |  |  _ResetPFCStateMembers : wcs = 2
|  |  |  |  |  _ResetstPFCFaultMembers : wcs = 2
|  |  |  |  |  _ResetstSCRCntlMembers : wcs = 2
|  |  |  |  _InitVLoopParameters : wcs = 8
|  |  |  _InitPIE : wcs = 4
|  |  |  |  _InitPieCtrl : wcs = 2
|  |  |  _InitPIETbl : wcs = 10
|  |  |  |  _InitPieVectTable : wcs = 8
|  |  |  _InitPwrMng : wcs = 18
|  |  |  |  _PwrAlloTblInfoRegist : wcs = 16
|  |  |  |  |  _PwrAlloTblRegist : wcs = 6
|  |  |  |  _PwrMngdataInit : wcs = 2
|  |  |  |  _PwrTblInfoInit : wcs = 2
|  |  |  |  _TrgTblInfoInit : wcs = 2
|  |  |  |  _TrgTblInfoRegist : wcs = 16
|  |  |  |  |  _TrgTblRegist : wcs = 8
|  |  |  _InitSystem : wcs = 18
|  |  |  |  _InitSysCtrl : wcs = 16
|  |  |  |  |  _DisableDog : wcs = 4
|  |  |  |  |  _GPIO_EnableUnbondedIOPullups : wcs = 6
|  |  |  |  |  |  _GPIO_EnableUnbondedIOPullupsFor100Pin : wcs = 2
|  |  |  |  |  |  _GPIO_EnableUnbondedIOPullupsFor176Pin : wcs = 2
|  |  |  |  |  _InitFlash : wcs = 2
|  |  |  |  |  _InitPeripheralClocks : wcs = 2
|  |  |  |  |  _InitSysPll : wcs = 14
|  |  |  |  |  |  _SysIntOsc1Sel : wcs = 2
|  |  |  |  |  |  _SysIntOsc2Sel : wcs = 2
|  |  |  |  |  |  _SysXtalOscSel : wcs = 2
|  |  |  |  |  ___memcpy_ff : wcs = 2
|  |  |  _MainLoop : wcs = 30
|  |  |  |  _CaliHandleTrans : wcs = 28
|  |  |  |  |  _DisableDog : wcs = 4
|  |  |  |  |  _GenerateChecksum : wcs = 10
|  |  |  |  |  _HandleCaliRecv : wcs = 14
|  |  |  |  |  |  _CalCrc8Value : wcs = 8
|  |  |  |  |  |  _DisableCpuTimers : wcs = 2
|  |  |  |  |  |  _DisableDog : wcs = 4
|  |  |  |  |  |  _RemoveFlashDrv : wcs = 6
|  |  |  |  |  _HandleCaliSend : wcs = 14
|  |  |  |  |  |  _GenerateChecksum : wcs = 10
|  |  |  |  _ChargerIntputOCP : wcs = 10
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _CoolantLossCheck : wcs = 10
|  |  |  |  |  _GetPFCScrTemperature : wcs = 6
|  |  |  |  _EightHalfAcCycleProcess : wcs = 8
|  |  |  |  |  _HandleACReport : wcs = 4
|  |  |  |  |  _PFCKmSqCalc : wcs = 6
|  |  |  |  _FlagSettingByVpeak : wcs = 6
|  |  |  |  _GetADCRlt : wcs = 2
|  |  |  |  _GetSysMngRef : wcs = 8
|  |  |  |  |  _HandleSystemRefSetting : wcs = 6
|  |  |  |  _HandleCalibration : wcs = 4
|  |  |  |  _HandleCtrlPwmRationalSetting : wcs = 8
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _HandleDCReport : wcs = 4
|  |  |  |  _HandleInLock : wcs = 2
|  |  |  |  _HandleMstIoRefSetting : wcs = 4
|  |  |  |  _HandlePowerDerating : wcs = 4
|  |  |  |  _HandlePwrDivide : wcs = 12
|  |  |  |  |  _HandlePwrAllo : wcs = 10
|  |  |  |  _HandleSciaRecv : wcs = 16
|  |  |  |  |  _GenerateChecksum : wcs = 10
|  |  |  |  |  _HandleSciaRecvInfo : wcs = 6
|  |  |  |  |  _HandleSciaRxFrameDataCheck : wcs = 6
|  |  |  |  |  _InitSci : wcs = 2
|  |  |  |  _HandleSciaSend : wcs = 14
|  |  |  |  |  _GenerateChecksum : wcs = 10
|  |  |  |  |  _HandleSciaTxFrameDataCheck : wcs = 6
|  |  |  |  _HandleSlvIoRefSetting : wcs = 4
|  |  |  |  _HandleTimerSetting : wcs = 2
|  |  |  |  _JudgeCoolOTP : wcs = 10
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _JudgeIacRMSOverCurrnet : wcs = 12
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _JudgeIoutHWOCP : wcs = 8
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _JudgeIoutSW1OCP : wcs = 10
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _JudgeIoutSW2OCP : wcs = 10
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _JudgeLLCMosOTP : wcs = 12
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _JudgeLLCStatus : wcs = 2
|  |  |  |  _JudgeMstLLCReOffDly : wcs = 2
|  |  |  |  _JudgeMstLLCRsstDly : wcs = 2
|  |  |  |  _JudgeMstLLCSsDly : wcs = 2
|  |  |  |  _JudgeP12VOVP : wcs = 10
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _JudgeP12VUVP : wcs = 10
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _JudgePriOn : wcs = 2
|  |  |  |  _JudgeS6VOVP : wcs = 2
|  |  |  |  _JudgeS6VUVP : wcs = 2
|  |  |  |  _JudgeSlvLLCReOffDly : wcs = 2
|  |  |  |  _JudgeSlvLLCRsstDly : wcs = 2
|  |  |  |  _JudgeSlvLLCSsDly : wcs = 2
|  |  |  |  _JudgeVoutOVP : wcs = 10
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _LLC1RsntOCP : wcs = 8
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _LLC2RsntOCP : wcs = 8
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _LLCDeadZoneCalc : wcs = 4
|  |  |  |  _LLCOverCurrVoltReset : wcs = 2
|  |  |  |  _MstLLCFiniteStateMachine : wcs = 14
|  |  |  |  |  _HandleMstLLCDataResetting : wcs = 4
|  |  |  |  |  |  _PwrMngdataRst : wcs = 2
|  |  |  |  |  _JudgeVoutUVP : wcs = 12
|  |  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  _PFCOtpCheck : wcs = 10
|  |  |  |  |  _EvtIsMch : wcs = 6
|  |  |  |  |  _GetPFCChokeTemperature : wcs = 6
|  |  |  |  |  _GetPFCScrTemperature : wcs = 6
|  |  |  |  _PFCOutputFlagsSetting : wcs = 4
|  |  |  |  _PFCPhaseLoss : wcs = 4
|  |  |  |  _PowerRefSetting : wcs = 4
|  |  |  |  _PriOkSet : wcs = 2
|  |  |  |  _ResetLLCRSNT : wcs = 2
|  |  |  |  _ServiceDog : wcs = 2
|  |  |  |  _SlvLLCFiniteStateMachine : wcs = 4
|  |  |  |  |  _HandleSlvLLCDataResetting : wcs = 2
|  |  |  _Periphcfg : wcs = 16
|  |  |  |  _ConfigureADC : wcs = 14
|  |  |  |  |  _AdcSetMode : wcs = 12
|  |  |  |  |  |  _CalAdcINL : wcs = 4
|  |  |  |  |  _F28x_usDelay : wcs = ???
|  |  |  |  _InitCMPSS : wcs = 2
|  |  |  |  _InitECap : wcs = 2
|  |  |  |  _InitEPwmConfige : wcs = 2
|  |  |  |  _InitSci : wcs = 2
|  |  |  |  _InitScic : wcs = 2
|  |  |  |  _SetupADCEpwm : wcs = 6
|  |  |  _SCITblInfoInit : wcs = 2
|  |  |  _UnitInit : wcs = 2
|  _exit : wcs = 6
|  |  _abort : wcs = 2

The roots of the following graphs are functions that: 
- Are never called ... OR ...
- Are called indirectly and are not listed among the functions called
  indirectly in the configuration file specified with --i_cfg=file.
  Run "perldoc call_graph.pl" for more information.
======================================================================

_InitCaliData : wcs = 2

_ADCA1_ISR : wcs = 6

_ADCA2_ISR : wcs = 6

_ADCA3_ISR : wcs = 6

_ADCA4_ISR : wcs = 6

_ADCA_EVT_ISR : wcs = 6

_ADCB1_ISR : wcs = 6

_ADCB2_ISR : wcs = 6

_ADCB3_ISR : wcs = 6

_ADCB4_ISR : wcs = 6

_ADCB_EVT_ISR : wcs = 6

_ADCD1_ISR : wcs = 6

_ADCD2_ISR : wcs = 6

_ADCD3_ISR : wcs = 6

_ADCD4_ISR : wcs = 6

_ADCD_EVT_ISR : wcs = 6

_AUX_PLL_SLIP_ISR : wcs = 6

_AdcInt1Isr : wcs = 28
|  _CNTL_POSIPI_F_ASM : wcs = ???

_AdcInt2Isr : wcs = 40
|  _CNTL_POSIPI_F_ASM : wcs = ???

_AdcInt3Isr : wcs = 44
|  _CNTL_POSIPI_F_ASM : wcs = ???

_Area1Execute : wcs = 4

_Area1SetAvg : wcs = 4

_Area1toATrg : wcs = 4

_Area1toBTrg : wcs = 4

_AreaAExecute : wcs = 6

_AreaASetAvg : wcs = 4

_AreaAto1Trg : wcs = 4

_AreaBExecute : wcs = 8

_AreaBSetAvg : wcs = 8

_AreaBto1Trg : wcs = 2

_AreaCExecute : wcs = 6

_AreaCSetAvg : wcs = 4

_AreaXtoATrg : wcs = 4

_AreaXtoBTrg : wcs = 4

_AreaXtoCTrg : wcs = 4

_CANA0_ISR : wcs = 6

_CANA1_ISR : wcs = 6

_CANB0_ISR : wcs = 6

_CANB1_ISR : wcs = 6

_CLA1_1_ISR : wcs = 6

_CLA1_2_ISR : wcs = 6

_CLA1_3_ISR : wcs = 6

_CLA1_4_ISR : wcs = 6

_CLA1_5_ISR : wcs = 6

_CLA1_6_ISR : wcs = 6

_CLA1_7_ISR : wcs = 6

_CLA1_8_ISR : wcs = 6

_CLA_OVERFLOW_ISR : wcs = 6

_CLA_UNDERFLOW_ISR : wcs = 6

_CaliDataWrite : wcs = 142
|  _AutoCaliCoffB : wcs = 14
|  _AutoCaliCoffK : wcs = 10
|  _CaliDataHandle : wcs = 14
|  _DisableDog : wcs = 4

_Cla1Task1 : wcs = 2

_Cla1Task2 : wcs = 2

_Cla1Task3 : wcs = 6

_Cla1Task4 : wcs = 0

_Cla1Task5 : wcs = 0

_Cla1Task6 : wcs = 0

_Cla1Task7 : wcs = 0

_Cla1Task8 : wcs = 0

_ConfigCpuTimer : wcs = 10

_ControlLoopInitial : wcs = 2

_CsmUnlock : wcs = 2

_DATALOG_ISR : wcs = 6

_DMA_CH1_ISR : wcs = 6

_DMA_CH2_ISR : wcs = 6

_DMA_CH3_ISR : wcs = 6

_DMA_CH4_ISR : wcs = 6

_DMA_CH5_ISR : wcs = 6

_DMA_CH6_ISR : wcs = 6

_ECAP1_ISR : wcs = 6

_ECAP2_ISR : wcs = 6

_ECAP3_ISR : wcs = 6

_ECAP4_ISR : wcs = 6

_ECAP5_ISR : wcs = 6

_ECAP6_ISR : wcs = 6

_EMIF_ERROR_ISR : wcs = 6

_EMPTY_ISR : wcs = 6

_EMU_ISR : wcs = 6

_EPWM10_ISR : wcs = 6

_EPWM10_TZ_ISR : wcs = 6

_EPWM11_ISR : wcs = 6

_EPWM11_TZ_ISR : wcs = 6

_EPWM12_ISR : wcs = 6

_EPWM12_TZ_ISR : wcs = 6

_EPWM1_ISR : wcs = 6

_EPWM1_TZ_ISR : wcs = 6

_EPWM2_ISR : wcs = 6

_EPWM2_TZ_ISR : wcs = 6

_EPWM3_ISR : wcs = 6

_EPWM3_TZ_ISR : wcs = 6

_EPWM4_ISR : wcs = 6

_EPWM4_TZ_ISR : wcs = 6

_EPWM5_ISR : wcs = 6

_EPWM5_TZ_ISR : wcs = 6

_EPWM6_ISR : wcs = 6

_EPWM6_TZ_ISR : wcs = 6

_EPWM7_ISR : wcs = 6

_EPWM7_TZ_ISR : wcs = 6

_EPWM8_ISR : wcs = 6

_EPWM8_TZ_ISR : wcs = 6

_EPWM9_ISR : wcs = 6

_EPWM9_TZ_ISR : wcs = 6

_EQEP1_ISR : wcs = 6

_EQEP2_ISR : wcs = 6

_EQEP3_ISR : wcs = 6

_EnableInterrupts : wcs = 2

_Erase_CallFlashAPI : wcs = 56
|  _Fapi_checkFsmForReady : wcs = 2
|  _Fapi_doBlankCheck : wcs = 40
|  |  _Fapi_flushPipeline : wcs = 8
|  |  |  _Fapi_waitDelay : wcs = 4
|  |  __Fapi_loopRegionForValue : wcs = 20
|  |  |  _Fapi_isAddressEcc : wcs = 4
|  |  |  _Fapi_serviceWatchdogTimer : wcs = 2
|  _Fapi_getFsmStatus : wcs = 2
|  _Fapi_issueAsyncCommandWithAddress : wcs = 14
|  |  __Fapi_issueFsmCommand : wcs = 4
|  |  __Fapi_setupSectorsForWrite : wcs = 6
|  |  |  _Fapi_setupBankSectorEnable : wcs = 2
|  |  |  _Fapi_setupEepromSectorEnable : wcs = 2
|  _ServiceDog : wcs = 2

_FLASH_CORRECTABLE_ERROR_ISR : wcs = 6

_FPU_OVERFLOW_ISR : wcs = 6

_FPU_UNDERFLOW_ISR : wcs = 6

_FlashOff : wcs = 2

_GPIO_ReadPin : wcs = 8

_GPIO_SetupLock : wcs = 12

_GPIO_SetupPinMux : wcs = 18

_GPIO_SetupXINT1Gpio : wcs = 4

_GPIO_SetupXINT2Gpio : wcs = 4

_GPIO_SetupXINT3Gpio : wcs = 4

_GPIO_SetupXINT4Gpio : wcs = 4

_GPIO_SetupXINT5Gpio : wcs = 4

_GPIO_WritePin : wcs = 8

_HALT : wcs = 2

_HIB : wcs = 4
|  _DisablePeripheralClocks : wcs = 2

_I2CA_FIFO_ISR : wcs = 6

_I2CA_ISR : wcs = 6

_I2CB_FIFO_ISR : wcs = 6

_I2CB_ISR : wcs = 6

_IDLE : wcs = 2

_ILLEGAL_ISR : wcs = 6

_IPC0_ISR : wcs = 6

_IPC1_ISR : wcs = 6

_IPC2_ISR : wcs = 6

_IPC3_ISR : wcs = 6

_IniFLASH_CallFlashAPI : wcs = 146
|  _Fapi_initializeAPI : wcs = 6
|  _Fapi_setActiveFlashBank : wcs = 142
|  |  __Fapi_setupFlashStateMachine : wcs = 136
|  |  |  __Fapi_calculateOtpChecksum : wcs = 18
|  |  |  |  _Fapi_calculateFletcherChecksum : wcs = 12
|  |  |  __Fapi_divideUnsignedLong : wcs = 8
|  |  |  __Fapi_scaleCycleValues : wcs = 8
|  |  |  |  _Fapi_serviceWatchdogTimer : wcs = 2

_InitAPwm1Gpio : wcs = 2

_InitAuxPll : wcs = 18
|  _AuxAuxClkSel : wcs = 2
|  _AuxIntOsc2Sel : wcs = 2
|  _AuxXtalOscSel : wcs = 2

_InitECap6Gpio : wcs = 4

_InitECapGpio : wcs = 2

_InitEPwm12Gpio : wcs = 2

_InitEPwm1Gpio : wcs = 2

_InitEPwm4Gpio : wcs = 2

_InitEPwm5Gpio : wcs = 2

_IntFlgClr : wcs = 2

_MCBSPA_RX_ISR : wcs = 6

_MCBSPA_TX_ISR : wcs = 6

_MCBSPB_RX_ISR : wcs = 6

_MCBSPB_TX_ISR : wcs = 6

_NMI_ISR : wcs = 6

_NOTUSED_ISR : wcs = 6

_PIE_RESERVED_ISR : wcs = 6

_PerByteCalCRC8 : wcs = 6

_Programming_CallFlashAPI : wcs = 84
|  _Fapi_checkFsmForReady : wcs = 2
|  _Fapi_doBlankCheck : wcs = 40
|  |  <repeat ...>
|  _Fapi_getFsmStatus : wcs = 2
|  _Fapi_issueAsyncCommandWithAddress : wcs = 14
|  |  <repeat ...>
|  _Fapi_issueProgrammingCommand : wcs = 54
|  |  __Fapi_issueFsmCommand : wcs = 4
|  |  __Fapi_setupSectorsForWrite : wcs = 6
|  |  |  <repeat ...>
|  _ServiceDog : wcs = 2

_RAM_ACCESS_VIOLATION_ISR : wcs = 6

_RAM_CORRECTABLE_ERROR_ISR : wcs = 6

_RTOS_ISR : wcs = 6

_Read_CallFlashAPI : wcs = 36
|  _Fapi_doMarginRead : wcs = 26
|  |  _Fapi_flushPipeline : wcs = 8
|  |  |  <repeat ...>
|  |  _Fapi_isAddressEcc : wcs = 4
|  |  _Fapi_serviceWatchdogTimer : wcs = 2

_SCIA_RX_ISR : wcs = 6

_SCIA_TX_ISR : wcs = 6

_SCIB_RX_ISR : wcs = 6

_SCIB_TX_ISR : wcs = 6

_SCIC_RX_ISR : wcs = 6

_SCIC_TX_ISR : wcs = 6

_SCID_RX_ISR : wcs = 6

_SCID_TX_ISR : wcs = 6

_SD1_ISR : wcs = 6

_SD2_ISR : wcs = 6

_SPIA_RX_ISR : wcs = 6

_SPIA_TX_ISR : wcs = 6

_SPIB_RX_ISR : wcs = 6

_SPIB_TX_ISR : wcs = 6

_SPIC_RX_ISR : wcs = 6

_SPIC_TX_ISR : wcs = 6

_STANDBY : wcs = 2

_SYS_PLL_SLIP_ISR : wcs = 6

_TIMER0_ISR : wcs = 6

_TIMER1_ISR : wcs = 6

_TIMER2_ISR : wcs = 6

_Timer0IntIsr : wcs = 38
|  _ACLossSense : wcs = 4
|  _GetAdcSamples : wcs = 2
|  _GetCtrlPwmDuty : wcs = 6
|  _HandleMstRefAdjust : wcs = 4
|  _HandleSlvRefAdjust : wcs = 4
|  _PFCFinateStateMachine : wcs = 6
|  |  _StatePFCOffControl : wcs = 2
|  |  _StatePFCOffLatch : wcs = 2
|  |  _StatePFCOnControl : wcs = 2
|  |  _StateSoftStartNormal : wcs = 4
|  _PFCInputOCP : wcs = 4
|  _PFCOutputOVP : wcs = 4
|  _SCRControl : wcs = 4
|  |  _SetSCROff : wcs = 2
|  _TimerManagement : wcs = 2
|  _VIPCalculation : wcs = 10
|  |  _PFCKmSqCalc : wcs = 6
|  |  ___relaxed_sqrt : wcs = 4
|  _VaryGainSetting : wcs = 4

_TmrIsMch : wcs = 6

_USBA_ISR : wcs = 6

_USER10_ISR : wcs = 6

_USER11_ISR : wcs = 6

_USER12_ISR : wcs = 6

_USER1_ISR : wcs = 6

_USER2_ISR : wcs = 6

_USER3_ISR : wcs = 6

_USER4_ISR : wcs = 6

_USER5_ISR : wcs = 6

_USER6_ISR : wcs = 6

_USER7_ISR : wcs = 6

_USER8_ISR : wcs = 6

_USER9_ISR : wcs = 6

_VCU_ISR : wcs = 6

_WAKE_ISR : wcs = 6

_XINT1_ISR : wcs = 6

_XINT2_ISR : wcs = 6

_XINT3_ISR : wcs = 6

_XINT4_ISR : wcs = 6

_XINT5_ISR : wcs = 6

__nop : wcs = 2

__register_lock : wcs = 2

__register_unlock : wcs = 2


The following functions are known to contain indirect function calls, but
do not contain any information about those indirect calls in the configuration
file specified with --i_cfg=file.  Run "perldoc call_graph.pl" for more
information.
======================================================================

_AdcSetMode
_CalAdcINL
_CaliDataWrite
_CaliHandleTrans
_HandleCaliRecv
_HandlePwrAllo
_c_int00
_exit
_main

  • I am not familiar with either "call_graph" or "ofd6x".  When I want to check the maximum stack usage on C28x I find it useful to fill the stack with known data on initialization, then check for the high water mark of over-written values.  I'm attaching a couple of files which do this on F2806x and should work similarly on F28075 (though I haven't tried that combination).

    I will ask if anyone else knows the functions you mention and ask them to post back here.  

    Regards,

    Richard

    demo2806x_stack.asm

    demo2806x_stack.h

  • Sheldon He said:
    Firstly, should we pick the maxim "WCS" value in the output of calling "C:\dir>ofd6x -x -g ex.out | call_graph"?

    You are using the call_graph utility from the cg_xml package.  Please read the documentation for this utility.  In the root directory of the cg_xml installation, you will find the file index.htm.  Load this file into your web browser.  There you will find documentation links for all the utilities, including call_graph.

    Sheldon He said:
    Secondly, will "stack usage" in CCS be a good method to get this infromation?

    The Stack Usage view in CCS does the same thing call_graph does, though in a slightly different way.  Because it is integrated with CCS, it is more convenient.  Unfortunately, this feature is not documented.  Therefore, even if you decide to use it, I still recommend you read the call_graph documentation, so you will become familiar with the pros and cons of static call graphs.

    Thanks and regards,

    -George

  • Hi Richard,
    Cool idea! I will give a try.