您好,登錄后才能下訂單哦!
UP-CUP6410開發板燒寫心得
我一年之前跟著老師學習燒寫過arm11的bootloader、內核、文件系統,那時候只知道該怎樣一步步的燒寫,并不知道沒一步究竟為何要這么做,因為只是想燒著玩,剛好可以把實驗室的那些壞的板子(同學們做實驗時,不小心把bootloader破壞了,上電不能啟動)拯救好,也就沒有寫文檔來總結一下,一年后的現在板子又壞了一批,學弟想學可是我已經忘記的差不多了,于是花了兩天的時間又重新學習了一遍,然后燒好了兩個開發板,教會了學弟!現在寫篇心得以后備用!以下僅僅是個人的理解,僅供參考!
燒寫總得來講分硬燒和軟燒。
硬燒是指在開發板的bootloader已被破壞的情況(開發板不能夠上電自動啟動的情況)時,通過燒寫軟件DNW和燒寫硬件UP-LINK來將u-boot.bin(bootloader文件中的一種)強行燒入NANDFLASH上的過程總稱。
軟燒是指只通過燒寫軟件DNW(或其他軟件)來將u-boot.bin、zImage(linux內核)、rootfs_up6410.cramfs(文件系統)按照先后的順序并跟據虛擬內存地址嚴格的燒到NANDFLASH上的過程總稱。
一個開發板系統已經損壞(這里指bootloader已被破壞的情況)到燒寫好需要先硬燒,后軟燒的過程!如果是內核文件損壞、或文件系統損壞,直接軟燒就可以了!
總體思想流程:先擦除(這里又叫格式化)NANDFLASH上的數據,然后再進行硬燒,接著在進行軟燒!
前期準備:安裝好USB驅動和并口(UP-LINK上并口線上的)驅動,接好線!
教你如何安裝驅動
安裝并口驅動:使用并口線將PC機和UP-LINK之間的并口連接好,在相對應將燒寫目錄里找到GIVEIO目錄,并將整個GIVEIO目錄拷貝到PC機的C盤下的\WINDOWS目錄下,并將GIVEIO目錄里面的giveio.sys拷貝到\WINDOWS\SYSTEM32\DRIVERS目錄下,然后打開控制面板,選擇添加硬件,選擇下一步,選擇是我已經連接到了此硬件,選擇下一步,選擇添加新的硬件設備,繼續選擇下一步,繼續選擇安裝我手動從列表選擇的硬件,選擇顯示所有設備,然后選擇從磁盤安裝,接著鼠標選擇點擊瀏覽,指定驅動的信息文件路徑為 C:\WINDOWS\GIVEIO\geveio.inf,點擊確定,并口驅動此時安裝完成!
安裝好USB驅動:使用USB線將PC機和UP-LINK之間的并口連接好,在相對應將燒寫目錄里找dao\DNW\USB Driver目錄,其他的步驟和選擇都和上面一樣!
接線:電源線、串口線(注意有三個串口,選擇接中間的口,其他口暫時不用沒信號)、USB-Drive線
燒寫流程分析:
一、擦除數據(格式化開發板)
需要使用開發板內在固化的WinCE啟動開發板執行格式化過程。先將開發板的跳線模式(出廠模式0010)修改為NORFLASH模式(0101),里面是1,外面是0,進入WinCE的DNW軟件,選擇configuration菜單,選擇option選項進入配置頁面,配置好串口(com1)、波特率(1152000),虛擬內存地址(WinCE專用地址0x50030000)選擇SerialPort菜單里的Connect選項,然后給開發板上電,接著按任意鍵出現一個菜單,選擇DOWNLOAD&Run選項(這里是0),按回車后開始通過USB Port選擇transmit傳輸\WinCE\BIN\EBOOT.nb0文件數據,等待幾秒后,進入Eboot菜單項,選擇A(高級格式化即清除所有的數據塊)、E(清除保留的數據塊)、F(進行低級格式化即從頭一直刪除到尾部)后,關閉WinCE的DNW,然后關掉開發板電源,將跳線撥到出廠模式。開始硬燒了。。。。
二、硬燒
在Windows系統下進入到Dos下使用并進入相對應的燒寫目錄找到SJF6410.exe文件來執行硬燒(此時應該先接好UP-LINK(指示燈由亮到滅)與開發板之間的插口,再給板子上電(UP-LINK指示燈由滅到亮),切忌不要先給板子上電在接上UP-LINK插口,否則開發板的電路可能會短路)。然后在該目錄運行這個命令 SJF6410.EXE /f:u-boot.bin,開始選擇菜單選項1(程序類型),回車后選擇0(燒寫程序),回車后選擇0(燒寫的目標起始地址為0),等待20分鐘后燒寫完成(#0-#104)時,選擇2回車后退出!硬燒完畢!關閉開發板電源,拔掉UP-LINK并口,開始軟燒了。。。
三、軟燒(內核燒寫、文件系統燒寫)
第一次燒寫后除BOOTLOADER外其他區域(內核區、文件系統區、應用程序區)仍為WINCE格式,需要使用nand燒寫命令將其他格式化,變為LINUX格式。下面開始燒寫:
1.內核燒寫
使用DNW燒寫軟件,啟動進入后檢查配置,選擇configuration菜單,選擇option選項進入配置頁面,配置好串口(com1),波特率(1152000),虛擬內存地址(WinCE專用地址0x50030000)選擇SerialPort菜單里的Connect選項,然后給開發板上電,(如果前面都沒有出現問題的話)此時DNW頁面會顯示一個跳動菜單信息,下面有倒計數,點擊空格鍵,進入UP-CUP6410#燒寫命令行。
輸入dnw c0008000(系統虛擬內存的首地址),回車后,觀察DNW軟件標題是否為 COM口信息,USB為OK,ADDR為0x50030000,下面提示你等待傳輸數據(如果不是則檢查USB數據線是否正確連接了PC機與開發板,USB驅動是否裝好等),通過USB Port選擇transmit選項開始傳輸zImage(系統內核),目的將zImage數據包傳入系統內存區,在c0008000系統虛擬內存首地址處等待準備寫入的空白地址區)。
UP-CUP6410# nand erase 40000 200000
這個命令是指以0x40000為擦除的首地址,擦除NANDFLASH上的0x200000大小的內存地址上的數據,命令格式是nand + erase+開始擦除的內存地址+往后擦除的大小。
UP-CUP6410# nand write c0008000 40000 200000
這個命令是指以0x40000為寫入的首地址,將c0008000處等待準備寫入的內核數據從NANDFLASH上的0x40000開始,寫入大小為0x200000內存地址上,命令格式是nand + write+等待寫入數據內存地址+寫入的開始之處+往后寫入的范圍大小。
2.文件系統燒寫
輸入dnw c0008000(系統虛擬內存的首地址),回車后,觀察DNW軟件標題是否為 COM口信息,USB為OK,ADDR為0x50030000,下面提示你等待傳輸數據(如果不是則檢查USB數據線是否正確連接了PC機與開發板,USB驅動是否裝好等),通過USB Port選擇transmit選項開始傳輸rootfs_up6410.cramfs(文件系統),目的將rootfs_up6410.cramfs數據包傳入系統內存區,在c0008000系統虛擬內存首地址處等待準備寫入的空白地址區)
UP-CUP6410# nand erase 300000 f00000
這個命令是指以0x300000為擦除的首地址,擦除NANDFLASH上的0xf00000大小的內存地址上的數據,命令格式是nand + erase+開始擦除的內存地址+往后擦除的大小。
UP-CUP6410# nand write c0008000 300000 f00000
這個命令是指以0x300000為寫入的首地址,將c0008000處等待準備寫入的文件系統數據從NANDFLASH上的0x300000開始,寫入大小為0xf00000內存地址上,命令格式是nand + write+等待寫入數據內存地址+寫入的開始之處+往后寫入的范圍大小。
此時開發板燒寫已經完成,可以重啟開發板,看一下DNW顯示的數據信息,感覺內心是不是特別的爽,充滿著喜悅和激動,并夾帶著成就感呢?
這里順便再加一點東西吧!關于Demo的傳輸,原理是將yaffs安裝包(DEMO)通過網絡文件傳輸到開發板中!開始準備工作,插好網線,修改PC機的IP為192.168.1.*,因為開發板的IP為192.168.1.199,打開FLASHFXP,注完冊后,點擊會話菜單選擇快速鏈接,此時輸入服務器的IP為192.168.1.199,在PC下找到yaffs.tar.bz2后放入開發板 /tmp目錄下,或者點擊yaffs.tar.bz2右擊后選擇傳送,也可以的!不好意思,要先打開超級終端或DNW后在進行網絡傳輸文件!
傳輸完畢后,進入到/tmp目錄下
tar xjvf yaffs.tar.bz2 –C /mnt/yaffs
等待解壓完畢后,進入到yaffs目錄下,就可以進行觸屏運行Demo中的小應用啦!。。。。。
好了,我相信這篇博客會幫助熱愛嵌入式的親們提供微薄之力的!謝謝你耐心看完,有錯誤之處,敬請指正!。。。。。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。