ARM之記憶體控制器與SDRAM
阿新 • • 發佈:2019-01-04
S3C2440是SOC(system on chip),板載CPU,記憶體管理器,GPIO控制器,協議類介面,記憶體類介面,NAND控制器等。
CPU和記憶體類介面:
其中ARM9為32位處理器,可是一般在實際只用到其中27條地址線。
對不同位寬的裝置,有不同的處理方式。
當執行語句:
mov r0 #3
LdrB r1 [r0] //r1暫存器讀取地址3處的一個位元組
CPU地址 | 記憶體控制器轉發給ROM | ROM返回資料 | 記憶體控制器處理資料 | |
8bitROM | 0011 | 0011 | 8bit(3) | 接收8bit(3) |
16bitROM | 0011 | 0001 | 16bit(1) | 接收16bit(1),並讀取要的地址3內容 |
32bitROM | 0011 | 0000 | 32bit(0) | 接收32bit(0),並讀取要的地址3內容 |
現在改一下
mov r0 #4
Ldr r1 [r0] //現在一次讀取四個位元組 從地址4開始讀取,讀取地址 4,5,6,7處的內容
CPU地址 | 記憶體控制器轉發給ROM | ROM返回資料 | 記憶體控制器處理資料 | |
8bitROM | 0100 |
0100 0101 0110 0111 |
得到地址4的1byte 得到地址5的1byte ... |
之後將4byte組裝完成後,再傳個CPU |
16bitROM | 0100 |
0010 0011 |
得到地址2的2byte,和地址3的2byte | 同上 |
32bitROM | 0100 |
0000 0001 |
得到地址0的1byte 和地址1的3byte |
同上 |
怎麼確定晶片訪問地址呢?
1.根據片選訊號確定基地址
2.根據晶片所接地址線,確定範圍。