<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > OMAPL138雙核系統(tǒng)的調(diào)試方案設(shè)計

          OMAPL138雙核系統(tǒng)的調(diào)試方案設(shè)計

          作者: 時間:2012-05-08 來源:網(wǎng)絡(luò) 收藏

          GPP端按如下順序開通消息隊列:
          ①PROC_setup()。采用ARM端應(yīng)用程序載入DSP程序到DSP中運行的方法啟動DSP,由于PROC組件被用于模擬DSP,首先要針對PROC進行創(chuàng)建和初始化。
          ②PROC_attach(processorId,NULL)。在DSP端運行之前,需要建立與GPP端通信的DSP的關(guān)聯(lián),其中指定的processorId為與之通信的DSP的編號,防止ARM與多DSP通信時造成連接混亂。
          ③POOL_open(POOL_makePoolId(processorId,POOL_ID),&SamplePoolAttrs)。打開共享內(nèi)存池,內(nèi)存緩沖區(qū)同樣需要一個ID來進行不同的分工。SamplePoolAttrs用來指定緩沖區(qū)大小、buffer個數(shù)等屬性。
          ④MSGQ_open(SampleGppMsgqName,&SampleGppMsgq,NULL)。在進行MSGQ通信之前的一個前提是處理器雙方都需要各自打開一個消息隊列,每個消息隊列擁有各自的name,只有當連接方提出的name與消息隊列的name相吻合的時候,消息隊列才得到建立。利用該API打開消息隊列,SampleGppMsgqName指代的是GPP端消息隊列的name。
          ⑤PROC_load(processorId,(Char8*)&imageInfo,numArgs,args)。將編譯好的DSP程序載入DSP中,相關(guān)參數(shù)為DSP的編號、DSP可運行程序名字、參數(shù)的個數(shù)和運行參數(shù)。
          ⑥PROC_start(processorId)。開始運行編號為processorId的DSP。
          ⑦MSGQ_locate(dspMsgqName,&SampleDspMsgq,&syncLocateAttrs)。等待需要建立的消息隊列打開。由于通信時需要將一條消息隊列的兩個端口都關(guān)聯(lián)到指定的處理器,只有name為dspMsgqName的消息隊列一邊已經(jīng)打開后,才能連接指定要連接的消息隊列,該消息隊列才真正建立起來,并進行通信。該接口函數(shù)與MSGQ_open相呼應(yīng)。syncLocateAttrs為指定等待的相關(guān)屬性,例如指定該屬性為syncLocateAttr s.timeout=WAIT_FOREVER時,程序一旦運行到此函數(shù)處,如果另一方處理器還沒有MSGQ_open的name為dspMsgqName的消息隊列,便會阻塞在此處,直到打開為止。至此GPP端的消息隊列已經(jīng)完成設(shè)置,等待DSP端消息隊列的建立。
          DSP端按如下順序開通隊列:
          ①建立TASK任務(wù)。由于DSPLink是基于處理器兩端操作進行的連接,因此,在DSP端同樣必須采用操作作為通信的媒介,采用DSP/BIOS操作,以任務(wù)的形式運行程序。
          ②創(chuàng)建和初始化MSGQ傳輸屬性。在進行MSGQ的創(chuàng)建打開之前,要先指定MSGQ的相關(guān)屬性。
          ③MSGQ_open((String)dspMsgQName,&info->localMsgq,&msgqAttrs)創(chuàng)建DSP端消息隊列,原理如同GPP端。
          ④MSGQ_locate(GPP_MSGQNAME,&info->locatedMsgq,&syncLocateAttrs)等待連接GPP端打開的消息隊列,原理如同GPP端。
          ⑤當GPP和DSP端消息隊列都建立完畢,并且關(guān)聯(lián),通信即建立,可以采用MSGQ_put和MSGQ_get發(fā)送和接收數(shù)據(jù)。

          3 基于MSGQ方案
          MSGQ組件在實際的應(yīng)用中因其數(shù)據(jù)長度的可變性,對DSP端應(yīng)用程序的提供了強大的解決方案。通過MSGQ的分析可以發(fā)現(xiàn),采用ARM和DSP端聯(lián)合,通過log打印的方式可以方便地對DSP端的運行情況進行一定的了解。
          在GPP端和DSP端應(yīng)用程序中建立獨立線程和任務(wù)。由于只需要將DSP信息傳輸?shù)紾PP端而不需要GPP端的反饋信息,因此只需要設(shè)計單向傳輸,創(chuàng)建一條消息隊列即可。當DSP端運行到需要打印的信息時,將消息暫存于指定的內(nèi)存空間,當任務(wù)切換到任務(wù)時,將暫存的消息發(fā)送到GPP端,GPP端接收到消息后在終端打印。調(diào)試建立流程如圖3所示。

          本文引用地址:http://www.ex-cimer.com/article/149121.htm

          e.jpg

          linux相關(guān)文章:linux教程




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();