1. 程式人生 > >韋東山JZ2440學習日誌(2)

韋東山JZ2440學習日誌(2)

儲存管理器單元課堂筆記(未完待續,本章問題:對儲存管理器理解有偏差,暫時未能理清整個思路)

2440包括CPU,儲存管理器,外部有SDRAM,網絡卡等等,例如,CPU想讀0X300000,讀四位元組,

mov r1,#0x30000000

ldr r0,[r1]

根據配置資訊決定怎麼訪問外部裝置,想訪問一個晶片,需要哪些事情?首先,必須要有地址線,資料線(8/16/32,即資料寬度),第三,時鐘頻率,另外還有晶片相關的特性(行地址(多少位),列地址(多少位),BANK),只有配置好了儲存管理器,才知道怎麼訪問外部裝置

SDRAM需要知道列地址,行地址,重新整理週期,BANK,

首先配置儲存管理器,然後進行使用,對應書籍開發手冊第六章

13位行地址,9位列地址,重新整理週期為64M/8192

2440對外可以接8個外設(諸如SDRAM,網絡卡,NOR),為啥是八個,因為有8 BANK,八條片選訊號,SRAM非常快,但是很貴,SDRAM相對便宜,但跟複雜,分為bank,列行,還需要不斷重新整理,網絡卡,NOR與SRAM比較相似,

2440的啟動方式:1,用NOR FLASH啟動 2,NAND flash啟動

NOR啟動的時候0地址(BANK0)指向0地址,NAND啟動,0地址指向片內SRAM,上電後會將前4K內容拷貝到片內記憶體裡面,然後從0地址開始執行,

程式上電後,程式碼先是在NAND裡,NAND前4K被拷貝到片內SDRAM,從0地址開始執行。關看門狗,初始化設定儲存管理器,再將程式碼拷貝到SDRAM(非片內)裡面去,繼續執行

(補充4.28)總結:之前老是將儲存管理器與前面的SDRAM,NAND劃等號,導致概念混淆,其實二者並不相等,S3C2440是一個基於ARM的32位處理器,而其中1GB地址空間就是儲存管理器,這個管理器分為8個模組,即8個BANK,每個部分再對應連線相應外設例如網絡卡,擴充套件串列埠等等,每個不同的外部裝置又對應不同的起始地址,jz2440用了ban0到bank6

程式碼思路:使用匯編語言設定好儲存控制器,讓外接的SDRAM可用,之後將程式本身從steppingstone複製到SDRAM中,最後跳到SDRAM中執行,而steppingstone是一個4KB大小的內部RAM,上電後,NAND中的4KB資料會複製到steppingstone中,而這個實驗的意義在於通過儲存控制器呼叫外接的SDRAM,在外接SDRAM中執行之前的LED程式,通過程式執行速度證明了程式的確是在速度更慢的SDRAM中執行。同理,我們也可以通過控制儲存控制器去呼叫其他外部裝置比如網絡卡之類(未完待續)