chenlh
2025-09-18 8445c54f01777513912d4c6d36c28e92a0ff33a0
src/tob.cpp
@@ -48,7 +48,11 @@
ToB::~ToB()
{
   toClear();
<<<<<<< HEAD
//   tob = NULL;
=======
   tob = NULL;
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   delete paramset;
}
@@ -199,7 +203,11 @@
   return    ErrStatus::SUCCESS;
}
<<<<<<< HEAD
#define DEBUG 0
=======
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
#if 1//DEBUG
   const s8* type_string[ModuleType::PROC_COUNT] = {
         "none"
@@ -270,9 +278,14 @@
      if (pmod->mDsp != dsp_index)  continue;
<<<<<<< HEAD
#if DEBUG
      //if (PROC_FIR == pmod->mType)
         printf("Module ID %d type %d %s rxnum %d txnum %d tag %d. \n",pmod->mID ,pmod->mType, type_string[pmod->mType], pmod->mRxNum,pmod->mTxNum,pmod->mTag);
=======
#ifdef DEBUG
      printf("Module ID %d type %d %s rxnum %d txnum %d tag %d. \n",pmod->mID ,pmod->mType, type_string[pmod->mType], pmod->mRxNum,pmod->mTxNum,pmod->mTag);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
#endif
      IModule* m = CreateBaseModule(pmod->mType, pmod->mTag, mRxNum, mTxNum);
@@ -281,6 +294,14 @@
         continue;
      }
<<<<<<< HEAD
=======
//      int ddr = sram_free_space(SRAM_DDR,mem_any);
//      int ccm = sram_free_space(SRAM_L2,mem_any);
//      int l1 = sram_free_space(SRAM_L1,mem_heap);
//      printf("ddr %d ccm %d l1 %d.\n",ddr, ccm ,l1);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
      m->SetModuleInfo(pmod->mID ,pmod->mType, pmod->mTag);
      mList.push_back(m);
@@ -291,7 +312,11 @@
//      printf("Module id:%d, Tx buffer id:", pmod->mID);
      for (size_t i = 0; i < mTxNum && !bOutput; i++){
<<<<<<< HEAD
//         printf("bid %d, ", mTxbufID[i]);
=======
         printf("bid %d, ", mTxbufID[i]);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
         if (mTxbufID[i] > 0) {
            Frame* pcm = frames->GetFrame(mTxbufID[i]-1);
            m->SetOutputChannelDataPtr(i, pcm);
@@ -301,7 +326,11 @@
                  nPhyInput[mPhyID[i].mIntType] = mPhyID[i].mPhyID;
               m->SetInputChannelDataPtr(i, pcm);
               SetRxChannelPtr(static_cast<IntDataType>(mPhyID[i].mIntType), mPhyID[i].mPhyID-1, pcm->Data());
<<<<<<< HEAD
//               printf("phy_id %d\n", mPhyID[i].mPhyID);
=======
               printf("phy_id %d\n", mPhyID[i].mPhyID);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
            }
         }
         else {
@@ -310,7 +339,11 @@
      }
//      printf(";Rx buffer id:");
      for (size_t i = 0; i < mRxNum && !bInput; i++) {
<<<<<<< HEAD
//         printf("mID %d,bid %d\n", pmod->mID, mRxbufID[i]);
=======
//         printf("bid %d", mRxbufID[i]);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
         if (mRxbufID[i] > 0) {
            Frame* pcm = frames->GetFrame(mRxbufID[i]-1 );
            m->SetInputChannelDataPtr(i, pcm);
@@ -322,8 +355,12 @@
               //pcm = frames->AllocFrame(); // It is not necessary to be compatible with the AXE1208 series here, because the TOP architecture is different.
               m->SetOutputChannelDataPtr(i, pcm);
               SetTxChannelPtr(static_cast<IntDataType>(mPhyID[i].mIntType), mPhyID[i].mPhyID-1, pcm->Data());
<<<<<<< HEAD
//               printf("mID %d,bid %d\n", pmod->mID, mPhyID[i].mPhyID-1);
//               printf("phy_type %d, _id %d\n", mPhyID[i].mIntType, mPhyID[i].mPhyID);
=======
//               printf("phy_id %d", mPhyID[i].mPhyID);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
            }
         }
         else {
@@ -333,6 +370,7 @@
//      printf("\n");
      m->Init();
<<<<<<< HEAD
      // 从 paramset 中获取对应的参数控制函数指针
      ParamCtrl_fn paramEntry = paramset->GetParamEntry( m->GetModuleType());
@@ -341,6 +379,17 @@
      }
      // 调用参数控制函数
      u32 result = paramEntry(m, (uvoid*)pmod->mParamaddr, len);
=======
//      paramset->GetParamEntry(m->GetModuleType())(m, (uvoid*)pmod->mParamaddr, len);
      // 获取模块类型
      u32 moduleType = m->GetModuleType();
      // 从 paramset 中获取对应的参数控制函数指针
      ParamCtrl_fn paramEntry = paramset->GetParamEntry(moduleType);
      // 获取模块参数地址
      void* paramAddr = (uvoid*)pmod->mParamaddr;
      // 调用参数控制函数
      u32 result = paramEntry(m, paramAddr, len);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   } while (size < nbytes);
@@ -399,7 +448,11 @@
{
   if(processed) {
      for (auto iter = mList.begin(); iter < mList.end(); iter++) {
<<<<<<< HEAD
//         if(((*iter)->GetModuleType() >= 6) && ((*iter)->GetModuleType() <= 6)) {
=======
//         if(((*iter)->GetModuleType() >= 9) && ((*iter)->GetModuleType() <= 9)) {
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
//            printf("%d ", (*iter)->GetModuleID());
            (*iter)->Proc();
//         }
@@ -454,8 +507,13 @@
   IModule* m = mList[mModuleIndex[mID]-1];
   if( m != NULL) {
<<<<<<< HEAD
//      m->Ctrl(pID, val, num);
      paramset->GetCtrlEntry(m->GetModuleType())(m, pID, (s16*)val, num);
=======
      //m->Ctrl(pID, val, num);
      paramset->GetCtrlEntry(m->GetModuleType())(m, pID, (s16*)val);
>>>>>>> 0d5b7df96a2ee186b7b085dca9cf9a33f791c430
   }
//   printf("mID:%d pID:%d val[0]:%d val[1]:%d\n",mID, pID, val[0], val[1]);
   return ErrStatus::SUCCESS;