开发板刷系统
一、开发板刷系统
1.1、什么是刷系统
刷系统就是利用刷机工具,向开发板中烧录预先编译好的系统镜像,使之在开发板上运行起来。
1.2、串口输出的意义(做系统控制台)
串口是一种硬件通信口,很多年前的时候串口是CPU之间进行通信的主要接口。但是现在因为串口通信的速度很低,所以现在串口主要是用来做程序输出监控、调试。
桌面电脑可以打开一个虚拟控制台,嵌入式系统一般是用串口来做控制的。一般是用一根串口线连接开发板的串口和我们笔记本电脑的串口,然后在电脑上打开一个串口监视,这样开发板上的串口输出内容就可以在电脑上看到。还可以通过监视终端向开发板输入一些控制命令由开发板执行。常用的串口监视软件有:超级终端、SecureCRT、minicom等(随便用哪个都可以,只是一个工具而已)
1.3、安装USB转串口线的驱动
本来电脑都是有串口的(DB9接口),但是现在大家都用笔记本没有串口了,所以这种串口连接线用不了。办法是使用USB转串口线,这种线插入电脑后需要安装驱动,安装驱动后电脑上会形成一个串口(叫USB转串口),这样就相当于你电脑有了一个串口,可以通过这个串口来监视开发板的串口输出。
当我们将USB转串口线插入电脑和开发板,未安装USB转串口时,我们在电脑的设备管理器中可以看见红色框标出来的这样一个警告:
然后就可以去安装驱动了,”绿联USB转串口驱动”这个文件夹里面有很多,我们选择“PL2303_Prolific_DriverInstaller_v1.9.0”,解压,然后双击运行“PL2303_Prolific_DriverInstaller_v1.9.0.exe”即可。成功安装驱动之后就会显示成这样:
注意1:windows对USB设备的管理是和USB口(硬件口)有关的,你每次把USB转串口线插到1个口中,这样得到的COM口号码是不变的,方便我们后期使用。如果每次胡乱更换插口,可能得到的COM口会变。
注意2:COM口号码是可以改的,还可以强制占用显示“已使用”的COM号,一般改成COM4以内的就可以了(因为有些串口监视软件只支持到COM4)。
如何改COM口号码呢?
右键——>属性——>端口设置——>高级,下面就有个COM口号码,可以更改,可以强制占用某个COM口号码。
1.4 、使用secureCRT
从网盘下载secureCRT.rar,解压后直接使用。注册时参考解压包中的《说明.txt》。
打开secureCRT.exe后,点击快速连接,选择serial协议,选择端口,波特率选择115200。设置参考视频中,注意数据流控下面的一定要去掉。“保存会话”和“在一个标签中打开”可以勾选上。然后点击连接就可以了。
开发板这边串口一定要接串口2(官方出厂默认的烧录镜像都是使用串口2的),然后开机,就可以看到串口信息了。
1.5 、破坏iNand 中的bootloader以从SD2启动
破坏iNand中的bootloader的文档是A盘中的UserManual中的《x210v3开发板SD卡烧写教程.pdf》
由于 S5PV210 芯片的 SD0 和 SD2 启动的拨码开关完全相同,默认 CPU 会首先从 SD0 (即板载的iNand)启动,如果 SD0 没有数据,才会从 SD2 启动。而 x210 开发板 SD0 接了 emmc,如果 emmc 中有 bootloader,上电后会自动引导 emmc 中的 bootloader,这时,如果我们需要从 SD2 启动,就需要破坏掉 emmc 中的 bootloader。(需要注意是破坏Linux平台下的bootloader还是Android平台下的bootloader)
进入相应平台的控制台下,输入下面的命令进行破坏:
busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
sync
解释:dd是Linux的命令,用来读写磁盘,dd可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。if=文件名:输入文件名,默认为标准输入,即指定源文件,在这里是特殊设备,一个全零设备。of=文件名:输出文件名,默认为标准输出,即指定目的文件,在这里是iNand,这就相当于是把全零写到iNand中去。bs=bytes:同时设置输入/输出的块大小为bytes个字节。seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
这句代码的意思是:把板载的iNand的第一个扇区用全0来填充,其实就是擦除它,这样我们板载的iNand的bootloader的开始第一个扇区就被破坏了。将来启动IROM还是会先从iNand中读取前16KB,然后计算校验和。这时候因为有1个扇区被擦掉了,所以校验和不通过,所以启动失败(会从SD2去执行2nd启动)。
输入破坏命令后的效果如下:
破坏板载iNand的bootloader后,不插外部SD卡,重启时串口得到:SD checksum Error
1.6、 制作启动SD卡(其实就是烧录uboot到SD卡中)
制作启动SD卡,其实就是把uboot烧录到SD卡中去,烧录方法其实就是写SD卡的过程。
有2中烧写方法:一种是在windows中用刷卡工具去制作启动SD卡;另一种是在Linux中用dd命令。
本节介绍第一种(比较简单),刷卡工具在光盘:X210V3S_A\tools\x210_Fusing_Tool.rar
将SD卡插入电脑的卡槽之后就会这样显示:
现在只需要加入uboot的地址,然后就可以开始烧写了。
可用的uboot在光盘:X210V3S_B\android4.0.4\image\inand\uboot.bin,这个uboot可以用。或者是用X210V3S_B\linux\QT4.8\image\uboot.bin
点击开始,显示这样就表示烧写成功:
制作完SD后将SD卡插入开发板SD2通道(注意不是SD3),在开机自动启动倒数3秒之内迅速按下电脑回车键,打断自动启动,进入到uboot的操作界面。(否则会自动启动iNand中的Android)
为什么还会启动Android呢?我们刚才只是破坏掉了iNand的第一个扇区,即破坏了启动的代码uboot,但是Andorid的代码我们并没有破坏,当从iNand的启动代码去启动的时候就会启动不起来,这时,就会转去从通道2去启动uboot,没有插SD卡时,first 启动失败,second启动也失败,插入SD卡后,启动时还是先去iNand启动uboot,但是uboot被破坏,无法启动,就会去SD启动,SD卡中有uboot,就会启动uboot,然后还是会去iNand中去读取Android,启动成功。
1.7 、fastboot介绍
fastboot是uboot中用来快速下载镜像的一个命令,fastboot同时还是一个windows上的软件。
fastboot下载时要注意1:fastboot是使用USB进行数据传输的,所以fastboot执行之前要先连接开发板和主机之间的USB线。
这根线大头插在电脑,小头插入开发板OTG口。
fastboot下载时要注意2:需要安装驱动;
1.8 、fastboot驱动(X210 Android驱动)的安装
驱动位置:A盘\tools\USB驱动\x210_android_driver
在uboot操作界面中输入fastboot命令即可启动fastboot
启动fastboot后,在设备管理器中会有一个带感叹号的驱动,右键点击更新驱动程序,然后“浏览我的计算机以查找驱动程序软件”,然后将驱动程序的路径放入其中,点击确定即可。安装成功后是这样的:
驱动装好了之后,就能找到设备了,通过fastboot这个软件,路径为210开发板光盘资料\X210V3S_A\tools\fastboot.rar,将其复制粘贴到一个好访问的路径G盘,粘贴解压即可。里面有如下4个东西:
不要去双击fastboot.ext,它不是这样用的。
输入cmd,进入windows的控制台,进入到fastboot这个文件夹。然后结合下面的fastboot的常用命令就可以使用了。
1.9 、fastboot常用命令
fastboot devices 命令用来查看当前连接的设备。(我们开发板看到的是:SMDKC110-01)
fastboot flash xxx 命令用来烧录的
fastboot reboot 命令用来重启系统
1.10 、使用fastboot烧录android4.0.4镜像
在cmd下使用以下三个命令来完成烧录
fastboot flash bootloader android4.0.4/uboot.bin 烧uboot
fastboot flash kernel android4.0.4/zImage-android 烧Linux kernel
fastboot flash system android4.0.4/x210.img 烧Android rom
uboot的参数设置:set bootcmd ‘movi read kernel 30008000; bootm 30008000’(默认就是这个,不用设置也行)
这三条命令中,fastboot flash是命令,bootloader 、kernel、system是要被烧录的分区,可以从uboot操作界面上看到,一共有7个分区,我们烧录其中的三个,分区右边就是要烧录的镜像的名字。这些镜像都在光盘中X210V3S_B\android4.0.4\image\inand中,将这些要烧录的镜像复制,然后在前面解压后的fastboot目录下新建一个文件夹,将这些镜像粘贴到这里面。
本来其实可以直接粘贴到fastboot目录下,但是以后我们还可能要烧录其它的一些系统,所有都放在一个目录下太乱,故新创建一个文件夹,将要烧录的镜像放入其中。
然后,就可以在windowsd的控制台去逐条执行上面的3条命令。执行成功后在secureCRT的uboot操控界面上可以看到如下情形:
烧录完成之后就可以重启了,重启的方式有很多,可以选择上面使用fastboot命令的那种方式。然后整个刷机就完了。
1.11、烧录系统
如果板载的uboot能够启动,那么我们就不用再插入SD卡了,使用SD卡是因为板载的uboot的扇区被破坏了,不能启动了,如果板载的uboot是完好的,能够启动,自然就不用SD卡了。直接启动过后,按回车键进入uboot操作界面就可以了。
(1)烧录Linux + QT
fastboot flash bootloader linuxQT/uboot.bin 烧uboot
fastboot flash kernel linuxQT/zImage-qt 烧Linux kernel
fastboot flash system linuxQT/rootfs_qt4.ext3 烧rootfs
uboot的参数不用特意设置(因为我们刷了专为Linux + QT定制的uboot,这个uboot中估计已经预制好了所有的启动参数)
(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是在左上角。
(3)烧录Android4.0.4
fastboot flash bootloader android4.0.4/uboot.bin 烧uboot
fastboot flash kernel android4.0.4/zImage-android 烧Linux kernel
fastboot flash system android4.0.4/x210.img 烧Android rom