日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

s5pv210——SDRAM的初始化

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 s5pv210——SDRAM的初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下內容源于朱友鵬《物聯網大講壇》課程的學習,以及博客http://www.cnblogs.com/biaohc/p/6346949.html的學習整理,如有侵權,請告知刪除。


一、SDRAM引入

1、SDRAM(Syncronized Dynamic Ramdam Access Memory,同步動態隨機存儲器)

  • DDR:嚴格來說應該叫DDR SDRAM((DDR:double data rate,雙倍速度的SDRAM)),它是SDRAM的升級版。
  • DDR有好多代:DDR1,DDR2,DDR3,DDR4,LPDDR;

2、SDRAM的特性

  • 容量大、價格低、掉電易失性、隨機讀寫、總線式訪問;
  • SDRAM / DDR都屬于動態內存(相對于靜態內存SRAM),都需要先運行一段初始化代碼來初始化才能使用,而SRAM開機上電后就可以直接運行;
  • NorFlash和NandFlash(硬盤)類似于SDRAM和SRAM的區別。
  • 由于硬件特性的限制,啟動代碼比較復雜。研究裸機是為了研究uboot,在uboot中充分利用了硬件的各種特性,處理了硬件復雜性。

3、SDRAM數據手冊帶讀

(1)SDRAM在系統中屬于SoC外接設備

  • 外部外設;
  • 隨著半導體技術發展,很多東西都逐漸集成到SoC內部。但仍在外部的有:Flash、SDRAM/DDR、網卡芯片如DM9000、音頻Codec。

(2)SDRAM通過地址總線和數據總線接口(總線接口)與SoC通信。

(3)SDRAM很標準化,做SDRAM的廠商并不多(三星,金士頓等)。

(4)三星官方的數據手冊上沒有芯片相關的參數設置信息,都是芯片選型與外觀封裝方面的信息。

  • 選型是給產品經理來看的;
  • 封裝和電壓等信息是給硬件工程師看的;
  • 軟件工程師最關注的是工作參數信息,但是數據手冊沒有
(5)開發板原理圖上使用的是K4T1G164QQ。
  • K表示三星產品;
  • 4表示是DRAM;
  • T表示產品號碼;
  • 1G表示容量(1Gb,等于128MB。X210開發板上一共用了4片相同的內存,所以總容量是128×4=512MB);
  • 16表示單芯片是16位寬的;
  • 4表示是4bank;


二、s5pv210的SDRAM介紹

1、原理圖中SDRAM相關部分

(1)S5PV210共有2個內存端口,分別叫DRAM0(對應原理圖的內存port1)和DRAM1(對應原理圖的內存port2):

  • DRAM0 ? 內存地址范圍:0x20000000~0x3FFFFFFF(512MB),對應引腳是Xm1xxxx
  • DRAM1 ? 內存地址范圍:0x40000000~0x7FFFFFFF(1024MB),對應引腳是Xm2xxxx

(2)結論

  • 210最多支持內存為1.5GB,如果給210更多的內存CPU就無法識別。
  • 實際開發板不一定要這么多,譬如我們X210開發板就只有512MB內存,連接方法是在DRAM0端口分布256MB,在DRAM1端口分布了256MB。
  • 210開發板上內存合法地址是:0x20000000~0x2FFFFFFF(256MB) + 0x40000000~0x4FFFFFFF(256MB)。當板子上DDR初始化完成之后,這些地址都是可以使用的;如果使用了其他地址譬如0x30004000就是死路一條。但這些地址是可以重新設置的,見博客http://blog.csdn.net/oqqhutu12345678/article/details/70196133的第4部分。

(3)原理圖中每個DDR端口都由3類總線構成

  • 地址總線(Xmn_ADDR0~XMnADDR13共14根地址總線);
  • 控制總線;
  • ?數據總線(Xmn_DATA0~XMnDATA31共32根數據線);
  • 分析:從數據總線的位數可以看出,我們用的是32位的(物理)內存
(4)原理圖中畫出4片內存芯片的一頁,可以看出


  • X210開發板共使用4片內存(每片1Gb=128MB,共512MB);
  • 每片內存的數據總線都是16位的(單芯片是16位內存);
  • 如何由16位內存得到32位內存呢?可以使用并聯方法。在原理圖上橫向的2顆內存芯片就是并聯連接的。并聯時地址總線接法一樣,但是數據總線要加起來。這樣連接相當于在邏輯上可以把這2顆內存芯片看成是一個(這一個芯片是32位的,接在Xm1端口上)。
  • 從原理圖可以看出整個SDRAM,由4對16位內存芯片組成,每個內存芯片128MB,其中有兩個內存芯片并聯成32位內存,共256MB內存連接在DMC0,另兩個內存芯片也并聯成32位內存,共256MB連接在DMC1。

2、數據手冊中SDRAM相關部分


(1)上圖來自數據手冊《NT5TU64M16GG-DDR2-1G-G-R18-Consumer》第10頁的block diagram。

(2)圖解:

  • 這個框圖是128Mb×8結構的。這里的8指的是8bank,每bank128Mbit(16MB),則共16MB*8=128MB。
  • 210的DDR端口信號中有BA0~BA2,接在內存芯片的BA0~BA2上,這些引腳就是用來選擇bank的。
  • 每個bank內部有128Mb,通過row address(14位)* ?column address(10位)的方式來綜合尋址(像二維坐標),則一共能尋址的范圍是:2的14次方*2的10次方 = 2的24次方,對應16MB(128Mbit)內存。

三、匯編初始化SDRAM詳解1

1、初始化代碼框架介紹

  • SDRAM的初始化,實際是調用一個函數sdram_asm_init。
  • 函數在sdram_init.S文件中實現,是一個匯編函數。
  • 調用匯編實現的函數在返回時,需要明確使用返回指令(mov pc, lr)。

2、27步初始化DDR2

(1)DDR初始化和SoC(準確說是和SoC中的DDR控制器)有關,也和開發板使用的DDR芯片有關,和開發板設計時DDR的連接方式也有關。

(2)S5PV210的DDR初始化步驟在SoC數據手冊:1.2.1.3 DDR2這個章節。P599

  • 初始化DDR共需27個步驟。

(3)X210的內存連接方式是:在DRAM0上連接256MB,在DRAM1上連接了256MB。

  • 初始化DRAM時分為2部分,第一部分初始化DRAM0,第二部分初始化DRAM1。

(4)初始化代碼來源sdram_init.S文件

  • 第一,九鼎官方的uboot中;
  • 第二,參考九鼎的裸機教程中對DDR的初始化;
  • 第三,有些參數可以根據自己理解修改過。

3、設置IO端口驅動強度

  • DDR芯片和S5PV210芯片是通過一些引腳連接的。
  • DDR芯片工作時需要一定的驅動信號,這個驅動信號需要一定的電平水平才能抗干擾,所以需要設置這些引腳的驅動能力,使DDR正常工作。
  • DRAM控制器對應的引腳設置為驅動強度2X。

4、DRAM port 時鐘設置

  • 從代碼第128行到154行。主要是開啟DLL(DRAM PLLl)(目的是為了倍頻,因為內存的讀取時鐘由SoC提供,但太低,而內存的讀寫是很快的),然后等待鎖存。
  • 這段代碼對應27步中的第2到第4步。


四、匯編初始化SDRAM詳解2

1、DMC0_MEMCONTROL

burst length=4,1chip,……對應值是0x00202400

2、DMC0_MEMCONFIG_0

DRAM0通道中memory chip0的參數設置寄存器

3、DMC0_MEMCONFIG_1

DRAM0通道中memory chip1的參數設置寄存器


總結:

  • 三星設置DRAM0通道,允許我們接2片256MB的內存,分別叫memory chip0和memory chip1,分別用這兩個寄存器來設置它的參數。按照三星的設計,chip0的地址應該是0x20000000到0x2FFFFFFF,然后chip1的地址應該是0x30000000~0x3FFFFFFF.各自256MB。
  • 但是X210開發板實際在DRAM0端口只接了256MB的內存,所以只用了chip0,沒有使用chip1。按照這個推論,DMC0_MEMCONFIG_0有用,而DMC0_MEMCONFIG_1無用,所以可以直接給它默認值。

4、DMC_DIRECTCMD

這個寄存器是個命令寄存器,210通過向這個寄存器寫值來向DDR芯片發送命令(通過命令總線),這些命令應該都是用來配置DDR芯片工作參數。


總結:

  • DDR配置過程比較復雜,基本上是按照DDR控制器的時序要求來做的,其中很多參數要結合DDR芯片本身的參數來定,還有些參數是時序參數,要去詳細計算。所以DDR配置非常繁瑣、細致、專業。
  • 我們對DDR初始化的態度就是:學會這種思路和方法,結合文檔和代碼能看懂,會算一些常見的參數即可。

5、重定位代碼到SDRAM中

DRAM初始化之后,實際上重定位代碼過程和之前重定位到SRAM中完全相同,只是鏈接地址不一樣。

假如我們通過usb下載到0xD002_0010,那么運行地址就是0xD002_0010,而在SRAM中重定位是指鏈接地址在SRAM的地址空間內,重定位到SDRAM中是指鏈接地址寫成SDRAM的地址范圍內的一個地址值。

見博客http://blog.csdn.net/oqqhutu12345678/article/details/70135880


總結

以上是生活随笔為你收集整理的s5pv210——SDRAM的初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆国产在线播放 | 亚洲视频一区二区在线观看 | 欧洲精品久久一区二区 | 69精品久久久久久久 | 男女一级黄色 | 国产精品扒开腿做爽爽爽a片唱戏 | 国产高清自拍一区 | 久久一线 | 欧美日韩乱 | 极品粉嫩国产18尤物 | av电影中文字幕 | 日韩av一区二区三区 | 波多野吉衣一区二区 | 色播五月婷婷 | 欧美成人专区 | 国产色片在线观看 | 精品一区在线观看视频 | 国产精品成人一区二区三区电影毛片 | 精品久久久久久中文字幕 | 免费高清毛片 | 男人天堂av在线播放 | 夜夜艹| 色噜噜狠狠狠综合曰曰曰 | v天堂中文在线 | 国产精品四虎 | 欧美一区不卡 | 日韩精品在线视频免费观看 | 亚洲九九夜夜 | fee性满足he牲bbw| 午夜视频一区二区三区 | 欧美一区二区三区国产 | 国产freexxxx性播放麻豆 | 在线观看福利视频 | 欧美一区二区在线视频观看 | 亚洲色图35p| www.久久.com | 美女张开腿让人桶 | 国产成人在线播放 | japanesexxxx日本妞 | 欧美精品123 | 日韩欧美在线中文字幕 | 国产综合精品一区二区三区 | 羞羞网站在线看 | 色一情一区二区三区四区 | 天堂成人av| 在线免费观看亚洲 | 中文字幕在线观看播放 | 国产人妖在线 | 最新中文字幕视频 | 免费的av在线 | 成人一二三四区 | 日韩精品久久久久久 | 欧美在线影院 | 天天射天天干天天操 | 中文字幕在线观看第二页 | 欧美一级鲁丝片 | 白浆影院 | 国产一区二区视频在线观看免费 | 欧美福利在线视频 | 国产精品一品二区三区的使用体验 | missav | 免费高清av在线看 | 精品久久久久久亚洲 | jizz91 | 国产人妖视频 | 男人的天堂2019 | 免费看一级视频 | 古装做爰无遮挡三级聊斋艳谭 | 欧美一区二区三区网站 | 99国内揄拍国内精品人妻免费 | 河北彩花av在线播放 | 99久久精品无码一区二区毛片 | 欧美草b | 四虎在线免费 | 美女一区二区三区视频 | 亚洲爆爽 | 熟妇人妻中文av无码 | 午夜精品一区二区三区三上悠亚 | 涩涩的视频在线观看 | 欧美日韩精品 | 国模叶桐尿喷337p人体 | 9999在线视频 | 欧美又粗又大aaa片 老熟妇仑乱视频一区二区 亚洲妇女体内精汇编 | av加勒比在线| 揉我啊嗯~喷水了h视频 | 神马午夜影院 | 亚洲天堂影视 | 日韩在线观看视频一区二区三区 | 免费看片网站91 | 黄色www网站 | 在线免费观看污视频 | 国产精品日韩 | 欧美日韩在线观看视频 | 成人免费黄色片 | 五月激情视频 | 用舌头去添高潮无码视频 | 国产专区一区二区 | www久久久天天com | 草青青视频 | 久久性网 |