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。
- 嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结
1.在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2.记住在使用printf进行调试的时候,在遇到指针或者字符串的时候 ...
- Linux下 USB设备驱动分析(原创)
之前做过STM32的usb HID复合设备,闲来看看linux下USB设备驱动是怎么一回事, 参考资料基于韦东山JZ2440开发板,以下,有错误欢迎指出. 1.准备知识 1.1USB相关概念: USB ...
- Linux下USB suspend/resume源码分析【转】
转自:http://blog.csdn.net/aaronychen/article/details/3928479 Linux下USB suspend/resume源码分析 Author:aaron ...
- mini2440 uboot烧写uImage
mini2440下烧写u-boot后,就可以用u-boot烧写linux内核了. 安装mkimage工具: apt-get install u-boot-tools 解压缩官方mini2440 lin ...
- tiny4412学习(一)之从零搭建linux系统(烧写uboot、内核进emmc+uboot启动内核)【转】
本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/74080109 版权声明:本文为博主原创文章,转载请注明http://blog.c ...
- linux下USB串口,minicom
[一].驱动相关说明: 如果直接使用串口线,而没有用到USB转串口设备,就不需要安装驱动. 如果使用了USB转串口,一般情况下也不需要安装驱动了,目前linux系统已经包含了该驱动,可以自动识别,亦可 ...
- 转: 嵌入式linux下usb驱动开发方法--看完少走弯路【转】
转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至 ...
- ADS 下 flash 烧写程序原理及结构
本原理:在 windows 环境下借助 ADS 仿真器将在 SDRAM 中的一段存储区域中的数据写到 Nand flash 存 储空间中.烧写程序在纵向上分三层完成: 第一层: 主烧写函数(完成将在 ...
- Windows、Linux下文件操作(写、删除)错误的产生原因、及解决方法
catalog . 引言 . Linux平台上涉及的File IO操作 . Windows平台上涉及的File IO操作 0. 引言 本文试图讨论在windows.linux操作系统上基于C库进行文件 ...
随机推荐
- Java SE (5)之 线程使用
JAVA有两种线程的方法Thread 和Runnable 能够使用,这是为了弥补不能多继承的缺陷 首先是 Thread package com.sunzhiyan03; /* * 演示线程 * */ ...
- SQL server 跨库插入数据
1.INSERT INTO SELECT语句 语句形式为: Insert into Table2(field1,field2,...) select value1,value2,... from Ta ...
- javascript - 清空一个 array
我觉得javascript不容易, 许多人觉得js容易, 因为他们觉得很容易写出常用的需求, 但是当我们实际做项目的时候, 对于javascript的要求是很高的, 特别是在性能需求方面. 我写这句话 ...
- artDialog.js的使用
开发项目中用到了artDialog.js,从而专门学习一下如何配置和使用. 一.artDialog是什么 artDialog是一个精巧的web对话框组件,压缩后只有十多KB,并且不依赖其他框架. 二. ...
- ubuntu1404下Apache2.4错误日志error.log路径位置
首先打开/etc/apache2路径下的apache2.conf文件,找到ErrorLog如下 ErrorLog ${APACHE_LOG_DIR}/error.log 这里{APACHE_LOG_D ...
- macbook pro retina 编程字体推荐
使用VS2010.VS2012.Qt Creator编译工具首推等宽字体,等宽字体中consolas. 首先大家都知道等宽对于编码来说的直观性不言而喻,其次retina屏幕的特殊性,整天用特别小的字体 ...
- [学习笔记]设计模式之Proxy
为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 “魔镜啊魔镜,谁是这个世界上最美丽的人?” 每到晚上,女王都会问魔镜相同的问题(见Decorator模式).这是她还曾身为女巫时留下的 ...
- [学习笔记]设计模式之Decorator
写在前面 为方便读者,本文已添加至索引: 设计模式 学习笔记索引 Decorator(装饰)模式,可以动态地给一个对象添加一些额外的职能.为了更好地理解这个模式,我们将时间线拉回Bridge模式笔记的 ...
- jQuery 标签淡入淡出 个人随笔
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- sec:authorize 标签 通过不通过权限例子
1. 方式一 <sec:authorize ifAnyGranted="ROLE_A"> <a href="a.jsp"> ...