arm开发板刷机方法

1.linux系统启动方式

  bootloader->kernel->system

  在嵌入式系统中内存为DRAM,inand flash 都不能直接启动需要被初始化。其中初始化程序在(bootloader中)。

  解决思路是通过内部irom中的bl0代码引导执行uboot。

  启动uboot可以有多种方式,可以使用内部emmc启动,sd卡启动,usb启动等多种方法。

  由于优先级不同,用sd卡启动时除了必要的硬件配置(拨码开关等)也必须破坏内部emmc中的uboot才能通过sd卡启动uboot。

  在linux系统下破坏uboot的方法:

破坏iNand中的bootloader以从SD2启动
linux下:
busybox dd
if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync sync
uboot下:
movi write u-boot 0x30000000

  制作启动SD卡有两种方法

有2种烧写方法:一种是在windows中用刷卡工具去制作启动SD卡;
另一种是在linux中用dd命令。
linux系统的DD命令后面统一讲。

  调试开发板时使用SecureCRT可以有效观看到系统的linux命令行界面,或者可以进入uboot界面。

2.刷机

  2.1(使用fastboot)

  插入sd卡启动的时候,通过SecureCRT可以进入uboot界面。

  uboot下可以使用fastboot命令。连接电脑(需要安装相应驱动)。通过fastboot命令将bootloader,kernel,system可以下载到开发板中。

  2.2(使用dnw)

  刷机分2步:第一步刷x210_usb.bin,地址是0xd0020010;第二步刷uboot.bin,刷机地址是0x23e00000

3.linux系统下工具使用

  由于windows下驱动或者兼容性等问题。部分软件使用十分麻烦。好在以上所有操作在linux系统下都有相应的工具。

  3.1linux系统下的SD的烧写 

  连接进linux中,在命令行中:ls /dev/sd*查看,和之前对比,就知道SD卡在linux中的设备编号了,一般是/dev/sdb。
 
  执行 ./nand_fusing.sh /dev/sdb(nand_fusing.sh是写好的一个脚本本质是通过dd命令)

  3.2linux下的fastboot

  fastboot在ubuntu下可以通过apt-get获取到。

  使用:在uboot下输入fastboot连接到电脑上(有时需要执行fdisk -c 0分区)

  fastboot常用命令:
  fastboot devices    命令用来查看当前连接的设备。(我们开发板看到的是:SMDKC110-01)
  fastboot flash xxx    命令用来烧录的
  fastboot reboot    命令用来重启系统

  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  

  3.2linux下的dnw使用(裸机下载或刷机都可以使用)

  linux下的dnw命令为一个网上找的开源代码。   

  使用格式如下

  dnw -a <地址> <目标>

  dnw -a 0xd0020010 len.bin

原文地址:https://www.cnblogs.com/PengfeiSong/p/6338211.html