Linux下USB烧写uImage kernel
 
1.启动开发板,进入u-boot:(如果开发板中没有系统,可以通过用SD卡方式启动开发板进入)
 
U-Boot 2011.06 (Mar 19 2012 - 08:45:34) for MINI6410
 
CPU: S3C6400@667MHz
Fclk = 667MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode)
Board: MINI6410
DRAM: 256 MiB
NAND: 512 MiB
MMC: SAMSUNG SD/MMC: Host controler CH0
SD card is SD_VERSION_2
SD/MMC size : 3911680 block * 512B = 1910MB
Video: no Video params found, try bootargs~~ 640x480x24 31kHz 59Hz
[petworm] video_hw_init: <640, 480, 640, 480>
Error: Bad gzipped data
Error: no valid bmp or bmp.gz image at 57500000
In: serial
Out: serial
Err: serial
Net: dm9000
Hit any key to stop autoboot: 3
 
2.按任意键进入命令行状态后,运行dnw命令,文件存放地址作为参数传入(十六进制):
 
MINI6410 # dnw 50008000
Insert a OTG cable into the connector!
 
3.插入USB电缆,连接主机和开发板,minicom会出现如下提示:
 
USB Cable is Connected
Now, Waiting for DNW to transmit data
 
4.另开一个终端,加载secbulk驱动:
 
sudo insmod secbulk
 
5.建立secbulk驱动设备节点(通过试验,可跳过此步):
 
sudo mknod /dev/secbulk0 c 102 0
 
6.运行dnw程序,将欲传送的uImage的带路径的文件名作为参数传入:
 
sudo ./dnw uImage_a70 #(我们选择当前目录下的uImage_a70文件)
 
回车后传输开始,直至传送完毕。Minicom端提示如下:
 
Now, Waiting for DNW to transmit data
Download Done!! Download Address: 0x50008000, Download Filesize:0x40de8
Checksum is being calculated.
Checksum O.K.
 
主机端提示如下:
 
liwei@liwei:~/Desktop/dnw_linux/dnw$ sudo ./dnw uImage_a70
file name : uImage_a70
file size : 3763296 bytes
Writing data...
100% 3763306 bytes OK
 
此时,文件传送完毕,且校验正确。这时我们就可以用u-boot命令来将文件写入相应
的nandflash地址中:
 
MINI6410 # nand erase 80000 400000
NAND erase: device 0 offset 0x80000, size 0x400000
Erasing at 0x460000 -- 100% complete.
OK
MINI6410 # nand write 50008000 80000 400000
NAND write: device 0 offset 0x80000, size 0x400000
4194304 bytes written: OK
 
7.将S2调整到NAND启动位置,重启开发板后从NandFlash读取内核到内存,运行结
果如下:
 
U-Boot 2011.06 (Mar 16 2012 - 13:58:27) for MINI6410
 
CPU: S3C6400@667MHz
Fclk = 667MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode)
Board: MINI6410
DRAM: 256 MiB
NAND: 512 MiB
MMC: SAMSUNG SD/MMC: Host controler CH0
No SD/MMC card detected!
No MMC card for env!
Using default environment
Video: no Video params found, try bootargs~~ 640x480x24 31kHz 59Hz
[petworm] video_hw_init: <640, 480, 640, 480>
No SD/MMC card detected!
Video: No MMC card for background image!
In: serial
Out: serial
Err: serial
Net: dm9000
Hit any key to stop autoboot: 0
MINI6410 # nand read 50008000 80000 400000
NAND read: device 0 offset 0x80000, size 0x400000
4194304 bytes read: OK
 
8.从内存中启动内核:
 
MINI6410 # bootm 50008000
## Booting kernel from Legacy Image at 50008000 ...
Image Name: petworm
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3763232 Bytes = 3.6 MiB
Load Address: 50008000
Entry Point: 50008040
Verifying Checksum ... OK
XIP Kernel Image ... OK
OK
 
Starting kernel ...
 
Uncompressing Linux... done, booting the kernel.
Initializing cgroup subsys cpu
Linux version 2.6.38-FriendlyARM (root@jensen) (gcc version 4.5.1 (ctng-1.8.1-F1
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: MINI6410
。。。 。。。
至此,Linux下用USB电缆烧写uImage成功完成!
 
附:
我们可以通过使用u-boot自带的mkimage命令来将zImage转换为uImage文件,命令如下:
mkimage -A arm -O linux -T kernel -C none -a 0x50008000 -e
0x50008040 -n "image-name" -d zImage_a70 uImage_a70
此命令将zImage_a70文件转换为uImage_a70文件,镜像的名称为image-name。

Linux下USB烧写uImage kernel的更多相关文章

  1. 嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结

    1.在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2.记住在使用printf进行调试的时候,在遇到指针或者字符串的时候 ...

  2. Linux下 USB设备驱动分析(原创)

    之前做过STM32的usb HID复合设备,闲来看看linux下USB设备驱动是怎么一回事, 参考资料基于韦东山JZ2440开发板,以下,有错误欢迎指出. 1.准备知识 1.1USB相关概念: USB ...

  3. Linux下USB suspend/resume源码分析【转】

    转自:http://blog.csdn.net/aaronychen/article/details/3928479 Linux下USB suspend/resume源码分析 Author:aaron ...

  4. mini2440 uboot烧写uImage

    mini2440下烧写u-boot后,就可以用u-boot烧写linux内核了. 安装mkimage工具: apt-get install u-boot-tools 解压缩官方mini2440 lin ...

  5. tiny4412学习(一)之从零搭建linux系统(烧写uboot、内核进emmc+uboot启动内核)【转】

    本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/74080109 版权声明:本文为博主原创文章,转载请注明http://blog.c ...

  6. linux下USB串口,minicom

    [一].驱动相关说明: 如果直接使用串口线,而没有用到USB转串口设备,就不需要安装驱动. 如果使用了USB转串口,一般情况下也不需要安装驱动了,目前linux系统已经包含了该驱动,可以自动识别,亦可 ...

  7. 转: 嵌入式linux下usb驱动开发方法--看完少走弯路【转】

    转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至 ...

  8. ADS 下 flash 烧写程序原理及结构

    本原理:在 windows 环境下借助 ADS 仿真器将在 SDRAM 中的一段存储区域中的数据写到 Nand flash 存 储空间中.烧写程序在纵向上分三层完成: 第一层: 主烧写函数(完成将在 ...

  9. Windows、Linux下文件操作(写、删除)错误的产生原因、及解决方法

    catalog . 引言 . Linux平台上涉及的File IO操作 . Windows平台上涉及的File IO操作 0. 引言 本文试图讨论在windows.linux操作系统上基于C库进行文件 ...

随机推荐

  1. Big Data 應用:第二季(4~6月)台湾地区Game APP 变动分布趋势图

    图表简介: 该示意图表示了台湾地区第二季内所有Game APP类别的分布情形,经由该图表我们可以快速的了解到在这三个月内,哪类型的APP是很稳定:抑或者哪类型的APP是非常不稳定的. 名词解释: 类别 ...

  2. 学习java随笔第十一篇:java窗体程序

    要开java的窗体程序,就要下载开发窗体的工具. 这里我用的是的myeclipse,可以直接在网上下载安装即可. 我用的是10.0版本的,如果需要汉化的话,可以看一下这篇文章:myeclipse.10 ...

  3. [分词] C#SegList分词辅助类,帮助类 (转载)

    点击下载 SegList.rar 主要功能如下最新的SegList分词辅助类,帮助类看下面代码吧 /// <summary> /// 类说明:SegList /// 编 码 人:苏飞 // ...

  4. count(*),count(1)和count(主键) 区别

    看如下数据: SQL> select count(*) from ysgl_compile_reqsub; COUNT(*) ---------- 已用时间: : : 07.51 SQL) fr ...

  5. [Introduction to programming in Java 笔记] 1.3.9 Factoring integers 素因子分解

    素数 A prime is an integer greater than one whose only positive divisors are one and itself.整数的素因子分解是乘 ...

  6. hdu Train Problem I(栈的简单应用)

    Problem Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot o ...

  7. ARM开发板系统移植-----rootfs的制作

    前面两篇文章分别介绍了mini2440开发板上运行的bootloader和kernel,到这里系统启动后其实是停留在一个“僵死”的状态---无法挂载根文件系统. 这里将介绍如何制作一个根文件系统,并且 ...

  8. .net 对配置文件内容的操作

    配置文件分为两种 :一种是winform应用程序的配置文件, 一种是web的配置文件. 两种配置文件最大的区别是web的配置文件更新之后会时时更新, 应用程序的配置文件不会实时更新. 更新应用程序的配 ...

  9. javascript ajax请求

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. opencart 百度登录和百度钱包支付插件 响应式适应pc/mobile

    OpenCart(http://www.opencart.com/,http://www.opencartchina.com/)是国外著名的开源电子商务系统, 优势在于前台界面的设计非常适合欧美购物者 ...