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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 討論s3c2440的時鐘與DMA

          討論s3c2440的時鐘與DMA

          作者: 時間:2016-12-02 來源:網(wǎng)絡 收藏







          通過配置MPLLCON的MDIV,PDIV,SDIV可以獲得MPLL。通過公式:

          Mpll = (2 * m * Fin) / (p * 2S)

          m = (MDIV + 8), p = (PDIV + 2), s = SDIV

          AHB BUS(advanced high-performance bus)上連接的是高速設備如LCD,USB Host,ExtMaster,SDRAM等。注意他們是通過控制器間接跟總線連接的。APB BUS(advanced peripherals bus)連接的就是低速的外圍設備。



          DMA對s3c2440的性能非常重要。S3c2440支持位于系統(tǒng)總線和外圍總線之間的4個通道的控制器。每個DMA控制器通道無限地執(zhí)行系統(tǒng)總線上的設備或外設總線上的設備之間數(shù)據(jù)搬移。

          DMA有3種狀態(tài):

          狀態(tài)一:作為初始狀態(tài),DMA等待DMA請求,一旦請求到達,進入狀態(tài)二,在此狀態(tài),DMA ACK和INT REQ都為0。

          狀態(tài)二:在此狀態(tài),DMA ACK變成1且計數(shù)器(CURR_TC)從DCONN[19:0]裝載。注意DMA ACK直到后邊被清除一直保持1。

          狀態(tài)三:在此狀態(tài),進行DMA原子操作的子狀態(tài)機被初始化。此子狀態(tài)機從源地址讀取數(shù)據(jù)并寫入目的地址。此操作應該考慮數(shù)據(jù)大小和傳輸大小(single or burst),而在全服務模式whole service mode中,次操作一直被重復直到計數(shù)器(CURR_TC)變成1;而在單服務模式single service mode中,此操作僅被執(zhí)行一次。當計數(shù)器(CURR_TC)變成0且外部中斷設置DCON[29]

          寄存器被置1,主狀態(tài)機發(fā)出中斷請求信號(INT REQ)。另外,遇到以下情況,其清除DMA ACK。
          (1)在全服務模式下計數(shù)器(CURR_TC)變成0

          (2)在單個服務模式下計數(shù)器原子操作完成

          外部DMA請求/應答模式:

          有3種類型的外部DMA請求/應答協(xié)議(單服務請求,單服務握手和全服務請求模式)。

          請求模式和服務模式的對比:

          -如果XnXDREQ 保持有效,下個傳輸馬上開始,否則它會一直等到XnXDREQ 有效。

          握手模式

          如果XnXDREQ 無效,DMA 在兩個周期內將XnXDACK 設無效。否則他會一直等

          XnXDREQ 無效。





          當需要DDMA操作的時候,外部DMA請求引腳XnXDREQ置為低電平,此時,DMA控制器向CPU發(fā)出占用總線的請求,當總線請求成功后,XnXDACK變?yōu)榈碗娖剑硎綜PU已將總線使用權交給了DMA控制器,可以進行數(shù)據(jù)傳輸。當數(shù)據(jù)傳輸完成后應答信號XnXDACK置為高電平,通知CPU完成一次數(shù)據(jù)傳輸。

          上一頁 1 2 下一頁

          關鍵詞: s3c2440時鐘DM

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();