一、目的:嵌入式开发板,通过emmc上的内核文件加载启动linux操作系统,以及存放其他程序文件。需要将所需文件先写入emmc中。

二、总体步骤是:uboot启动后,进入linux下,将emmc分区并格式化,uboot下支持fat和ext2的格式,这里用fat格式,并挂载,然后放入所需要的文件。这样重启后,进入uboot下,将emmc中的文件load到内存中运行。

三、uboot下emmc内容烧写(拷贝)步骤:

1、uboot启动后,输入mmc info有mmc的相关信息

2、通过tftp或其他方式启动linux

3、linux启动后,输入fdisk -l能看到/dev/mmcblk0的信息

4、linux下用fdisk命令对mmc分区,格式化

#fdisk /dev/mmcblk0

fdisk命令都是非常简单的。

WARNING: DOS-compatible mode is deprecated. It's strongly
recommended to

switch off the mode (command 'c') and change display units
to

sectors (command 'u').

Command (m for help): m

Command action

a   toggle a bootable
flag

b   edit bsd
disklabel

c   toggle the dos compatibility
flag

d   delete a
partition

l   list known partition
types

m   print this
menu

n   add a new
partition

o   create a new empty DOS
partition table

p   print the partition
table

q   quit without saving
changes

s   create a new empty Sun
disklabel

t   change a partition's system
id

u   change display/entry
units

v   verify the partition
table

w   write table to disk and
exit

x   extra functionality (experts
only)

先P,看看sd卡的分区现状。

然后d,删除原分区

n,创建分区

Command (m for help): n

Command action

e   extended

p   primary partition
(1-4)

p

Partition number (1-4): 1

First cylinder (1-62528, default 1): 1

Last cylinder, +cylinders or +size{K,M,G} (1-62528, default
62528):  +1500M

t,指定分区类型,

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): L


Empty          
24  NEC
DOS        
81  Minix / old Lin bf 
Solaris


FAT12          
39  Plan
9         
82  Linux swap / So c1  DRDOS/sec
(FAT-

2  XENIX
root     
3c  PartitionMagic 
83 
Linux          
c4  DRDOS/sec (FAT-

3  XENIX
usr      
40  Venix
80286    
84  OS/2 hidden C: 
c6  DRDOS/sec (FAT-

4  FAT16
<32M     
41  PPC PReP
Boot   85  Linux
extended  c7 
Syrinx


Extended       
42 
SFS            
86  NTFS volume set da  Non-FS
data


FAT16          
4d 
QNX4.x         
87  NTFS volume set db  CP/M /
CTOS / .


HPFS/NTFS      
4e  QNX4.x 2nd part 88  Linux
plaintext de  Dell
Utility


AIX            
4f  QNX4.x 3rd part 8e  Linux
LVM      
df 
BootIt

9  AIX
bootable   
50  OnTrack
DM     
93 
Amoeba         
e1  DOS
access

a  OS/2 Boot Manag 51  OnTrack
DM6 Aux 94  Amoeba
BBT     
e3  DOS
R/O

b  W95
FAT32      
52 
CP/M           
9f 
BSD/OS         
e4 
SpeedStor

c  W95 FAT32 (LBA) 53  OnTrack
DM6 Aux a0  IBM Thinkpad hi eb 
BeOS
fs

e  W95 FAT16 (LBA) 54 
OnTrackDM6     
a5 
FreeBSD        
ee 
GPT

f  W95 Ext'd (LBA) 55 
EZ-Drive       
a6 
OpenBSD        
ef  EFI (FAT-12/16/

10 
OPUS           
56  Golden
Bow     
a7 
NeXTSTEP       
f0  Linux/PA-RISC b

11  Hidden
FAT12   
5c  Priam
Edisk    
a8  Darwin
UFS     
f1 
SpeedStor

12  Compaq diagnost 61 
SpeedStor      
a9 
NetBSD         
f4 
SpeedStor

14  Hidden FAT16 <3 63  GNU
HURD or Sys ab  Darwin
boot    
f2  DOS
secondary

16  Hidden
FAT16   
64  Novell Netware 
af  HFS /
HFS+     
fb  VMware
VMFS

17  Hidden HPFS/NTF 65  Novell
Netware  b7  BSDI
fs        
fc  VMware VMKCORE

18  AST SmartSleep 
70  DiskSecure Mult b8  BSDI
swap      
fd  Linux raid auto

1b  Hidden W95 FAT3 75 
PC/IX          
bb  Boot Wizard hid fe 
LANstep

1c  Hidden W95 FAT3 80  Old
Minix      
be  Solaris
boot   
ff 
BBT

1e  Hidden W95 FAT1

Hex code (type L to list codes): 6

Changed system type of partition 1 to 6 (FAT16)

这样就分好了第一个分区,并且指定了分区为fat16

好了,看看成果。

Command (m for help): p

Disk /dev/mmcblk0: 2048 MB, 2048917504 bytes

4 heads, 16 sectors/track, 62528 cylinders

Units = cylinders of 64 * 512 = 32768 bytes

Sector size (logical/physical): 512 bytes / 512
bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x6f20736b

Device
Boot     
Start        
End     
Blocks   Id 
System

/dev/mmcblk0p1              
1      
48001    
1536024   
6  FAT16

/

好了,把分区信息写入磁盘。

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS
6.x

partitions, please see the fdisk manual page for
additional

information.

Syncing disks.

下面开始格式化。

首先是fat16分区

#mkdosfs 
/dev/mmcblk0p1

看一下格式化后的

~ # fdisk
-l

Disk /dev/mmcblk0: 1920 MB, 1920991232 bytes
4 heads, 16 sectors/track, 58624 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

Device
Boot     
Start        
End     
Blocks  Id System
/dev/mmcblk0p1              
1      
58624    
1875960   6 FAT16

把emmc挂载在一目录下
~ # mount /dev/mmcblk0p1 /vm
1      
58624    
1875960   6 FAT16

这样就可以将文件拷贝到/vm下,这里新建了一txt文件,并输入内容,重启后在uboot下查看emmc中是否有改文件。

~ # cd vm
/vm # ls
/vm # vi a.txt

11111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000

11111111111111111111111111111111111111111111

00000000000000000000000000000000000000000000
 
 #reboot

重启后进入uboot下,查看mmc设备

Octeon# mmc list
Octeon MMC/SD0: 0

用fatls命令查看mmc下的文件信息,可以看到有linux下建的a.txt文件

Octeon #fatls mmc 0
     
181   a.txt

1 file(s), 0 dir(s)

将mmc中a.txt拷贝到内存中查看内容

先看一下原来内存的信息

Octeon# md 30000000
30000000: 00000000 00000000 00000000
5f800000   
............_...
30000010: 00000000 00000000 00000000
00000000   
................
30000020: 00000000 00000000 00000000
00000000   
................
30000030: 00000000 00000000 00000000
00000000   
................
30000040: 00000000 00000000 00000000
00000000   
................
30000050: 00000000 00000000 00000000
00000000   
................
30000060: 00000000 00000000 00000000
00000000   
................
30000070: 00000000 00000000 00000000
00000000   
................
30000080: 00000000 00000000 00000000
00000000   
................
30000090: 00000000 00000000 00000000
00000000   
................
300000a0: 00000000 00000000 00000000
00000000   
................
300000b0: 00000000 00000000 00000000
00000000   
................
300000c0: 00000000 00000000 00000000
00000000   
................
300000d0: 00000000 00000000 00000000
00000000   
................
300000e0: 00000000 00000000 00000000
00000000   
................
300000f0: 00000000 00000000 00000000
00000000   
................

将mmc中a.txt load到内存中

Octeon# fatload mmc 0 30000000 a.txt
reading a.txt

181 bytes read

查看内存信息,可以看到就是a.txt的内容,说明emmc内容写入成功 。

Octeon# md 30000000
30000000: 31313131 31313131 31313131
31313131

1111111111111111
30000010: 31313131 31313131 31313131
31313131   
1111111111111111
30000020: 31313131 31313131 31313131
0a303030   
111111111111.000
30000030: 30303030 30303030 30303030
30303030   
0000000000000000
30000040: 30303030 30303030 30303030
30303030   
0000000000000000
30000050: 30303030 30303030 0a313131
31313131   
00000000.1111111
30000060: 31313131 31313131 31313131
31313131   
1111111111111111
30000070: 31313131 31313131 31313131
31313131   
1111111111111111
30000080: 31313131 310a3030 30303030
30303030   
11111.0000000000
30000090: 30303030 30303030 30303030
30303030   
0000000000000000
300000a0: 30303030 30303030 30303030
30303030   
0000000000000000
300000b0: 30300a0a 0a000000 00000000
00000000   
00..............
300000c0: 00000000 00000000 00000000
00000000   
................
300000d0: 00000000 00000000 00000000
00000000   
................
300000e0: 00000000 00000000 00000000
00000000   
................
300000f0: 00000000 00000000 00000000
00000000   
................

uboot下emmc内容烧写(拷贝)步骤的更多相关文章

  1. 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc

    转载 : http://www.arm9home.net/read.php?tid-83474.html 本人是第一次在此发帖,希望大家多多支持,发帖目的是为了分享,分享的目的是传递开源的精神.Tin ...

  2. 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc【转】

    本文转载自:http://www.arm9home.net/read.php?tid-80810.html 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc   ...

  3. UBoot的编译与烧写

    每当我们学习任何编译语言之前,第一节课都是介绍我们要学习的是什么,以及编译语言和工具,最后写一个小程序编译并运行就算入门,也就是所谓的"Hello, world!".这里也不例外, ...

  4. Linux和Uboot下eMMC boot分区读写

    关键词:eMMC boot.PARTITION_CONFIG.force_ro等. 1. eMMC的分区 大部分eMMC都有类似如下的分区,其中BOOT.RPMB和UDA一般是默认存在的,gpp分区需 ...

  5. uboot从SD卡烧写内核和文件系统

    环境:ubuntu 13.04一.首先制作sd启动盘: 插入SD卡    sudo dd iflag=dsync oflag=dsync if=tiny210v2-uboot.binof=/dev/m ...

  6. 1)uboot的编译和烧写

    购买荔枝派ZERO已经将近一个星期了,由于官方资料不够完整一直没有任何进展.经过今夜近三个小时的折腾终于将UBOOT烧写成功,现将过程记录如下: 1)获取官方uboot 源码 : git clone  ...

  7. U-boot新手入门,烧写进mini2440

    拿到一块开发板,首先就要找到它的资料,当然了,开发板的厂商或者代理商会提供资料,资料里会有你需要的. 比如我的这块mini2440,在友善之臂代理商提供的资料里面,就有我们这篇所需要的 把这个文件夹下 ...

  8. Vivado下生成及烧写MCS文件

    Jtag模式: 1.打开Open Hardware Manager 2. Tools ->Auto Connect 3.TCL输入: write_cfgmem -format MCS -size ...

  9. 在Linux下制作一个磁盘文件,在u-boot 阶段对emmc 烧写整个Linux系统方法

    在Linux 下制作一个磁盘文件, 可以给他分区,以及存储文件,然后dd 到SD卡便可启动系统. 在u-boot 下启动后可以读取该文件,直接在u-boot 阶段就可以做烧写操作,省略了进入系统后才进 ...

随机推荐

  1. Mac下django简单安装配置步骤

    一.安装软件包并创建项目 $sudo pip install django$sudo python -c "import django;print django.VERSION"( ...

  2. 重新认识Javascript的一些误区总结

    1.在函数内有没有var真的不一样 下面这样一段代码,在函数abc()中,创建了两个变量a, c,并在函数体之外进行alert,想看看有什么事发生: <script> function a ...

  3. java中使用for遍历集合是注意的空指针异常

    public static void main(String[] args) { List<Object> a = null; for(Object i : a)//会有空指针异常 { } ...

  4. 解决ssh连接慢(有时候等半分钟才出现密码输入提示)的方法

    经常通过ssh 或者 scp 连接一堆远程主机,同样是 Linux 主机,其中一些创建 ssh 连接速度特别慢,连接建立之后执行操作速度却很正常,看来应该不是网络原因.解决的方法是通过ssh 的-v参 ...

  5. 让Redis在你的系统中发挥更大作用

    Redis在很多方面与其他数据库解决方案不同:它使用内存提供主存储支持,而仅使用硬盘做持久性的存储:它的数据模型非常独特,用的是单线程.另一个大区别在于,你可以在开发环境中使用Redis的功能,但却不 ...

  6. XML5个转义符

    XML5个转义符:<,>,&,”,©;的转义字符分别如下: < >& " &apos;

  7. 三星 S4 手机误删除相片(相册)后的恢复问题,仅记录处理过程,其它Android手机同样适用

    无意中删除了三星S4手机中相机的相册.过程是这样的,用手机拍了几张照片,觉得最后那张拍得不好,想删除,于是进入相册,看到有那张照片的图标,选择,删除,悲剧发生了! 这里得说三星的不好:在相册中,相册文 ...

  8. android studio(AS) Duplicate files copied in APK META-INF/NOTICE.txt

    File 1: /home/slava/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.3.1/f789 ...

  9. Android Studio 1.1.0 切换主题和绑定 代码提示 快捷键

    这篇文章用于给刚从eclipse 转用 Android Studio 1.1.0的同学看的. 所以经常会更新的. 至于为什么要转Android Studio 1.1.0呢,就自己想吧.没有人强逼的. ...

  10. Vuex 实践讲解

    state 用来数据共享数据存储 mutation 用来注册改变数据状态 getters 用来对共享数据进行过滤操作 action 解决异步改变共享数据 这个四大特征就是核心,如何用怎么用 接下来还是 ...