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