ARM11开发板烧写过程

  • 格式:doc
  • 大小:42.50 KB
  • 文档页数:5

ARM11开发板烧写过程 一、 格式化开发板: 原理:因为系统已经损坏,不能正常启动,需要使用开发板内在固化的WinCE启动开发板执行格式化过程。 使用软件:DNW

{ 详解: DNW软件

DNW软件,是用来做嵌入式开发时用来下载文件镜像的,ARM系列芯片:S3C2440,S3C2410等。

DNW的配置 1.解压缩文件: # tar xzvf dnw_for_linux.tar.gz 2.然后切换到下面的目录,编译usb驱动模块: # cd dnw_for_linux/secbulk # make -C /lib/modules/$(uname -r)/build/ M=$(pwd) modules 3.编译完成后,会生成secbulk.ko文件: # ls Makefile Module.symvers secbulk.ko secbulk.mod.o modules.order secbulk.c secbulk.mod.c secbulk.o

4.加载模块到Linux内核: # insmod ./secbulk.ko (注意要在root权限下) # dmesg (查看是否加载成功) secbulk:secbulk loaded usbcore: registered new interface driver secbulk (看到这样两行就说明成功了)

5.下面开始编译dnw工具 # cd ../dnw # gcc -o dnw dnw.c (编译完成,会看到dnw可执行文件)

6.将文件copy到/usr/local/bin目录 # cp dnw /usr/local/bin (这样就可以在shell下面直接使用dnw命令了)DNW的使用

1.在minicom下,从Nor Flash启动TQ2440,选择3功能: [3] Download Linux Kernel (zImage.bin) to Nand Flash 2.此时,打开另一个终端: # su # dnw work/linux-2.6.30.4/zImage.bin file name : work/linux-2.6.30.4/zImage.bin file size : 2305544 bytes Writing data... 100% 2305554 bytes OK (此时就将zImage镜像下载到开发板了) 3.再看下minicom的输出信息 Enter your selection: 3 USB host is connected. Waiting a download. Now, Downloading [ADDRESS:30000000h,TOTAL:2305554] RECEIVED FILE SIZE: 2305554 (562KB/S, 4S) NAND erase: device 0 offset 0x200000, size 0x300000 Erasing at 0x4e0000 -- 100% complete. OK NAND write: device 0 offset 0x200000, size 0x232e08 Writing data at 0x432800 -- 100% complete. 2305544 bytes written: OK 由于每次重启都需要加载一次secbulk.ko模块,为了实现自动加载,可作以下操作: 1.修改secbulk.ko的权限成755 2.修改etc/rc.local文件,添加下面一行 sudo sbin/insmod /usr/bin/secbulk.ko 说明:将secbulk.ko拷贝到了/usr/bin目录下边,为了防止意外删除,你要是不想动原来的文件夹的话,直接将“usr/bin/secbulk.ko”改成你的secbulk.ko的全路经即可。 重启后,用lsmod|grep secbulk来验证一下,看模块是否自动加载了 不过每次开机都要加载一次那个.ko模块,大家可以自己将它写到开机脚本里,省去了每次都要手动加载的麻烦!

}

接线:电源线、串口线(接中间的口,另一个没有信号)、USB-Drive线 1. 跳线:NORFLASH模式:

2. 启动开发板,安装USB驱动 (\UP-CUP6410-II光盘\UP-CUP6410 WinCE6.0\Tools\DNW\USB Driver) 3. 启动DNW,选择configuration -> option : BAUD RATE : 1152000 COM PORT : COM1 USB PORT : 0x50030000(Wince专用地址) 4. USB PORT -> TRANSMIT -> TRANSMIT 找到EBOOT.nb0 (*在5秒内点击空格) 5. 选择 A:清楚所有块 E:擦除保留块 F:低格媒体快 6. 断电

二、 第一次写BOOTLOADER: 原理:格式化后系统已无BOOTLADER,使用UP-LINK硬烧临时BOOTLOADER方便下次启动。 使用软件:SJF6410.exe(烧写时专用软件三星6410的烧写工具源码,烧写BOOT

COM4 COM3 COM2 COM1 0 1 0 1 的代码!!支持多种FLASH ) 接线:电源线,串口线(接中间的口),并口线(UP-LINK),JTAG(UP-LINK)

{用于芯片内部测试 }

1. 安装并口启动: ① 使用UP-LINK将PC和开发板连接 ② 将整个GIVEIO目录拷贝到C:\WINDOWS下,并将giveio.sys拷贝到C:\WINDOWS\SYSTEM32\DRIVERS ③ 控制面板 -> 添加硬件 -> 下一步 -> 是我已经连接到了此硬件 -> 下一步 -> 添加新的硬件设备 -> 下一步 -> 安装我手动从列表选择的硬件 -> 显示所有设备 –> 从磁盘安装 -> 浏览 -> 指定驱动 C:\WINDOWS\GIVEIO\geveio.inf 2. 跳线:NANDFLASH模式:

3. 连接JTAG开始烧写 4. 开机在DOS下运行 SJF6410.EXE /f:u-boot.bin

5. 选择:1 : 烧写程序的类型 0 : 烧写的程序 0 : 烧写目标的起始地址 2 : 退出 5. 卸下UP-LINK(不用跳线)

三、 全部烧写开发板(第二次烧写BOOTLOADER): 原理:利用临时BOOTLOADER进入开发板烧写,在开发板不断电的情况下向其中重新完全烧写系统(删除第一次烧写的临时BOOTLOADER,原因:第一次烧写后除BOOTLOADER外其他区域仍为WINCE格式,需要使用nand scrub将其格式化,变为LINUX格式)。 注:若在第一次烧写BOOTLOADER后不断电不需要再次删除BOOTLOADER(nand scrub) 使用软件:DNW 接线:电源线,串口线(接中间的口),USB-Drive线

1. 启动DNW,开启开发板,选择Serial Port -> Connect 空格 2. 输入dnw 观察DNW软件标题是否为 COM口信息,USB为OK,ADDR为0x50030000 3. 输入nand scrub 删除NANDFLASH(及BOOTLOADER所在位置),挑出物理坏块,输入y (重新写入u-boot.bin及重写BOOTLOADER) 4. DNW c0008000 回车 5. USB PORT -> transmit -> transmit -> u-boot.bin(将BOOTLOADER写入c0008000 空白地址区)

COM4 COM3 COM2 COM1 0 0 1 0 6. nand erase 0 40000 (擦除NANDFLASH的0-40000地址区) 7. nand write c0008000 0 40000 (将空白地址区的内容写入0-40000地址区) (烧写系统内核:zImage) 8. DNW c0008000 回车 9. USB PORT -> transmit -> transmit ->zImage(将zImage写入c0008000 空白地址区) 10.nand erase 40000 200000 (擦除NANDFLASH的40000 - 200000地址区) 11.nand write c0008000 40000 200000 (烧写文件系统:rootfs_up6410.cramfs) 12.DNW c0008000 回车 13.USB PORT -> transmit -> transmit -> rootfs_up6410.cramfs (将文件系统写入c0008000 空白地址区) 14.nand erase 300000 f00000 (擦除NANDFLASH的300000 – f00000地址区)(预留100000空间给yaffs) 15.nand write c0008000 300000 f00000 四、 安装yaffs: 原理:通过网络将yaffs安装包移植到开发板中,并解压使用 使用软件:FLASHFXP(传输),超级终端或DNW(操作) 接线:电源线,网线,串口线

1. 配通网络:192.168.1.***(开发板IP:192.168.1.199) 2. 打开FLASHFXP,注册。 3. 回话 -> 快速链接 (输入开发板IP,删除多余传输包) 4. 找到yaffs放入开发板 /tmp目录下 5. 使用 超级终端或DNW解压文件 tar xjvf yaffs –C/mnt/yaffs

分区 地址 BOOTLOADER 0 - 40000 内核 40000 - 200000 Yaffs 200000 - 300000 文件系统 300000 – f00000

NANDFLASH与NORFLASH区别: nand flash 一般读取时是以块为单位的, nor flash 支持随机读取,所以可以运行程序,而nand flash 却不行

BOOTLOADER: 是系统加电后运行的第一段代码。 PC: 在系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,为最终调用系统内核准备好正确的环境。