|
我使用的開發(fā)板是TQ2440,芯片S3C2440
2012年12月23日22:36:43
這幾天對ARM有關(guān)地址 方面疑惑很不少,隨著不停地搜索資料和看視頻教程,總算有點思路,現(xiàn)整理如下,若路過人看到有錯誤之處,歡迎提出修正,本人感激不盡。
1.用DNW燒寫裸機程序時,DNW軟件上的download address是指下載到內(nèi)存上某處位置(我認為是SDRAM,具體還得看u-boot即bootloader的源代碼,我目前還沒研究到那) 的地址,下載到那里后,由u-boot里的另外一個命令(nand write)將這些下載過來的數(shù)據(jù)拷貝到這些數(shù)據(jù)“應(yīng)該”處于的位置,如下載運行在nand flash的u-root,會被拷貝到nand flash的0地址處。
2.u-boot中的mtd命令可以查看由u-boot為了方便燒寫數(shù)據(jù)而在nand flash上劃分的分區(qū)
3. J-Link不能燒寫nand flash。
4.在ARM9里面,訪問SDRAM的地址,是由SDRAM的容量大小和地址線的接法決定的,具體在ARM9的官方數(shù)據(jù)手冊上有表格描述。
接128M的SDRAM的話,內(nèi)存的開始地址是0x3000 0000。
5.SDRAM類似內(nèi)存,因此常在網(wǎng)上的各高手們寫的教程資料中被稱為內(nèi)存。使用前需要初始化。
網(wǎng)上有這么一段敘述:
nand flash:適合大容量數(shù)據(jù)存儲,類似硬盤;
nor flash:適合小容量的程序或數(shù)據(jù)存儲,類似小硬盤;
sdram:主要用于程序執(zhí)行時的程序存儲、執(zhí)行或計算,類似內(nèi)存。
區(qū)別:
nor flash:可以直接執(zhí)行指令,讀取速度較快,寫入不太方便,擦除速度較慢。
nand flash:讀取速度比nor flash略快,但寫入、擦除都較快。但可靠性略低,需要做損耗平衡、數(shù)據(jù)校驗等。
因此:nor適合做程序存儲,nand適合做大容量數(shù)據(jù)存儲。二者都可以掉電保存數(shù)據(jù)/程序。
sdram:掉電后數(shù)據(jù)不保存,運行時需要動態(tài)刷新,但讀取速度都比flash快,適合啟動后的程序執(zhí)行。使用前需要初始化。
6.S3C2440A采用的是ARM920T的核心。
7.SRAM:靜態(tài)隨機存儲器,就是它不需要刷新電路,不像動態(tài)隨機存儲器那樣,每隔一段時間就要刷新一次數(shù)據(jù)。但是他集成度比較低,不適合做容量大的內(nèi)存,一般是用在處理器的緩存里面。像S3C2440的ARM9處理器里面就有4K的SRAM用來做CPU啟動時用的。
8.在編程軟件中,常提到RO,RW的設(shè)置。RO是指read only ,一般設(shè)置為Flash起始地址,對于ARM,都是0x0的。RW是read and write,指RAM地址,一般設(shè)置為內(nèi)部SRAM起始地址,默認跟在RO后面
2012年12月26日18:28:14
困擾了兩天,想用keil arm 來開發(fā)和調(diào)試ARM裸機程序,但總是下載不了,調(diào)試有時也不行,原來還有一個問題我沒理解。
就是需要設(shè)置一個的正確燒寫nor flash。但是不是選擇里面原有的S3C2440 Nand flash SP,這個錯誤我一直沒發(fā)現(xiàn)。。。而是選擇與TQ2440開發(fā)板使用的nor Flash相近的算法,不過這個算法說是不能擦除。不過沒關(guān)系,可以用JFlash ARM來擦除。
是這兩篇文檔解救了我,也使我更加了解ARM。哈哈!謝謝兩位作者。我現(xiàn)在可以調(diào)試和燒寫裸奔程序了。~~~高興!
http://www.docin.com/p-307947458.html
http://wenku.baidu.com/view/854e ... ?from=rec&pos=3
不過也反映了一個問題,自學(xué)就是這么碰運氣,找到相關(guān)資料,再經(jīng)過自己整理思考才能解決自己遇到的問題,如果是有老師帶的話,或許可以立即解開,但是不夠自己去找資料了解得多,雖然很困難,因為ARM還處于比較領(lǐng)先的科技前沿,相關(guān)文檔不如51、ARM多,但會用搜索引擎的關(guān)鍵字的話,對我來說成功解決問題的幾率還是比較大的
|
|