三類介面:
gpio/閘電路介面
協議類介面:uart(串列埠) iic iis
記憶體類介面:nor、網絡卡、sdram (注意:沒有nand)
閘電路介面和協議類介面的區別:
配置gpio控制器相應的暫存器,即可讓引腳輸出高低電平;
配置uart控制器相應的暫存器,即可讓引腳輸出波形。
cpu怎麼訪問不同的暫存器?(記憶體控制器的作用):
cpu只管發出乙個位址,記憶體控制器根據該位址選擇不同的模組,然後從模組中得到資料或者傳送資料到模組中。
cpu怎麼訪問不同的記憶體介面?
sdram、dm9000網絡卡、nor flash都接在jz2440的資料匯流排和位址匯流排上,cpu把資料和位址傳送出去,然後記憶體控制器根據片選訊號選擇相應的裝置接收位址和資料訊號
cs(chip select)——共用資料線和位址線,為了區別是哪個模組傳送的,所以有了片選引腳
比如:
cpu傳送的位址在 0x0~0x08000000之間,記憶體控制器就讓cs0引腳輸出低電平
只有被選中的模組才能工作哦
gpio/閘電路介面、協議類介面、記憶體類介面都屬於cpu的統一編址。對於nand flash,在原理圖上它的位址線並沒有連線到cpu,因此它不參與cpu的統一編址。但是有資料線有連線到資料匯流排, 它也有乙個片選訊號(ce)。
cpu傳送位址給nand控制器,nand再去選中片選引腳,才讓nandflash工作
每個片選訊號選擇的位址空間 為128m :
0x08000000的十進位制為134217728
134217728 / 1024 / 1024 = 128m
128m = 27 * 210 * 210 = 227
所以一共有27條位址線
我們查閱晶元手冊p277 可以知道cpu傳送32位的位址,但是只有27條位址線,為什麼呢?
cpu確實是傳送32位的位址線給記憶體控制器,但是記憶體控制器傳送片選訊號、將32位位址轉換位27位位址傳送給外設。
有讀寫引腳來控制
sdram只有寫引腳,說明這條引腳既表示寫又表示讀,當輸出低電平表示寫資料給sdram,高電平讀資料
看韋東山的筆記
根據片選訊號確定基位址,
根據晶元所接位址線確定範圍
怎麼從原理圖看出接了幾條位址線?
原理圖上接了a20~a1,a0是接到記憶體控制器的,
為什麼a0接到記憶體控制器呢?
因為一共有16條位址線,需要a0去選擇高8位還是低8位(從不同尾款裝置的連線理解的)
所以一共21條位址線
值得注意的是,sdram有17條位址線,那麼是128k的記憶體,但是為什麼sdram有64m的記憶體?(以後講)
列位址 行位址 位址線被用兩次 然後組裝起來
libcurl第十二課 記憶體分析
在實際的測試環境中,內存在不斷的增長,儘管不是很明顯 申請記憶體分析 struct curl multi curl multi handle int hashsize,socket hash int chashsize connection hash 該函式建立了curl muti結構體,並且申請了...
第十二課 OpenGL擴充套件
gpu的效能隨著更新換代一直在提高,支援渲染更多的三角形和畫素點。然而,原始效能不是我們唯一關心的。nvidia,amd和intel也通過增加功能來改善他們的顯示卡。來看一些例子。回溯到2002年,gpu都沒有頂點著色器或片斷著色器 所有的一切都硬編碼在晶元中。這被稱為固定功能流水線 fixed f...
演算法導論 第十二課 跳躍表
本節課介紹了一種全新的資料結構 跳躍表 跳躍表是一種簡單又有趣的動態搜尋資料結構,其主要優點在於其易於實現,而且很好的保證了其具有高效的效能,即2 o lgn 的搜尋效能 在此之前我想首先談談鍊錶,鍊錶的優點在於其插入和刪除只需要常數項的時間 加上查詢該元素需要額外的o n 時間 但是其查詢效率只有...