【轉】S3C2440開發板中SDRAM /NOR FLASH/ NAND FLASH地址分配

本文轉自:http://hi.baidu.com/jianqi2009/blog/item/90cc0d944b2fe05ed0135ee6.html/cmtid/9dc04295255f3111d31b70c9

 

TQ2440 開發板的NOR FLASH是16bit數據位寬,選擇從NOR FLASH啓動,所以OM0接VDD,OM1接VSS,NOR FLASH接的是ngcs0,也就是接在BANK0.因爲選擇的NOR FLASH是2Mbyte,所以NOR FLASH的地址範圍是0x0000 0000 --- 0x001f ffff。上電時,程序會從Norflash中啓動,ARM直接取Norflash中的指令運行。

 

   NAND FLASH 以頁爲單位讀寫,要先命令,再給地址,才能讀到NAND的數據。NAND FLASH是接在NAND FLASH控制器上而不是系統總線上,所以沒有在8個BANK中分配地址。如果S3C2440被配置成從Nand Flash啓動, S3C2440的Nand Flash控制器有一個特殊的功能,在S3C2440上電後,Nand Flash控制器會自動的把Nand Flash上的前4K數據搬移到4K內部SRAM中,系統會從起始地址是0x0000 0000的內部SRAM啓動。程序員需要完成的工作,是把最核心的啓動程序放在Nand Flash的前4K中,也就是說,你需要編寫一個長度小於4K的引導程序,作用是將主程序拷貝到SDRAM中運行。

 

   由於Nand Flash控制器從Nand Flash中搬移到內部RAM的代碼是有限的,所以在啓動代碼的前4K裏,我們必須完成S3C2440的核心配置以及把啓動代碼(U-BOOT)剩餘部分搬到RAM中運行,至於將2440當做單片機玩裸跑程序的時候,就不要做這樣的事情,當代碼小於4K的時候,只要下到nand flash中就會被搬運到內部RAM中執行了。

 

   不管是從NOR FLASH啓動還是從NAND FLASH啓動,ARM都是從0x0000 0000地址開始執行的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章