VIVI的bon命令与part命令

浅谈falsh 分区 一BON 分区表1建立方式:bon命令2建立时间:vivi 烧写之后3用途:存放bootloader,引导kernel,挂载根文件系统。 4命令:bon part 命令用于建立系统的BON 分区表。BON 分区表被保存到NANDFlash 的最后0x4000 个字节中,即在NAND Flash 的0x03FFC000 ~0x33FFFFFF 范围内,分区表起始于0x03FF 阅读详情

通过多次实验,以下为自己具体的分区过程:

1.如果首先板子上没有烧进去vivi,则可以通过JTAG口以及jflash烧写工具软件把vivi烧进目标板上,当然有的开发板也可以在ADS1.2 的环境用JTAG仿真器(如Multi-ICE),通过某个烧写程序把vivi烧进目标板,这里具体第一次怎么把vivi烧写进去就不再多述了.

2.当把vivi烧进去后,可以通过输入part show查看MTD分区情况,这个分区表应该和后面kernel中的MTD分区保持一致,我的2.6内核源码中修改后的MTD分区表为:
0x00000000-0x00020000 : "boot"
0x00020000-0x00030000 : "param"
0x00030000-0x001f0000 : "kernel"
0x00200000-0x00400000 : "root"
0x00400000-0x04000000 : "user"
那么这里,我们应该将通过修改vivi的源码把MTD分区表修改成一样,修改/vivi/arch/s3c2410/smdk.c文件:
将里面的
#ifdef CONFIG_S3C2410_NAND_BOOT
mtd_partition_t default_mtd_partitions[] = {
{
   name:   "vivi",
   offset:   0,
   size:   0x00020000,
   flag:   0
}, {
   name:   "param",
   offset:   0x00020000,
   size:   0x00010000,
   flag:   0
}, {
   name:   "kernel",
   offset:   0x00030000,
   size:   0x00100000,
   flag:   0
}, {
   name:   "root",
   offset:   0x00130000,
   size:   0x00200000,
   flag:   MF_BONFS
}
};
#endif

修改成如下:

#ifdef CONFIG_S3C2410_NAND_BOOT
mtd_partition_t default_mtd_partitions[] = {
{
   name:   "vivi",
   offset:   0,
   size:   0x00020000,
   flag:   0
}, {
   name:   "param",
   offset:   0x00020000,
   size:   0x00010000,
   flag:   0
}, {
   name:   "kernel",
   offset:   0x00030000,
   size:   0x001f0000,
   flag:   0
}, {
   name:   "root",
   offset:   0x00200000,
   size:   0x00400000,
   flag:   MF_BONFS
}, {
   name:   "user",
   offset:   0x00400000,
   size:   0x04000000,
   flag:   0
}
};
#endif
保存文件,并重新make,生成新的vivi文件;

3.    重新bon分区flash,这是十分必要的,相当于重新分区并格式化了整个flash区,当bon分区后flash里面的数据将全部丢失,所以要再把前面 新生成的vivi烧入目标板上,当然现在就可以只通过串口把vivi烧写进去,不用像第1步那样操作烧写vivi,但是注意bon命令重新分区后千万不要 断电了再烧写vivi,否则就不能通过串口烧vivi了,具体步骤如下:
(1)这里将flash分成4个区(vivi和param只占一个区),输入bon分区命令:
      #bon part 0 192K 2M 4M
      解释一下上面的命令:
      第1个分区从0开始;
      第2个分区从0x30000(即192K)开始;
      第3个分区从0x200000(即2M)开始;
      第4个分区从0x400000(即4M)开始.
(2)分区成功后,可以通过命令bon part info或者bon part show来查看bon分区信息,接下来不要断电,直接通过串口下载vivi,但是要注意的是,在linux下用xmodem协议下载文件很有可能出现传输 过程中断线或者连不上的情况,但是在windowsXP的附件中的超级终端下通过xmodem传输文件过程却是十分的理想,所以我建议从前面的第3步一开 始就都在windowsXP环境下的超级终端里进行操作,输入命令:
#load flash vivi x
然后点击终端窗口中的传送下的发送文件,采用xmodem协议,选择要下载的vivi码即可.
(3)等待文件传输完毕后,输入boot重启目标板,并按住空格键重新进入vivi模式下,输入命令:
#part show
即可看到重新的分区表:
vivi> part show
mtdpart info. (5 partitions)
name               offset         size         flag
------------------------------------------------
vivi             : 0x00000000     0x00020000      0   128k
param            : 0x00020000     0x00010000      0    64k
kernel           : 0x00030000     0x001f0000      0     1M+960k
root             : 0x00200000     0x00400000      4     4M
user             : 0x00400000     0x04000000      0    64M
vivi>
以上就是整个分区过程了
========================================================

========================================================

vivi中bon和part的区别:
    1、vivi(bootloader)启动后可使用命令:part show查看mtdpart信息;bon part info查看bon分区信息。
    2、vivi中的bon分区相关:vivi启动linux时会将linux_cmd_line(其在vivi内核的位置为:
vivi/arch/s3c2410/smdk.c中的:char linux_cmd[] = "noinitrd root=/dev/bon/2 init=/linuxrc console=ttyS0";可以修改此源码编译,也可以进入vivi后通过命令:param set linux_cmd_line
"root=/dev/bon/2 init=/linuxrc console=ttyS0进行设置")参数传递给内核。内核启动时会根据此参数将设备/dev/bon/2(flash的bon分区的第三个分区)以cramfs格式挂载到根目录"/"下。另外linux启动时还会检测vivi中使用bon分区时的分的mtd分区(bon分区时在相应偏移后面加“:m”标志的分区。

例如:vivi命令——bon part 0 1296k 21696k:m,表示分了3个分区,2个bon分区(前两个)、1个mtd分区(最后一个))。

那么内核如何检测bon分区和mtd分区呢?起始很简单,在vivi中使用bon分区时,会将相应的分区信息放在NAND Flash的最后0x4000个字节中,即在nand flash的0x03FFC000 ~0x33FFFFFF 范围内,分区表起始于0x03FFC000。linux就是通过读取此地址区域的nand获得的bon分区表信息。linux启动时也会检测到vivi使用bon分区时的mtd分区,并将此分区/dev/mtdblock/1挂载到/mnt/yaffs下。这样/mnt/yaffs就可以进行读写,并且掉电保存。此挂载信息的修改是在根文件系统目录结构中的/etc/fstab中的:/dev/mtdblock/1    /mnt/yaffs    yaffs    defaults    1 1,具体有关fstab文件的含义请参考文件:fstab文件详解-挂载.txt。
    3、vivi中的part分区相关:在使用vivi进行烧录vivi、kernel、rootfs时怎么知道根据相应命令把相应的镜像保存到nand的适当位置呢?起始也很简单。在vivi源码vivi/arch/s3c2410/smdk.c中的:
#ifdef CONFIG_S3C2410_NAND_BOOT
mtd_partition_t default_mtd_partitions[] = {
    {
        name:        "vivi",
        offset:        0,
        size:        0x00020000,
        flag:        0
    }, {
        name:        "param",
        offset:    0x00020000,
        size:        0x00010000,
        flag:        0
    }, {
        name:        "kernel",
        offset:    0x00030000,
        size:        0x001d0000, // 2M sector

        flag:        0
    }, {
        name:        "root",
        offset:    0x00200000,
        size:        0x03000000,
        flag:        MF_BONFS
    }
};
#endif
定义了相应的默认part分区信息。当执行命令:load flash kernel x时,vivi就会查找此表中的default_mtd_partitions[i].name项,如果name等于kernel则将offset返回,并将相应的镜像如:zImage保存到flash的kernel分区信息所指示的offset位置(此处查看上表为:0x00030000,)。相应当vivi执行命令boot命令启动内核时会从nand的0x00030000,位置读取size个字节到sram中。然后再调到linux的入口地址处执行。
    4、分析:根据上述bon和part分区的介绍,您是否还有疑问?从上可以得出,linux启动时只需要使用bon分区时的根文件系统分区(必须为bon格式)和需要挂载yaffs文件系统的分区(必须标记为mtd分区)。由于vivi烧写rootfs的位置是根据part分区定的。所以在使用bon进行分区时必须有一个和default_mtd_partitions中root分区的起始地址和大小相同的bon分区,例如:此处必须有一个起始地址和大小分别为0x00200000,0x03000000的bon分区。另外如果要挂在yaffs文件系统,bon分区时必须有一个mtd分区。如果想通过vivi向flash的其它分区写入数据的话,此处的default_mtd_partitions必须加入相应的分区信息。例如:default_mtd_partitions中加入分区
{
    name:        "yaffs",
    offset:    0x03200000,
    size:        0x00500000,
    flag:        0
}
那么如果使用bon分区时有一个起始地址和大小分别为0x03200000, 0x00500000的分区。则使用load flash yaffs x
可以烧录相应文件。如果符合相应格式在linux可以使用命令:mount -t filesystem /dev/bon/x  /mnt/bonx挂载

3DGS实战笔记:从相机坐标系到屏幕像素,手把手推导高斯椭球的投影变换矩阵 本文详细解析了3D高斯散射(3DGS)技术中从相机坐标系到屏幕像素的几何变换过程,重点推导了高斯椭球的投影变换矩阵。通过视图变换、投影变换和视口变换的完整流程,结合雅可比矩阵处理协方差矩阵,实现了高效的三维重建与渲染。文章提供了Python代码示例,帮助开发者深入理解3DGS的核心几何变换机制。 阅读详情

相关推荐

计算机视觉与深度学习实战:以Python为工具,基于帧间差法进行视频目标检测

计算机视觉是一门研究如何使机器从数字图像或视频中提取、分析和理解有用信息的学科。它涉及图像处理、计算机图形学、人工智能等多个领域的知识。通过计算机视觉技术,我们可以实现图像的识别、分类、目标检测等功能。本文介绍了计算机视觉与深度学习的基本概念和原理,并以Python为工具,基于帧间差分法实现了视频目标检测。帧间差分法具有算法实现简单、程序设计复杂度低、对光线等场景变化不太敏感等优点,因此在实际应用中得到了广泛的应用。然而,帧间差分法也存在一些局限性,如对于缓慢移动或静止的物体检测效果不佳。

一个好知识的传播者 1256

Linux中part指令,10 个鲜为人知的 Linux 命令 - Part 2

继续上篇文章《11 个很有用但鲜有人知的 Linux 命令》。在本文中,我们将关注其他几个不为人知的Linux命令,有些在管理桌面和服务器方面被证明是非常有用的。12. 命令你在终端上键入的每个命令都会记录到history,也能用history命令重新调用。如何骗过history 命令呢?呵呵,你可以轻而易举地做到。在终端,只需要在键入命令之前输入一个或多个空格,这样你的命令就不会被记录了。让我...

weixin_39668890的博客 631

Unreal5从入门到精通之如何解决在VR项目在头显中卡顿的问题

以前我们使用Unity开发VR,Unity提供了非常便利的插件和工具来做VR。但是由于Unity的渲染效果不如Unreal,现在我们改用Unreal来做VR了,所有的VR相关的配置和操作都要重新学习。今天就来总结一下,我在开发VR过程中碰到的所有问题。好了,以上就是我目前做VR时碰到的一些问题,希望对你有所帮助。

TxNet 2482

Uboot命令[part]

Uboot命令

qq_45880007的博客 1422

Calibre :Standard Verification Rule Format(SVRF) Manual (1-2)

摘要:SVRF规则文件是用于Calibre和ICverify工具的脚本文件,包含层定义、规则检查、注释、预处理指令等元素。规则文件支持全局/局部层定义、隐式层操作,以及条件编译指令(#DEFINE/#IFDEF等)。宏功能(DMACRO/CMACRO)可实现代码复用,支持参数化层操作和嵌套调用。预处理指令支持版本控制(#IFDEFCALIBRE_VERSION)和环境变量默认值设置(#PRAGMAENV)。宏中的层名具有局部作用域,可通过特殊语法实现全局层名指定,LOCAL()修饰符可创建调用作用域内的唯一

u013620135的博客 1340

Xilinx/AMD公司7系列FPGA的ISERDESE2仿真的”天坑”(附verilog的源码vivado仿真工程)

研究LVDS输出接口的ADC与7系列(ZYNQ)FPGA对接过程中,在Vivado中搭建了ISERDESE2的仿真工程,仿真结果ISERDESE2的并行输出口一直输出X或Z,这个坑之大,耗费了我数天的时间,可以称为“天坑”了。同步复位的要求肯定是高于异步复位的,古话说得好“两害相权取其轻”,所以,跟古话对着干就对了!就当RST是同步复位吧,最后经过反复验证,发现。开始怀疑复位信号是否高电平持续时间不够长?但是没有查到复位时间的要求 : - (

FPGA艺术家的博客 171

diskpart命令_Windows Diskpart命令教程

diskpart命令diskpartis a Windows utility to create partitions on the disk. It is similar to the Linux fdisk utility. diskpartprovides an interactive command shell where we will enter related commands ...

cunjiu9486的博客 4349

笔试题-2023-芯原-数字前端设计or验证【纯净题目版】

笔试题-2023-芯原-数字前端设计or验证【纯净题目版】

w0shishabi的博客 5685

Linux parted 分区命令详解

通常我们用的比较多的分区工具是fdisk命令,但由于fdisk只支持MBR分区,MBR分区表最大支撑2T的磁盘,所以无法划分大于2T的分区。而parted工具可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区。parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具。

因上努力,果上随缘。但行好事,莫问前程。 3万+

FP16、BF16、INT8、INT4精度模型加载所需显存以及硬件适配的分析

本文主要介绍了FP16、INT8、INT4精度模型加载占用显存大小的分析,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 模型加载显存占用大小 3. 不同精度是否与硬件适配

herosunly的博客 23万+

PCL DBSCAN密度聚类【2026最新版】

点云密度聚类的PCL代码实现,与matlab自带的密度聚类算法进行对比验证,结果一致。3万多个点能再2秒左右运行出结果,算法效率尚可。

点云侠的博客 5682

磁盘分区工具fdisk和parted实战操作演练

fdisk 命令适用于小于2T的磁盘分区part 命令适用于大于2T的磁盘分区fdisk命令分区在虚拟机上新加了一块1G磁盘,对磁盘进行分区,操作命令:[root@host2 ~]# fdisk -l查看磁盘信息磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区Units = 扇区of 1 * 512 = 512 bytes...

weixin_33743661的博客 338

⭐️【2024年新版教程】vmware tools安装步骤(Windows、Linux、MacOS版本)

VMware Tools是VMware提供的一套实用工具,它可以增强虚拟机与宿主机之间的交互性能,如改进显示性能、优化鼠标和键盘性能、提供时间同步功能等。无论是在Windows、Linux还是MacOS虚拟机上,安装VMware Tools都可以提高虚拟机的使用体验。以上就是在不同操作系统上安装VMware Tools的步骤,希望对您有所帮助。

Python老吕的博客 6万+

vivi 之 part命令 与 修改MTD分区表 !!!

关于VIVI的bon命令与part命令  1.如果首先板子上没有烧进去vivi,则可以通过JTAG口以及jflash烧写工具软件把vivi烧进目标板上,当然有的开发板也可以在ADS1.2 的环境用JTAG仿真器(如Multi-ICE),通过某个烧写程序把vivi烧进目标板,这里具体第一次怎么把vivi烧写进去就不再多述了.2.

1580

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

关于VIVI的bon命令与part命令

   1.如果首先板子上没有烧进去vivi,则可以通过JTAG口以及jflash烧写工具软件把vivi烧进目标板上,当然有的开发板也可以在ADS1.2 的环境用JTAG仿真器(如Multi-ICE),通过某个烧写程序把vivi烧进目标板,这里具体第一次怎么把vivi烧写进去就不再多述了.    2.当把vivi烧进去后,可以通过输入part show查看MTD分区情况,这个分区表应该和

Loadingo0的专栏 2245

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

版主你好,最近被vivi里的bon 和 part 这两个命令搞得有点晕。这是我在网上找到的关于它们的用当

  版主你好,最近被vivi里的bon 和 part 这两个命令搞得有点晕。这是我在网上找到的关于它们的用当:                    part add 命令用于添加一个MTD 分区。命令的详细格式如下:part add name offset size flag参数name 是要添加的分区的分区名称;参数offset 是要添加的分区的偏移(相对于整个MTD 设备的起始地址的偏移

2967

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VIVI常用命令

VIVI常用命令vivi 是韩国Mizi 公司开发的BootLoader,适用于ARM9 处理器。vivi 有两种工作模式,启动加载模式可以在一段时间后(这个时间可更改)自行启动Linux 内核,这是vivi的默认模式。在下载模式下,vivi 为用户提供一个命令行接口,通过该接口可以使用vivi提供的一些命令。启动vivi时,在超级终端界面中键入任意键(除enter外)进入vivi命令界面,字

ggy2005的专栏 789

VIVI 常用命令

 VIVI 常用命令资料来源:互连网编辑整理:马晨元编辑日期:2008-4-2Email:mcy2000@21cn.comQQ:12282568VIVI 常用命令vivi 是韩国Mizi 公司开发的BootLoader,适用于ARM9 处理器。vivi 有两种工作模式,启动加载模式可以在一段时间后(这个时间可更改)自行启动Linux 内核,这是vivi 的默

苏晓的专栏 1425

linux nandflash分区,nandflash分区

part add 命令用于添加一个MTD 分区。命令的详细格式如下:part add name offset size flag参数name 是要添加的分区的分区名称;参数offset 是要添加的分区的偏移(相对于整个MTD 设备的起始地址的偏移,在ARMer9 系统中不论配置的是NOR Flash,还是NAND Flash,都只注册了一个mtd_info 结构,也就是说逻辑上只有一个MTD 设备...

weixin_36462845的博客 1590

bon、mtd在vivi中的不同

今天碰到了问题,vivi启动内核后,提示无法找到根文件系统,如下:      FAT: unable to read boot sector   Kernel panic: VFS: Unable to mount root fs on 61:01      使用part show 显示如下:   vivi> part show mtdpart info. (5 par

RealPresence and Media Collaboration 专栏 525

vivi中bon和part的区别

 vivi中bon和part的区别:       1、vivi(bootloader)启动后可使用命令:part show查看mtdpart信息;bon part info查看bon分区信息。       2、vivi中的bon分区相关:vivi启动linux时会将linux_cmd_line(其在vivi内核的位置为: vivi/arch/s3c2410/smdk.c中的:c

苏晓的专栏 1433

vivi中bon与part分区的区别(转)

vivi中bon和part的区别:     1、vivi(bootloader)启动后可使用命令:part show查看mtdpart信息;bon part info查看bon分区信息。     2、vivi中的bon分区相关:vivi启动linux时会将linux_cmd_line(其在vivi内核的位置为: vivi/arch/s3c2410/smdk.c中的:char linux_cm

txler's eye 872

Bon分区、part分区以及mtd分区

  从角度来分:bon分区是在物理上进行擦除分区,part以及mtd是在逻辑上进行定位。   bon命令用于对bon分区进行操作。bon分区是nand flash设备的一种简单的分区管理方式。vivi中使用bon分区时,会将相应的分区信息放在NAND Flash的最后0x4000(16k)个字节中。linux就是通过读取此地址区域的nand获得的bon分区表信息。linux启动时也会检测到

开炉铸剑 1599
上一篇: 烧写Linux 映象到Nand Flash 操作过程
下一篇: vivi命令
lhf0921
博客等级 码龄18年 52粉丝 44原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值