s5pv210开发板、原理图、刷机和数据手册
筆記源自《朱老師物聯網大講堂》
《1.3.ARM裸機第三部分-開發板、原理圖和數據手冊》
第一部分、章節目錄
1.3.1.開發板和光盤資料簡介
1.3.2.開發板硬件手冊帶讀
1.3.3.開發板刷系統1
1.3.4.開發板刷系統2
1.3.5.開發板刷系統3
1.3.6.X210核心板、底板原理圖導讀1
1.3.7.X210核心板、底板原理圖導讀2
1.3.8.S5PV210數據手冊導讀
1.3.9.補充-x210的dnw刷機
1.3.10.補充-linux下使用dd命令刷寫uboot
第二部分、章節介紹
1.3.1.開發板和光盤資料簡介
介紹課程配套開發板X210大概情況,并且詳細介紹開發板官方提供的光盤資料分布,哪些有用哪些暫時用不到。
1.3.2.開發板硬件手冊帶讀
帶著大家一起讀開發板官方提供的硬件手冊《X210V3硬件手冊.pdf》,了解開發板的一般配置和硬件信息。
1.3.3.開發板刷系統1
安裝USB轉串口線驅動,使用SecureCRT做串口連接,進入系統控制臺,并且破壞出廠預燒錄的android系統以從SD啟動
1.3.4.開發板刷系統2
制作啟動SD卡,并且從SD卡啟動使用fastboot燒錄uboot、kernel、根文件系統等到板載iNand中(dnw工具燒錄)
1.3.5.開發板刷系統3
android系統鏡像燒錄、linux+QT鏡像的燒錄
1.3.6.X210核心板、底板原理圖導讀1
帶大家一起看開發板原理圖,對原理圖的一般看法、查法、作用做系統講解,為以后學習外設編程時查原理圖打好基礎
1.3.7.X210核心板、底板原理圖導讀2
帶大家一起看開發板原理圖,對原理圖的一般看法、查法、作用做系統講解,為以后學習外設編程時查原理圖打好基礎
1.3.8.S5PV210數據手冊導讀
帶大家一起讀S5PV210的數據手冊,以及其他板載硬件的數據手冊的讀法擴展。
1.3.9.補充-x210的dnw刷機
很多同學反映uboot擦掉后內部iNand啟動失敗,外部SD啟動也失敗,機器變磚頭了···于是乎給大家增補一個dnw刷機的方式,經同學實踐可以解決問題。
1.3.10.補充-linux下使用dd命令刷寫uboot
有同學電腦運行不了九鼎開發板中提供的SD卡刷卡軟件,于是乎希望在linux下完成刷機。這里我順便補充下linux下使用dd命令刷寫uboot到SD卡來制做SD啟動卡的教程,以供大家使用。
第三部分、隨堂記錄
1.3.1.開發板和光盤資料簡介
詳見課程視頻和光盤資料。
1.3.2.開發板硬件手冊帶讀
詳見開發板光盤中《X210V3硬件手冊.pdf》
1.3.3.開發板刷系統1
1.3.3.1、什么是刷系統
刷系統就是利用刷機工具,向開發板中燒錄預先編譯好的系統鏡像,使之在開發板上運行起來。
1.3.3.2、串口輸出的意義(做系統控制臺)
串口是一種硬件通信口,很多年前的時候串口是CPU之間進行通信的主要接口。但是現在因為串口通信的速度很低,所以現在串口主要是用來做程序輸出監控、調試。
桌面電腦可以打開一個虛擬控制臺,嵌入式系統一般是用串口來做控制臺的。一般是用一根串口線連接開發板的串口和我們筆記本電腦的串口,然后在電腦上打開一個串口監視,這樣開發板上的串口輸出內容就可以在電腦上看到。還可以通過監視終端向開發板輸入一些控制命令由開發板執行。常用的串口監視軟件有:超級終端、SecureCRT、minicom
1.3.3.3、安裝USB轉串口線的驅動
本來電腦都是有串口的(DM9接口),但是現在大家都用筆記本沒有串口了,所以這種串口連接線用不了。辦法是使用USB轉串口線,這種線傳入電腦后需要安裝驅動,安裝驅動后在電腦上會形成一個串口(叫usb轉串口),這樣就相當于你電腦有了一個串口,可以通過這個串口來監視開發板的串口輸出。
注意1:windows對USB設備的管理是和USB口有關的,你每次把usb轉串口線插到1個口中,這樣得到的COM口號碼是不變的,方便我們后期使用。如果每次胡亂更換插口,可能得到的COM口會變。
注意2:COM口號碼是可以改的,還可以強制占用顯示“已使用”的COM號,一般改成COM4以內的就可以了。
1.3.3.4、使用SecureCRT
從網盤下載SecureCRT.rar,解壓后直接使用。注冊時參考解壓包中的《說明.txt》。
打開SecureCRT.exe后,建立一個Serial連接,開始監視串口。設置參考視頻中,注意流控一定要去掉。
開發板這邊串口一定要接串口2(官方出廠默認的燒錄鏡像都是使用串口2的),然后開機,就可以看到串口信息了。
1.3.3.5、破壞iNand中的bootloader以從SD2啟動
留待第四部分,做LED實驗時再說。
1.3.4.開發板刷系統2
1.3.4.0、破壞iNand中的bootloader以從SD2啟動
busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
sync
busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync
解釋:這句話的意思就是說把板載的iNand的第一個扇區用全0來填充,其實就是擦除它,這樣我們板載的iNand的bootloader的開始第1個扇區就被破壞了。將來啟動時iROM還是會先從iNand中讀取前16KB,然后計算校驗和。這時候因為有1個扇區被擦掉了,所以校驗和不通過,所以啟動失敗(會從SD2去執行2nd啟動)。
注意:破壞板載iNand的bootloader后,不插外部SD卡,啟動時串口得到:SD checksum Error
1.3.4.1、制作啟動SD卡(其實就是燒錄uboot到SD卡中)
有2種燒寫方法:一種是在windows中用刷卡工具去制作啟動SD卡;另一種是在linux中用dd命令。
本節介紹第一種(比較簡單),刷卡工具在光盤:A盤\tools\x210_Fusing_Tool.rar
制作完SD后將SD卡插入開發板SD2通道(注意不是SD3),然后開機就可以進入uboot界面了。在uboot開機自動啟動倒數3秒之內迅速按下電腦回車鍵,打斷自動啟動。(否則會自動啟動iNand中的android)
1.3.4.2、fastboot介紹
fastboot是uboot中用來快速下載鏡像的一個命令,fastboot同時還是一個windows上的軟件。
fastboot下載時要注意1:fastboot是使用USB線進行數據傳輸的,所以fastboot執行之前要先連接開發板和主機之間的usb線。
fastboot下載時要注意2:需要安裝驅動。
1.3.4.3、fastboot驅動(X210 Android驅動)的安裝
驅動位置:A盤\tools\USB驅動\x210_android_driver
1.3.4.4、fastboot常用命令:
fastboot devices 命令用來查看當前連接的設備。(我們開發板看到的是:SMDKC110-01)
fastboot flash xxx 命令用來燒錄的
fastboot reboot 命令用來重啟系統
1.3.4.5、使用fastboot燒錄android4.0.4鏡像
在cmd下使用以下三個命令來完成燒錄
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
uboot的參數設置:set bootcmd ‘movi read kernel 30008000; bootm 30008000’(默認就是這個,不用設置也行)
1.3.5.開發板刷系統3
1.3.5.1、燒錄linux+QT
fastboot flash bootloader linuxQT/uboot_inand.bin 燒uboot
fastboot flash kernel linuxQT/zImage-qt 燒linux kernel
fastboot flash system linuxQT/rootfs_qt4.ext3 燒rootfs
uboot的參數不用特意設置(因為我們刷了專為linux+QT定制的uboot,這個uboot中估計已經預制好了所有的啟動參數)
1.3.5.2、燒錄android2.3
fastboot flash bootloader android2.3/uboot.bin 燒uboot
fastboot flash kernel android2.3/zImage 燒linux kernel
fastboot flash system android2.3/x210.img 燒android rom
注意:android2.3中使用了串口0,所以啟動后要把串口插到串口0中,不然串口沒有任何啟動信息出來。android2.3中屏幕上的logo是在左上角(也是個刷機成功的標志)
1.3.5.3、燒錄android4.0.4
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
1.3.6.X210核心板、底板原理圖導讀1
核心板、底板原理圖瀏覽
寫代碼時需要查閱和參考的資料有:核心板原理圖、底板原理圖、相應硬件的數據手冊、S5PV210數據手冊
1.3.7.X210核心板、底板原理圖導讀2
1.3.7.1、原理圖、PCB圖、絲印圖各自是什么
原理圖是電路原理設計圖,各個電路中的部件的邏輯連接圖。原理圖可能會影響軟件編寫
PCB圖是我們用來制作電路板,并且用電路板進行原件焊接,做成最終產品的生產性圖紙。先有原理圖設計,然后根據原理圖來設計PCB圖。PCB4圖是對原理圖的一種實現。原理圖和PCB圖一般都由硬件工程師來負責,但是原理圖設計時軟件工程師會一定程度參與。PCB圖的設計就完全是硬件工程師的事情了,與軟件工程師無任何關系。
絲印圖是PCB圖設計中,所有原件的外框的框圖。絲印圖其實就是整個電路板的實體的位置圖紙,與軟件和功能無關,與生產制造有關。對軟件工程師來說,絲印圖可以不理會。
1.3.7.2、原理圖對嵌入式軟件工程師的意義
原理圖是電路的邏輯連接。對于可編程器件來說,不同的電路連接可能意味著不同的編程參數,因此底層軟件工程師會需要查閱原理圖的接法,從而決定自己的軟件怎么寫才能正確和硬件通信。
1.3.7.3、嵌入式軟件開發人員對硬件掌握程度的要求
對軟件工程師來說,硬件究竟有沒有必要會?會到什么程度?影響有多大?
軟件工程師分應用開發和底層開發兩大塊。對于應用開發工程師(直接基于操作系統來開發程序,調用操作系統的APi和庫函數等寫代碼)來說,硬件完全被操作系統屏蔽了,可以完全不關心硬件;但是對于底層軟件工程師(驅動開發的、單片機的、移植操作系統的)來說,看懂原理圖和數據手冊是非常有必要的,PCB圖就沒必要會了。
注意:一般來說,總工程師都是軟硬都會的,這個人一般軟件硬件都做過。所以對大家來說,如果時間很充裕,或者完全有條件,不妨都學習一點(學習是有輕重的);如果時間比較緊,著急工作,或者完全不感興趣,那就不要看了。
1.3.8.S5PV210數據手冊導讀
1.3.8.1、datasheet(數據手冊)的作用
數據手冊就是產品(一般是芯片)廠家編寫的,對這個產品的所有功能和用法的描述統一說明的文檔。
1.3.8.2、數據手冊的正確讀法:先通讀概覽,然后根據需要去查閱。
1.3.8.3、學會利用文檔目錄。
1.3.8.4、利用好pdf閱讀器的搜索功能。
1.3.9.補充-x210的dnw刷機
1.3.9.1、背景
1 之前講第三部分的時候只講了SD卡刷機,并沒有講usb啟動刷機(dnw刷機)。因為sd卡刷機較簡單,dnw刷機較麻煩。
2 有同學刷錯了uboot,錯刷成了nand版本的uboot(還有些確實沒刷錯uboot),這時候在uboot中執行了movi write u-boot 0x30000000后,再次開機碰到詭異現象:串口輸出亂碼、SD卡不啟動。以為開發板變磚頭了。這時候的解決思路就是dnw刷機。
3 第四部分(1.4.ARM裸機第四部分-GPIO和LED)的第一節課已經講過了dnw下載裸機程序(dnw的介紹,dnw驅動的安裝,配置下載地址的方法),大家可以先看這節課,然后再來看本節。
1.3.9.2、刷機準備
1 看x210 dnw刷機.txt,按照其中進行操作
2 事先把開發板啟動方式撥到usb啟動。OM5打到VCC就能從usb啟動
3 兩個刷機文件x210_usb.bin 和 uboot.bin 準備好。
1.3.9.3、刷機
刷機分2步:第一步刷x210_usb.bin,地址是0xd0020010;第二步刷uboot.bin,刷機地址是0x23e00000
uboot啟動起來后,先fdisk -c 0去重新分區,然后再fastboot·······
1.3.10.補充-linux下使用dd命令刷寫uboot
1.3.10.1、SD卡連接入linux中
首先得搞清楚:一個USB設備插到電腦后,要么可以在Windows中識別,此時不能在虛擬機linux中識別;要么能在linux中識別,但是在windows中又不見了。默認的一般都是連在Windows中的,所以linux是找不到的。
如果你需要將該設備連接到linux中,需要在VMware軟件的菜單“虛擬機 -> 可移動設備”中點選該設備,選擇連接
1.3.10.2、制作SD啟動卡
執行 ./nand_fusing.sh /dev/sdb
1.3.10.3、使用SD卡啟動
先確定開發板是從SD卡啟動的
然后確定板子內的iNand中的uboot是被破壞的,不能啟動的。
SD卡插入SD2通道,啟動即可。啟動后(看有沒必要fdisk -c 0來分區)使用fastboot繼續刷機。
總結
以上是生活随笔為你收集整理的s5pv210开发板、原理图、刷机和数据手册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python正方形阴影面积计算_利用Py
- 下一篇: 区块链简单实现