在Linux下,用OpenJTAG+OpenOCD燒寫NAND Flash

來源:互聯網
上載者:User

    一直以來,眾多的開發工具都是基於windows的,nand flash的燒寫工具也一樣。

    我手頭有數塊s3c2410/s3c2440/at91sam9263/pxa310等開發板,除了在windows下,好像也找不到合適的燒寫工具。對於s3c2410僅僅只有jflash,通過並口和wiggler來燒寫。大多數筆記本根本沒有並口,連台式機有並口的都在慢慢消失,幸好我的筆記本有。但是公司的筆記本全是無並口的linux。

    ARM的模擬器種類很多,比較常見的jlink, 也只能用於windows環境。偶然機會,發現OpenOCD這個好東西.接著又發現了OpenJTAG, 一個和jtagkey 是同一種layout的模擬器,而且一般配合OpenOCD使用。並且OpenJTAG用的是FT2232, 內部含兩個uart通道, 再加了一個max的uart --> rs232電平訊號轉換晶片,這樣就可以為我們的筆記本節省了一個usb轉串的線了。在USB口比較稀少的本本上,甚至為你節省了一個USB hub. 但是網上一般都賣到180一個,個人覺得太離譜了,90塊錢頂了天.

     沒辦法,在taobao拍了一個, 拿過來裡面有張光碟片,裡面講的燒寫flash的方法居然是先init sdram, 再將u-boot放到sdram,通過u-boot來燒寫nand. 這和我要求相差很遠,因為我是要燒自已開發的bootloader,不是要燒別的,這樣雖然可以做到,但是也太麻煩。沒辦法,我就下了個最新版的OpenOCD,查看裡面的代碼,居然有燒寫nand的部分,而且支援好幾種nand.

     好了,廢話少說,先說怎麼實現直接燒寫吧,下面以s3c2440為例:

     這裡省略OpenOCD 編譯,可以到csdn的下載中心搜尋我上傳的openjtag.tar.bz2的打包檔案,裡面openocd的代碼我做了小更改,並且在README有編譯和使用的詳細步驟.

 

     首先在你的openocd.cfg中的最後加入:

             nand device s3c2440 0

     然後啟動openocd:

             openocd

     再用telnet連上openocd:

             telnet  127.0.0.1 4444

     然後在執行nand的命令的前,都要先用nand probe探測:

             nand probe 0

      看是否找到你的nand flash, 記得給開發板上電喲.

      有的平台可能會出現  Address translation failure, 那是因為Openocd有bug, 本來D cache沒有開,它認為了開了,並且認為MMU也開了,訪問的每個地址都會進行轉換,而又找不到頁表,所以就出現轉換錯誤。解決辦法就是用:

             reset; halt

      將開發重啟,注意, 將reset;halt輸在一行,中間用分號隔開,這樣arm剛重啟就暫停了,這個時候d cache肯定是關著的。這個時候再用:

              nand probe 0

      就不會出現地址轉換失敗了.

     接下來就可以進行讀、擦除、寫了:

      從第0個nand上第10位元組開始讀512個位元組到dump.bin檔案中:

             nand dump 0  /dump.bin  10  512

      從第0個nand上第9塊擦除到第15塊(共擦除了7 * block_size個位元組):

             nand erase 0 9 15

      將/u-boot.bin寫到第0個nand上的4K開始的地方:

             nand write 0 /u-boot.bin  4096

 

      注意,寫之前都要先擦除。寫的時候是根據你檔案大小來寫的。

     很多時候會出現寫不成功的情況,你可以在寫完用nand dump看一下寫成功沒有,沒有的話再寫一遍就OK了。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.