s3c2440存儲控制器
A. 以s3c2440晶元為核心開發的嵌入式系統,其上電執行時工作在什麼模式下
不管S3C2440的啟動設備是什麼,它都是從0x0000 0000地址開始執行程序的,所不同的是地址的映射不一樣。基於S3C2440的嵌入式系統上電之後,需要首選選擇啟動設備,2440的啟動方式選擇是通過模式引腳OM1和OM0來配置的,如圖1 所示為2440的啟動方式選擇說明:
圖1 S3C2440啟動方式說明
由上圖可知,S3C2440支持兩種啟動模式:NAND和非NAND(這里是Nor Flash),具體採用的方式取決於OM0、OM1兩個引腳的狀態。
OM[1:0所決定的啟動方式
OM[1:0]=00時,處理器從NAND Flash啟動
OM[1:0]=01時,處理器從16位寬度的ROM啟動
OM[1:0]=10時,處理器從32位寬度的ROM啟動。
OM[1:0]=11時,處理器從Test Mode啟動。
由於NAND FLASH是接在NAND FLASH控制器上而不是系統匯流排上,所以沒有在S3C2440A的8個BANK中分配地址空間。如果S3C2440被配置成從Nand Flash啟動,在S3C2440上電後,Nand Flash控制器的會自動的把Nand Flash上的前4K數據搬移到內部SRAM中,也就是所謂的」Steppingstone」, 同時把這段片內SRAM映射到nGCS0片選的空間(即0x00000000)。系統會從這個內部SRAM中啟動,程序員需要完成的工作,就是把最核心的啟動程序放在Nand Flash的前4K中,也就是說,你需要編寫一個長度小於4K的引導程序,作用是將主程序拷貝到RAM (一般是SDRAM)中運行。而在Nand Flash方式啟動的情況下,系統是」看不到」Nor Flash的,因為Nor Flash也是掛在nGCS0上的,而nGCS0的地址空間已經被佔用了。
TQ2440使用的Nor Flash是AMD公司的AM29LV160DB,它是16bit數據位寬的Nor Flash。因此,當選擇從NOR FLASH啟動時,OM1和OM0應該分別是低電平和高電平。此時,NOR FLASH被映射到0x00000000地址(就是nGCS0,這里就不需要片內SRAM來輔助了,而片內SRAM的起始地址還是0x40000000)。 然後2440從0x00000000開始運行(也就是在Nor Flash中運行)。