1. 在win7下需要以管理員身份執行,再format(這一步必須有,不能使用右鍵格式化),最後再program;
2. 如果error,重新啟動軟體,重複上步;
4. 還有人說用tf卡加sd卡套不行,也有人證明這是可行的。
這個功能是如何實現的呢?查閱資料後,有了一些自己的理解,總結如下:
首先,來看下6410的乙個啟動方式選擇。
設定為從sd卡啟動,11111000,
上電或復位後,實體地址位於0x80000000的32k irom被對映都位址0。(bl0)
這段程式是固化在處理器中的,它做一些初始化工作:1. 禁用watch-dog,2. 初始化tcm,3. 初始化裝置拷貝函式,用於拷貝bl1到steppingstone中,4. 初始化棧區域,5. 初始化pll,6. 初始化指令cache,7. 初始化堆區域,8. 拷貝bl1到steppingstone中,9. 驗證bl1,10. 跳轉到steppingstone中執行
從0位址開始執行,該程式初始化後,從sd卡讀取sd卡<=8k**(bl1),寫到內部ram,然後執行這段程式,bl1可以初始化系統時鐘,uart,sdram等裝置,然後拷貝bootloader2(bl2)到sdram中。
跳轉到sdram中的bl2,繼續執行,bl2可以支援更強大的功能,可以將os載入到sdram中,然後執行os。
因此,我猜測,mmc.bin即bl1和bl2,sd_write程式將這個寫入sd卡的特殊位置,如下。下面user file system是我們可以直接拷入sd卡的,而後面的是看不到的,只有通過軟體才能寫入。
而飛凌提供的mmc.bin會在初始化之後,自動擦除nandflash,然後從user file system中查詢是否存在u-boot.bin zimage cramfs這些檔案,乙個乙個燒寫入flash指定位址。這應該是在bl2中實現的。
很多人都對飛凌ok6410配套光碟中mmc.bin非常感興趣,也許因為它沒有開源的原因吧。這裡我總結一下我猜測的它的功能。我覺得總的來說相當於乙個uboot。
1.初始化後面要用到裝置;
2.在1秒內不按鍵就自動擦除nandflash,從sd卡中讀取u-boot.bin,寫入nand;從sd卡中讀取zimage、cramfs等檔案寫入nand;
3.如果按鍵就相當於乙個uboot
參考:
ok6410 sd卡啟動 裸機程式
我的思路本來是從sd卡啟動。完成初始化,然後實現了uart串列埠列印,接下來,用c寫裸機 的事 都應該比較容易了吧。注意事項 就是在程式鏈結位址是 0x0c000000,進入c語言之前設定sp的時候也要設定 為0x0c0002000。sdcopy.sh是將寫好的程式燒入sd卡,檔案路徑filepat...
OK6410 SD卡一鍵燒寫之我見
1.在win7下需要以管理員身份執行,再format 這一步必須有,不能使用右鍵格式化 最後再program 2.如果error,重新啟動軟體,重複上步 4.還有人說用tf卡加sd卡套不行,也有人證明這是可行的。這個功能是如何實現的呢?查閱資料後,有了一些自己的理解,總結如下 首先,來看下6410的...
關於6410的sd卡和nandflash啟動的區別
今天在公司我們隊長問我個問題,關於cortex的sd啟動流程和nandflash的啟動流程,一下想不起來了,中午閒來無事就整理了整理當初6410的兩種啟動方式的區別。在這裡寫一下。有不對的請指點,我對rom,ram,sram這些實在學不通。1,sd卡啟動6410 首先,sd卡啟動0位址在rom裡面,...