1. 程式人生 > >1.3.3、開發板刷系統:破壞原有的bootloader從SD2的bootloader啟動

1.3.3、開發板刷系統:破壞原有的bootloader從SD2的bootloader啟動

  1. 為什麼需要給開發板刷系統?

    1. 因為開發板買過來後預設已經裝好了一個4.0的安卓系統,在這個系統之上沒辦法做實驗。
    2. 我們要做的實驗是和裸機程式設計有關的,所以不需要跑系統,所以要想辦法把原有的系統破壞掉。
  2. 破壞方法:

    1. 安裝好USB裝串列埠驅動,將串列埠線插到開發板的UART2口(開發板預設系統使用了UART2口)。
    2. 開啟一個串列埠監視軟體(SecureCRT),選擇正確的COM號,設定波特率為115200.
    3. 然後啟動機器,會看到串列埠工具上面會列印很多的文字資訊,然後等待預設的安卓系統完全跑起來。
    4. 系統完全跑起來以後,在串列埠工具中敲回車鍵,進入命令列模式。
    5. 敲入命令:
      • busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
      • sync
    6. 命令的意思就是說把板載的iNand的第一個扇區用全0來填充,其實就是擦除它,這樣我們板載的iNand的bootloader的開始第1個扇區就被破壞了。將來啟動時iROM還是會先從iNand中讀取前16KB,然後計算校驗和。這時候因為有1個扇區被擦掉了,所以校驗和不通過,所以啟動失敗(會從SD2去執行2nd啟動)。
    7. 至此,就破壞了原有的iNand中的bootloader,重新開機會在串列埠上提示以下資訊:
      • SD checksum Error
      • SD Init Error
      • Uart negotiation Error
    8. 但是並沒有破壞iNand中的安卓系統,我們只是需要能使S5PV210從SD2通道中啟動2nd就可以了。
  3. 那要怎麼讓S5PV210從SD2執行bootloader呢?

    1. bootloader肯定是使用開發板原廠提供的uboot.bin檔案,所以先找到開發辦廠商提供的uboot.bin檔案,我還是選擇和開發板預設使用的安卓4.0的uboot.bin,這樣可以幫我能重新正常把預設的安卓4.0再跑起來。
    2. 想辦法把uboot.bin放到SD卡里面,這裡還是要藉助開發板廠商提供一個的燒錄軟體:x210_Fusing_Tool.exe
    3. 將SD卡插入電腦,然後開啟x210_Fusing_Tool.exe,然後通過x210_Fusing_Tool.exe開啟uboot.bin,然後點選Start開始燒錄。
    4. 成功將uboot.bin燒錄到SD之後,將SD插到開發板的SD2插口,然後開機。
    5. 這個時候就能看到如下所示的資訊:
      • 這裡寫圖片描述
      • 第一行:SD checksum Error是提示預設在SD0通道的iNand上的bootloader校驗錯誤。
      • 第二行:OK提示在SD2通道的SD卡里面的bootloader校驗成功。