admin管理员组

文章数量:1597897

准备工作

虚拟机:VM-Ware 16.2.3;

操作系统:Ubuntu Linux 16.04(搭建好的linux环境,交叉编译器等等);

USB转串口(PL2302驱动)及ADB驱动完成;

fastboot烧写工具;

iTOP-4412开发板(精英版);

TF卡及读卡器

一、引言

1.1 硬件相关设置

1、核心板封装方式

iTOP-4412的核心板Exynos4412 有两种封装方式:SCP(左)和POP(右),如下图所示。本文所用开发板为精英版POP-1G的配置。

2、电源

输入电压范围是 3.5v~5.5v,但是最佳的输入电压是 4v,这样可以使 S5M8767 芯片处于最佳的工作状态。 

3、拨码开关控制启动方式

开发板用拨码开关控制启动方式以及显卡输出,按照图的位置,从上到下编号依次分别是4,3,2,1,开关拨到左边为1右边为0。其中3和4选择使用屏幕,1和2选择启动方式,具体设置方法参考下述博文。

嵌入式Linux开发板_迅为iTOP-4412精英版入门篇(一)_WL_arm的博客-CSDN博客  https://blog.csdn/Eva20192020/article/details/132938725?spm=1001.2014.3001.5502

4、OTG接口

PCB上OTG接口,如下图所示,驱动程序可以用驱动精灵自动安装,有些系统厂家提供的驱动有可能不好使。

 5、UART口

超级终端接口是底板右侧两个串口靠下的那个CON3(UART2),靠边紧挨网口的串口。

到此为止,所有硬件设置完毕。 

1.2 Uboot相关理论

1、Bootloader和Uboot

Bootloader是嵌入式系统在加电后执行的第一段代码,通过这段小程序,进行硬件初始化,获取内存大小信息等,调整手机到适配状态。

在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行 。
对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloader。

Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。

对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序 。

2、Uboot

Uboot要能够进行Soc级(Soc内部外设)和板级(Soc外部外设)硬件管理。

Uboot中实现了一部分硬件的控制能力(Uboot中初始化了一部分硬件),因为Uboot为了完成一些任务必须让这些硬件工作。

譬如uboot要实现刷机必须能驱动iNand,譬如Uboot要在刷机时LCD上显示进度条就必须能驱动LCD,譬如Uboot能够通过串口提供操作界面就必须驱动串口,譬如Uboot要实现网络功能就必须驱动网卡芯片。

Uboot要能够被借助完成刷机操作。

uboot的入口就是开机自动启动,uboot的唯一出口就是启动内核。

3、bootloader 与 uboot的区别

BootLoader是嵌入式设备中用来启动操作系统内核的一段程序。

uboot(universal bootloader)是一种可以用于多种嵌入式CPU得BootLoader程序,换言之,uboot是bootloader的一个子集。

uboot的核心作用就是启动操作系统内核,其本质就是一段裸机程序。

二、恢复EMMC出厂设置流程

三、PC机制作TF启动卡

说明:当核心板的 u-boot 分区被烧写了错误的文件,导致开发板不能启动 uboot,本节就讲述如何制作可以烧写的 TF卡。

如果EMMC能进入u-boot模式跳过。

1、 准备一张TF卡插入读卡器中,将读卡器插入PC机USB接口,在计算机磁盘管理中能够看到该设备;

2、如果不是全新的(被分区了)在磁盘管理器中将已经分配的分区全部删掉,重新格式化成FAT32格式即可。

如下图,第一张图是一张全新的TF卡,格式为FAT32。

第二张图是被分区了的TF卡。

3、如果删掉分区的TF卡超过64G,Windows自己的格式化选项里可能没有FAT32,此时可以选择只格式化32G的空间,就可以格式化成FAT32的格式。 如下图所示。

4、Ubuntu虚拟机work文件夹中建立uboot文件夹,拷贝厂家提供的资料uboot源码压缩包到该文件夹uboot中。或通过SSH Secure File Transfer Client连接后传输也可以。操作结果如下图。

 

5、 命令解压缩"iTop4412_uboot_20180320.tar.gz" 文件,解压命令及结果如下图。

6、拷贝厂家提供文件夹中对应核心板的镜像源文件 “ u-boot-iTOP-4412.bin” 到上一步解压出来的文件夹“ iTop4412_uboot ”中。

提醒:这一步不能少,另外,镜像源文件 “ u-boot-iTOP-4412.bin” 已绑定在文章开头的资源链接,可自行下载,说明此镜像源文件对应4412精英版7寸金属框屏。

再次进入文件夹" iTop4412_uboot" ,如下图所示。

7、输入“df -l”命令,查看当前系统有哪些存储设备。

8、将FAT32格式的TF卡放入读卡器后插入PC机USB口,根据连接提示选择连接到虚拟机,在Ubuntu系统再次输入“df -l”命令,查看增加了哪些存储设备,如下图,通常是/dev/sdb*。

9、烧写文件“u-boot-iTOP-4412.bin”TF 卡,具体操作如下。

在执行下面这条命令的时候,要特别特别注意!一定要分清楚,哪个盘符是 TF 卡的盘符,如果不清楚,请务必先拔掉TF卡,在看清楚哪些盘符是 Ubuntu 系统的硬盘盘符后,再插入TF卡(这一切都是为了避免错误地格式化其他分区),分辨出哪个盘符是新增加的盘符,新增加的盘符才是 TF 卡的盘符。

Ubuntu 命令行中,执行命令
sudo ./mkuboot /dev/sdb

说明:“sd*”就是前面查到的 TF 卡盘符名,不要带 数字,比如这里识别为“/dev/sdb1”,那么如下图所示,使用命令“sudo ./mkuboot  /dev/sdb”,这里注意不要带后面盘符的编号。

最后需要执行sync,以免没有真正写入到磁盘中。

sync

Linux 中sync命令用于数据同步,sync命令是在关闭Linux系统时使用的。
Linux 系统中欲写入硬盘的资料有的时候为了效率起见,会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于 buffer 中的资料强制写入硬盘中。

10、检查可以烧写的 TF卡是否制作成功。

比较简单的方法是,使用读卡器连接 TF卡到 Win系统 上,如果在 Win系统上发现 TF 卡的存储空间减少了 写入内容的大小,那么这个 TF 卡就制作成功了。

注意:

 如果U口版本高而不识别,可以根据以下提示修改兼容配置:

在虚拟机 VMware Workstation 选项 “虚拟机 M”,进入“虚拟机设置”,如下图所示,根据 USB

口选择一下版本,如果是 USB3.1 则使用 USB3.1,如果是3.0就选3.0.

四、TF卡分区及格式化

将TF卡放回开发板,将拨码开关调成TF卡启动方式,开启开发板电源,等超级终端出现启动信息,马上回车进入uboot模式;如下图所示:

fdisk -c 1

fatformat mmc 1:1

ext3format mmc 1:2

ext3format mmc 1:3

ext3format mmc 1:4

说明:
分区:fdisk –c 1(1为TF);
格式化1分区:fatformat mmc 1:1(windows文件系统分区);
格式化2分区:ext3format mmc 1:2(linux文件系统分区);
格式化3分区:ext3format mmc 1:3(linux用户数据分区);
格式化4分区:ext3format mmc 1:4(linux缓存分区)。

结果如下述截图所示:

五、PC机制作TF烧写卡

1、将 TF 卡重新插入 PC 机,并在 TF 卡可以打开的分区上新建文件夹“sdupdate”,将 uboot 等四个文件拷贝到“sdupdate”文件夹中,也可以选择只拷贝 uboot 文件,如下图所示。

六、TF卡烧写镜像到EMMC

1、详细命令具体操作可以参照博文: 迅为iTOP-4412精英版之fastboot烧写方式及命令_itop4412 reset键失效-CSDN博客 将制作好的 TF 烧写 卡插入开发板,设置开发板为 TF 卡启动模式,然后启动开发板。 EMMC 进行格式化分区命令以及擦除命令,最后使用命令 “sdfuse flashall” ,就可以将 uboot、 内核以及文件系统更新到开发板 的E MMC 中,这里也可以选择只更新 uboot 具体操作如下: 先对EMMC分区及格式化 在超级终端中,依次挨个执行下面的命令。注意:命令一行一行的输入,输入每一行后回车运行。 分区:
fdisk –c 0 #0为MMC即板载Flash,1为TF卡

格式化1分区:

fatformat mmc 0:1  # windows文件系统分区

格式化2分区:

ext3format mmc 0:2  #linux文件系统分区

格式化3分区:

ext3format mmc 0:3  #linux用户数据分区

格式化4分区:

ext3format mmc 0:4  #linux缓存分区

最后利用TF卡更新烧录(全部烧写):

sdfuse flashall
                                                             
reset

也可以用下面的某个或某几个命令替代

sdfuse flash bootloader u-boot-iTOP-4412.bin

sdfuse flash kernel zImage

sdfuse flash ramdisk ramdisk-uboot.img

sdfuse flash system system.img

等待烧写完成,输入命令: reset(会重启开发板)

比如烧写内核,如下图所示:

2、烧写镜像完成之后,将开发板设置为 EMMC 启动模式,开发板就可以正常启动了。

如果上一步只选择烧写了 uboot,然后可以使用 fastboot 来进一步烧写内核或者文件系统的镜像,烧写方法参考下述内容

七、OTG方式烧写镜像到EMMC

开启开发板电源,等超级终端出现启动信息,马上回车进入uboot模式;
在超级终端uboot模式下,输入:

fastboot 0

 回车,开发板进入接收文件状态;
在PC机设备管理器中检查OTG驱动是否正常;
将PC机中“镜像_Android4.0.3文件系统”文件夹里面的四个镜像“ramdisk-uboot.img”、“system.img”、“u-boot-iTOP-4412.bin”、“zImage”拷贝到“USB_fastboot_tool”中与cmd.终端在同一根目录下,在该文件夹中打开cmd终端;
输入烧写u-boot命令:

fastboot.exe flash bootloader u-boot-iTOP-4412.bin

输入烧写内核命令:

fastboot.exe flash kernel zImage

输入烧写根文件系统的两条命令:

fastboot.exe flash ramdisk ramdisk-uboot.img

回车再输入命令:

fastboot.exe flash system system.img

设置EMMC启动方式,写入并重启开发板,进入Android系统。

fastboot -w
fastboot reboot

本文标签: 精英iTOP