s5pv210開發板(朱老師嵌入式核心課程中使用的開發板)刷機過程中遇到的一些問題,整理出來以便日後查閱翻看。
2.開發板的系統在整個執行階段都會將log資訊通過串列埠輸出,以便除錯開發者除錯開發,也為刷機留了相應的介面。
3.刷機能看到實際成功與否的前提是先將原有的在板子中的映象破壞掉,系統不能正常啟動之後,我們再將系統映象成功的刷入板子當中。
首先破壞開發板板載的inand中uboot的一部分,使其檢驗失敗,這樣就算是將uboot破壞了,間接的破壞了整個系統的啟動。在將串列埠連線至電腦,利用secure crt作為控制台來監控系統的狀態,在uboot階段會有3s的等待時間才會進入系統啟動。我們在系統啟動之後在android的控制台下去破壞uboot中的扇區。(在secure crt下)
busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync 該條指令把uboot的第乙個扇區全部清零
然後執行sync指令,同步扇區資訊。此時已經破壞完成uboot,再次啟動系統檢驗失敗uboot已經被破壞。
刷機的兩種方式:usb刷機(dnw工具)和sd卡刷機
由於開發板啟動方式支援很多中,包括inand/sd卡/mmc卡/外部usb啟動等方式。
這兩中刷機方式就是利用在開發板不同啟動方式的情況下分別用兩種不同的方式來刷機的。
1.關於dnw驅動安裝
window7/8/10均要關閉數字簽名之後才可以順利安裝驅動,安裝成功之後若是在燒錄uboot的時候出現dnw error ini的錯誤提示的話,在c盤根目錄下刪除dnw,ini檔案,之後用管理員身份執行dnw就可以正常燒錄uboot。在該種方式下燒錄時開發板的啟動方式要切換至通過外部usb啟動的方式。
在dnw方式下刷機有點類似於,將兩小段uboot中的引導部分燒錄到sram中執行起來,然後在uboot啟動的3s內進入uboot階段,在uboot階段將磁碟重新分割槽(在燒錄該兩段程式過程中開發板不能斷電。)
執行fdisk -c 0
然後執行fastboot ,讓開發板處於fast boot模式下,即允許對應的外部可執行程式對其進行刷機操作
然後在cmd下,進入自己的fastboot的可執行程式檔案下,(最好將系統映象包括uboot,kernel system都放在該路徑下)。
fastboot flash bootloader android4.0/uboot.bin // 燒uboot
fastboot flash kernel android4.0/zimage-android // 燒linux kernel
fastboot flash system android4.0/x210.img // 燒android rom
過程中看到開發板進度條順利走完,並且再次重啟系統可以啟動,則說明刷機成功。
關於上面三條指令的含義就是在window下執行fastboot.exe的可執行程式,傳參為flash bootloader/kernel/system
2.sd卡刷機
將uboot的映象利用開發板廠商提供的燒錄工具燒錄到sd卡,就將啟動卡做好了。(使用這個工具是有的系統必須用管理員許可權才可以燒錄成功,我是window10,試了好多次就是不成功,最後發現是管理員許可權就可以解決)
然後將sd卡插入可作為系統啟動的sd卡槽中,將系統啟動方式調整至sd卡啟動方式(也不是絕對的sd卡啟動,由於內部的inand中的uboot被破壞,所以第一步檢驗失敗之後轉向sd卡啟動,這也是為什麼sd卡可以作為啟動卡的原因)。此時按下電源鍵系統正常啟動說明sd刷機完成,sd卡作為刷機介質,實際叫做啟動介質。
以上是今天將吃灰好久的板子拿出來,解決並找到的一些問題與整理彙總。
S5PV210 裸機中斷
這裡我以外部中斷為例畫出了中斷響應的過程。當外部中斷得到響應,會由硬體自動轉到異常向量表,執行對應的異常處理程式。在這裡指的就是irq的處理程式。在異常處理程式irq handle中將會執行現場的保護與恢復,以及最重要的中斷處理函式 注意,這裡就來到了中斷處理部分,而不是異常處理了,相當於是乙個兩級...
S5PV210控制蜂鳴器
s5pv210帶有乙個蜂鳴器,十分吵鬧,本章將學習如何控制蜂鳴器。相關引腳 蜂鳴器的操作十分簡單,原理跟操作led一樣,通過控制gpdo o這個引腳就可以達到控制蜂鳴器的目的。1.start.s start.s做了下面3件事 第一步 關看門狗 第二步 設定棧,以便呼叫c函式 第三步 呼叫main函式...
S5PV210控制蜂鳴器
s5pv210帶有乙個蜂鳴器,十分吵鬧,本章將學習如何控制蜂鳴器。相關引腳 蜂鳴器的操作十分簡單,原理跟操作led一樣,通過控制gpdo o這個引腳就可以達到控制蜂鳴器的目的。1.start.s start.s做了下面3件事 第一步 關看門狗 第二步 設定棧,以便呼叫c函式 第三步 呼叫main函式...