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

          新聞中心

          S3C2440的存儲器管理

          作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
          以前不知道S3C2440的每個BANK都要設(shè)置位寬,也不知道為什么要設(shè)置,今天弄懂了。在使用BANK之前要設(shè)置每個BANK所接的外設(shè)時多少位的?由BWSCON寄存器設(shè)置,默認(rèn)情況為8位。由于BANK0位啟動區(qū),所以有硬件指示,通過讀OM[1:0]引腳來設(shè)置。

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

          當(dāng)寬度為8位的時候,"Memory Controller"硬件是這樣做的:(不錯位連接)

          (1)CPU想進(jìn)行8位操作時,直接根據(jù)軟件所給出的地址讀取8位數(shù)據(jù)返回給CPU。

          (2)CPU想進(jìn)行16位操作時,進(jìn)行兩次8位的操作,并組成一個16位的數(shù)據(jù)返回給CPU。

          (3)CPU想進(jìn)行32位操作時,進(jìn)行四次8位的操作,并組成一個32位的數(shù)據(jù)返回給CPU。

          當(dāng)寬度為16位的時候,"Memory Controller"硬件是這樣做的:(錯一位連接)

          (1)CPU想進(jìn)行8位操作時,直接根據(jù)軟件所給出的地址讀取16位數(shù)據(jù),并將低8位返回給CPU。

          (2)CPU想進(jìn)行16位操作時,直接根據(jù)軟件所給出的地址讀取16位數(shù)據(jù)返回給CPU。

          (3)CPU想進(jìn)行32位操作時,進(jìn)行2次8位的操作,并組成一個32位的數(shù)據(jù)返回給CPU。

          當(dāng)寬度為32位的時候,"Memory Controller"硬件是這樣做的:(錯兩位連接)

          (1)CPU想進(jìn)行8位操作時,直接根據(jù)軟件所給出的地址讀取32位數(shù)據(jù),并將低8位返回給CPU。

          (2)CPU想進(jìn)行16位操作時,直接根據(jù)軟件所給出的地址讀取32位數(shù)據(jù),并將低16位返回給CPU。

          (3)CPU想進(jìn)行32位操作時,直接根據(jù)軟件所給出的地址讀取32位數(shù)據(jù)返回給CPU。

          參考:http://hi.baidu.com/zengzhaonong/blog/item/6de41c4f99e5cd3dafc3abc6.html

          PS:關(guān)于S3C2440擴(kuò)展網(wǎng)口電路時,CMD為什么要接ADDR2?

          Memory Controller操作的是DATA[15:8]。即0x0的時候通過DATA[7:0]寫入要操作寄存器的地址,0x1的時候通過DATA[15:8]讀寫寄存器的數(shù)據(jù)。而DM9000卻始終是通過DATA[7:0]操作寄存器的,這樣產(chǎn)生了矛盾。如果錯兩位,并且使用0x0寫入要操作寄存器地址,使用ox4作為讀寫寄存器地址,這樣Memory Controller始終使用的是DATA[7:0]傳輸數(shù)據(jù),這樣與DM9000數(shù)據(jù)傳輸規(guī)則吻合。

          答:首先由于使用了DATA[15:0],固將位寬設(shè)為16位。但如果只錯一位,則每次讀寫地址的時候Memory Controller操作的是DATA[7:0],而讀寫數(shù)據(jù)的時候



          關(guān)鍵詞: S3C2440存儲器管

          評論


          技術(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); })();