注意:下載SUPERVIVI后,如果SUPERVIVI運行成功,現象是: LED1:閃爍
LED2:熄滅
LED3:常亮
LED4:熄滅
1:JLINK連接后,為什么要使用它內部的SRAM? JLink 的調試功能、燒寫Flash 的功能都很強大,但是對于S3C2410、S3C2440 的Flash 操作有些麻煩:燒寫Nor Flash 時需要設置SDRAM,否則速率很慢;燒寫Nand Flash 只是從理論上能夠達到,但是還沒有人直接實現這點。本文使用一個間接的方法來實現對S3C2410、S3C2440 開發板的Nor、Nand Flash 的燒寫。原理為:JLink 可以很方便地讀寫內存、啟動程序,那么可以把一個特制的程序下載到開發板上的SDRAM 去,并運行它,然后使用這個程序來燒寫。
當從NAND啟動時
[size=14.44444465637207px]cpu會自動從NAND flash中讀取前4KB的數據放置在片內SRAM里(s3c2440是soc),同時把這段片內SRAM映射到nGCS0片選的空間(即0x00000000)。cpu是從0x00000000開始執行,也就是NAND flash里的前4KB內容。因為NAND FLASH連地址線都沒有,不能直接把NAND映射到0x00000000,只好使用片內SRAM做一個載體。通過這個載體把nandflash中大代碼復制到RAM(一般是SDRAM)中去執行 [size=14.44444465637207px]當從nor flash啟動時 [size=14.44444465637207px]nor flash被映射到0x00000000地址(就是nGCS0,這里就不需要片內SRAM來輔助了,所以片內SRAM的起始地址還是0x40000000). 然后cpu從0x00000000開始執行(也就是在Norfalsh中執行)。
2:JLINK連接后,擦寫芯片不穩定的解決辦法
在使用JLINK時,用J FLASH擦除與編程S3C2440都很不穩定,這時需要使用下面的步驟;
1: 接好JLINK和開發板并且開發板在nor啟動位置;
2: 打開j-flash軟件 3: 導入配置文件“mini2440-S29AL016.jflash”,在file-open project打開; 4:用file—open打開supervivi-128M.bin文件(一定要把開發板光盤即橙色光盤的images目錄下的文件 拷貝到硬盤中加上后綴名.bin),起始地址:0. 5:聯機jlink和開發板,點target—connect; 6:如果聯機成功,就可以直接進行其他擦除,燒寫操作了,推薦直接用targe—autu(熱鍵F7)
3:串口終端沒有數據顯示的解決
在電路設計時,兩個串口通信,兩塊電路板A、B 設計時需要注意:TX_A <-->RX_B; RX_A <-->TX_B;
即在數據通路上要實現交叉;
基于標準與統一,公母口我們在使用前就要遵循接線標準,如下;按照這個標準,兩個公口或者兩個母口對接就要使用直連串口線,而不能使用交叉串口線;
DB9母頭/孔型: 引腳序號:2 3 5
信號定義:TXD RXD 地
DB9公頭/針型: 引腳序號:2 3 5
信號定義:RXD TXD 地
但是很多工程師在設計時沒有注意到公母口的區別,設計線路時,如下;這樣兩個公口或者兩個母口對接就要使用交叉串口線,而不能使用直連串口線;
DB9母頭/孔型: 引腳序號:2 3 5
信號定義:TXD RXD 地
DB9公頭/針型: 引腳序號: 2 3 5
信號定義:TXD RXD 地
---------------------或者----------------------------------
DB9母頭/孔型: 引腳序號:2 3 5
信號定義:RXD TXD 地
DB9公頭/針型: 引腳序號: 2 3 5
信號定義:RXD TXD 地
所以,總結,這個需要考察下實際的電路,做出正確的選擇,原則就是物理連接要使數據通路交叉。
|