diff --git a/pasdk/test_arm/framework/audioStreamDecodeProc.c b/pasdk/test_arm/framework/audioStreamDecodeProc.c
index 8bca5546e3169a62aaefd14b56fbc5b736518ce5..62ce3f743c33d0384f6b66f791ec9ce4ea34dee6 100644 (file)
#include "statusOp_common.h"
-#define CACHE_COHERENCE
+
// FL: debug
//#include "fwkSim.h"
#include "dbgCapAf.h"
UInt32 gSlaveDecDeactivateCnt =0;
+// FL: (***) debug
+#include "evmc66x_gpio_dbg.h"
+
+
/*
* ======== taskAsdpFxn ========
* Audio Stream Decode Processing task function
pP->fxns->memStatusPrint(HEAP_INTERNAL, HEAP_INTERNAL1, HEAP_EXTERNAL, HEAP_INTERNAL1_SHM);
}
+#ifdef NON_CACHE_STATUS
+ //
+ // init Status structure Gate
+ //
+ if (statusOp_Init(GATEMP_INDEX_DEC) == STATUSOP_INIT_FAIL)
+ {
+ TRACE_TERSE1("TaskAsdp: Gate Index %d:initialization status GateMP Fail.", GATEMP_INDEX_DEC);
+ }
+ if (statusOp_Init(GATEMP_INDEX_DDP) == STATUSOP_INIT_FAIL)
+ {
+ TRACE_TERSE1("TaskAsdp: Gate Index %d:initialization status GateMP Fail.", GATEMP_INDEX_DDP);
+ }
+ if (statusOp_Init(GATEMP_INDEX_PCM) == STATUSOP_INIT_FAIL)
+ {
+ TRACE_TERSE1("TaskAsdp: Gate Index %d:initialization status GateMP Fail.", GATEMP_INDEX_PCM);
+ }
+ if (statusOp_Init(GATEMP_INDEX_THD) == STATUSOP_INIT_FAIL)
+ {
+ TRACE_TERSE1("TaskAsdp: Gate Index %d:initialization status GateMP Fail.", GATEMP_INDEX_THD);
+ }
+#endif
+
// (***) FL: revisit
// write back Status structure addresses for Beta Units initialized on Slave
Cache_wb((Ptr)(&IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE]), sizeof(IALG_Status *), Cache_Type_ALLD, 0);
Cache_wb((Ptr)(&IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM2]), sizeof(IALG_Status *), Cache_Type_ALLD, 0);
Cache_wb((Ptr)(&IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP]), sizeof(IALG_Status *), Cache_Type_ALLD, 0);
Cache_wb((Ptr)(&IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP2]), sizeof(IALG_Status *), Cache_Type_ALLD, 0);
+ Cache_wb((Ptr)(&IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD]), sizeof(IALG_Status *), Cache_Type_ALLD, 0);
+ Cache_wb((Ptr)(&IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD2]), sizeof(IALG_Status *), Cache_Type_ALLD, 0);
Cache_wait();
// (***) FL: revisit
// write back Status structures for Beta Units initialized on Slave
- size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE]->size;
+ /* size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE]->size;
Cache_wbInv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE]), size, Cache_Type_ALLD, 0);
size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM]->size;
Cache_wbInv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM]), size, Cache_Type_ALLD, 0);
// (***) FL: revisit
// write back Dec configuration
Cache_wbInv(&pAstCfg->xDec[0], DECODEN*sizeof(PAF_AST_Decode), Cache_Type_ALLD, 0);
- Cache_wait();
+ Cache_wait();*/
// Send initialization complete message to master
queId = MessageQ_getReplyQueue(pAspMsg);
}
// write back Dec configuration
- Cache_wbInv(&pAstCfg->xDec[z], sizeof(PAF_AST_Decode), Cache_Type_ALLD, 0);
+ Cache_wb(&pAstCfg->xDec[z], sizeof(PAF_AST_Decode), Cache_Type_ALLD, 0);
Cache_wait();
// (***) FL: revisit
TRACE_TERSE2("slaveCmd=%d,decIdx=%d", slaveCmd, z);
// Get input associated w/ decoder
zI = pP->inputsFromDecodes[z];
-
+
// (***) FL: revisit
// invalidate Inp configuration
Cache_inv(&pAstCfg->xInp[zI], sizeof(PAF_AST_InpBuf), Cache_Type_ALLD, 0);
wrapSize = size - chunkSize;
// invalidate input data
Cache_inv((Ptr)pIpBufConfig->pntr.pSmInt, chunkSize, Cache_Type_ALLD, 0);
- TRACE_MSG2("IBUF : pIpBufConfig->pntr.pSmInt: 0x%x and chunkSize: %d", pIpBufConfig->pntr.pSmInt, chunkSize);
// invalidate Dec configuration
+ TRACE_MSG2("IBUF : pIpBufConfig->pntr.pSmInt: 0x%x and chunkSize: %d", (IArg)pIpBufConfig->pntr.pSmInt, chunkSize);
Cache_inv(&pAstCfg->xDec[z], sizeof(PAF_AST_Decode), Cache_Type_ALLD, 0);
// status for selected decoder should be invalidated
Cache_wait();
{
// invalidate input data
Cache_inv((Ptr)pIpBufConfig->base.pSmInt, wrapSize, Cache_Type_ALLD, 0);
- TRACE_MSG2("IBUF : pIpBufConfig->base.pSmInt: 0x%x and wrapSize: %d",pIpBufConfig->base.pSmInt, wrapSize);
+ TRACE_MSG2("IBUF : pIpBufConfig->base.pSmInt: 0x%x and wrapSize: %d", (IArg)pIpBufConfig->base.pSmInt, wrapSize);
// status for selected decoder should be invalidated
Cache_wait();
}
}
// write back Dec configuration
- Cache_wbInv(&pAstCfg->xDec[z], sizeof(PAF_AST_Decode), Cache_Type_ALLD, 0);
+ Cache_wb(&pAstCfg->xDec[z], sizeof(PAF_AST_Decode), Cache_Type_ALLD, 0);
Cache_wait();
-#ifdef CACHE_COHERENCE
- statusOp_read(&(temp8), &(pAstCfg->xDec[z].decodeStatus.mode), sizeof(Int8));
+#ifdef NON_CACHE_STATUS
+ statusOp_read(&(temp8),
+ &(pAstCfg->xDec[z].decodeStatus.mode),
+ sizeof(Int8),
+ GATEMP_INDEX_DEC);
// Re-initialize audio frame if decoder is disabled or
// doesn't have a valid input
if (!temp8 || !pAstCfg->xInp[zI].hRxSio)
errno = dec->fxns->decode(dec, NULL, &pAstCfg->xDec[z].decodeInStruct, &pAstCfg->xDec[z].decodeOutStruct);
if (errno < 0)
{
- SW_BREAKPOINT;
+ //SW_BREAKPOINT;
}
TRACE_TERSE0("Dec:decode done");
// Log_info0("capAfWrite() error");
//}
+ GPIOSetOutput(GPIO_PORT_0, GPIO_PIN_107);
cbErrno = cbWriteAf(pCbCtl, z, pAfWrt);
if (cbErrno < 0)
{
}
}
}
+ GPIOClearOutput(GPIO_PORT_0, GPIO_PIN_107);
TRACE_TERSE0("Dec:cbWriteAf() complete");
+#if 1 // (***) FL: shows timing of CB write
+ /// (***) debug // B9
+ //{
+ // static Uint8 toggleState = 0;
+ // if (toggleState == 0)
+ // GPIOSetOutput(GPIO_PORT_0, GPIO_PIN_107);
+ // else
+ // GPIOClearOutput(GPIO_PORT_0, GPIO_PIN_107);
+ // toggleState = ~(toggleState);
+ //}
+#endif
+
// FL: debug, log circular buffer control variables
cbLog(pCbCtl, z, 1, "cbWriteAf");
}
// write back Dec configuration
- Cache_wbInv(&pAstCfg->xDec[z], sizeof(PAF_AST_Decode), Cache_Type_ALLD, 0);
+ Cache_wb(&pAstCfg->xDec[z], sizeof(PAF_AST_Decode), Cache_Type_ALLD, 0);
Cache_wait();
-#ifdef CACHE_COHERENCE
- statusOp_read(&(temp8), &(pAstCfg->xDec[z].decodeStatus.mode), sizeof(Int8));
+#ifdef NON_CACHE_STATUS
+ statusOp_read(&(temp8),
+ &(pAstCfg->xDec[z].decodeStatus.mode),
+ sizeof(Int8),
+ GATEMP_INDEX_DEC);
// Re-initialize audio frame if decoder is disabled or
// doesn't have a valid input
if (!temp8 || !pAstCfg->xInp[zI].hRxSio)
TRACE_TERSE0("PAF_ASDT_initPhaseCommon: calling PAF_ALG_setup.");
PAF_ALG_setup(&pafAlgConfig,
- HEAP_ID_INTERNAL, HEAP_INTERNAL,
- HEAP_ID_INTERNAL1, HEAP_INTERNAL1,
- HEAP_ID_EXTERNAL, HEAP_EXTERNAL,
- HEAP_ID_INTERNAL1_SHM, HEAP_INTERNAL1_SHM,
- HEAP_ID_EXTERNAL_SHM, HEAP_EXTERNAL_SHM,
+ HEAP_ID_INTERNAL, HEAP_INTERNAL,
+ HEAP_ID_INTERNAL1, HEAP_INTERNAL1,
+ HEAP_ID_EXTERNAL, HEAP_EXTERNAL,
+ HEAP_ID_INTERNAL1_SHM, HEAP_INTERNAL1_SHM,
+ HEAP_ID_EXTERNAL_SHM, HEAP_EXTERNAL_SHM,
+ HEAP_ID_EXTERNAL_NONCACHED_SHM, HEAP_EXTERNAL_NONCACHED_SHM,
HEAP_CLEAR);
if (pP->fxns->headerPrint)
case PAF_SOURCE_DDP:
pAudioFrame->data.nSamples = 1536;
break;
+ case PAF_SOURCE_THD:
+ pAudioFrame->data.nSamples = 5120; //QIN FIX ME
+ break;
default:
pAudioFrame->data.nSamples = FRAMELENGTH;
break;