Post Go back to editing

Bypass SigmaStudio schematic from code

Category: Software

In Sigmastudio there is an option to bypass the schematic processing of an instance.

This works when changing it from within sigmastudio wit the target connected via USBi.

However, I would also like to be able to change this when in standalone/microcontroller mode. Or in other words from code executing on the arm core.

Is this possible? If so, how?

Parents Reply Children
  • In runtime CMD6 only supported for enabling bypass schematic process and there is no otherway from ARM core.

    Otherwise, you can modify the framework function for bypass schematic case by adding if else case to "pfSSnProcess()" call with in FW_ProcessBlock() function.
    Even you can use the same parameter data here. If the flag set skip the "pfSSnProcess()" call and in else part, simply add copy input data to output.

  • Thank you for pointing me in the right direction. I was able to work around the issue as suggested. In case anybody else is wondering this is how i implemented the fix

    uint32_t nVal;
    			bool bBypass = false;
    			ADI_SS_RESULT eResult = adi_ss_readParam(pProcBlk->oAlgoInfo[SSN_ALGO_INDEX].handle, &nVal, 0, 1);
    			if(eResult == ADI_SS_SUCCESS && pConfig->bSkipInitialDownload){
    				bBypass = ((nVal & 0x10) != 0);
    			}
    
    			if(!bBypass){
    				/* Process SSn */
    				eSSnRes = pfSSnProcess(pProcBlk->oAlgoInfo[SSN_ALGO_INDEX].handle,
    									   (int32_t)nBlkSz,pProcBlk->pInProcessBuffer,
    									   pProcBlk->pOutProcessBuffer,
    									   pProcBlk->oAlgoInfo[SSN_ALGO_INDEX].pProperties
    									  );
    			}
    			else{
    				/* bypass, copy input to output */
    				for(int i = 0; i< ADI_SS_FW_MAX_NUM_IN_CHANNELS; i++){
    					memcpy(pProcBlk->pOutProcessBuffer[i], pProcBlk->pInProcessBuffer[i], nBlkSz*sizeof(adi_ss_fw_signal));
    				}
    				eSSnRes = ADI_SS_SUCCESS;
    			}