本刷机笔记是基于S5PV210的九鼎Study210嵌入式开发板。
电脑通过串口线连接到开发板的UART2(靠近电源,与裸机不同)。usb线连接到开发板OTG端口。开发板接入电源,串口助手打开,开机,只要连接成功,无论开发板是否启动了uboot都可以收到板子串口打印的信息。
开发板出厂时,板载inand内烧录有uboot,开发板上电后会默认读取inand的程序执行,如果想从sd卡启动需要先破坏inand的程序,使其启动失败后,自动转向第二启动通道,即sd卡通道。
- 启动后在串口模式下停止在uboot下
- 输入:movi write u-boot 30000000
内存(ddr)中30000000是空的利用movi指令将ddr中的内容写入到inand的uboot区域,原来的uboot就被覆盖了,就不能启动了。
fastboot是uboot内嵌的一个工具,是基于uboot运行。如果本身uboot能启动,可跳过本步骤。不行则使用“x210_Fusing_Tool”工具,将任意uboot下载到SD卡;
插入开发板开机,开机进入uboot。
在串口终端输入fastboot,开发板进入fastboot模式。此时pc机会新增一个设备,但是这个设备驱动有问题,不能正常使用,可使用“驱动精灵”安装其驱动。即可连接成功。
将fasboot工具解压到d盘,同时将要刷的文件uboot、kernel、rootfs放到fastboot LinuxQT文件夹;
pc机打开“dos命令提示符”工具,
输入 “ D: ”进入D盘,
输入 “ dir ”查看d盘目录文件夹,
输入 “ cd fastboot ”进入fastboot文件夹;
输入 “ fastboot.exe ”运行fastboot工具;
输入 “ fastboot devices”查看fastboot设备,确认已经连接成功;
输入 “ fastboot flash bootloader LinuxQT/uboot.bin ”烧写uboot;
输入 “ fastboot flash kernel LinuxQT/kernel.bin ”烧写内核文件kernel;
输入 “ fastboot flash system LinxQT/rootfs_qt4.ext3”烧写根文件系统os,注意有时文件的扩展名被隐藏,输入的时候不能忘记;
刷机完成。重启。
修改uboot的bootcmd参数:set bootcmd ‘movi read kernal 30008000; bootm 30008000’ 添加多条命令时要使用单引号‘’
dnw是三星推出的一个刷机工具,通过usb工具可直接将文件写入inand指定位置。该功能与单片机程序下载类型。
dnw驱动安装
- pc机禁用数字签名。
- 开发板设置usb启动,开机,pc机检测到无驱动的usb设备。
- 在设备管理更新驱动,选择本地驱动文件“dnw_driver_win7-64”。
- 打开客服端软件dnw.exe ,按下开发板电源按键,客户端检测到usb设备显示ok
- 刷机。
设置下载目标地址0xd0020010,下载(transmit)x210_usb.bin;
设置下载目标地址0x23e00000,下载uboot.bin;
设置下载目标地址0x30008000,下载kernel.bin
下载rootfs
该种方法基于uboot工具和tftp服务器进行,简单的说就是将文件放在linux的tftp服务器上,在uboot下使用tftp指令将服务器的文件下载到开发板的内存RAM中,再使用movi指令将ram中的文件拷贝到板载inand的指定位置。
- 使用“x210_Fusing_Tool”工具,将任意uboot下载到SD卡;
- 搭建tftp服务器,并将uboot、kernel、bootft文件放在服务器中 /tftpboot。
- 修改开发板ip地址,ifconfig th0 192.168.10.62
- 开发板串口终端ping服务器192.168.10.51,测试连接正常。
- 下载到临时内存中,tftp 30000000 uboot
- 移动到inand,movi u-boot 30000000
- kernel下载并移动到inand的kernel段,movi kernel 30000000
- bootfts下载并移动到inand的system段,movi system 30000000
- 命令:make distclean //清除上次编译的bin文件。
- 命令:make x210_sd_config //调用脚本配置编译方法
- 命令:make //编译
- 进入 /uboot/sd_fusing目录
- 命令 make clean //清除上次编译的文件
- 命令:make //编译
- 命令:./sd_fusing.h //调用sd_fusing.h脚本将uboot.bin刷到SD卡
查看脚本引用bin文件的名称,必须与uboot目录的的u-boot.bin文件名相同。