关于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>
以上就是整个分区过程了.
 
但是输入bon part 0 192k 2m的时候如果就出现了如下错误提示:
 Could not found 'bon' command
 If you want to konw available commands, type 'help' 
则是vivi没装bon命令。
请看源代码是否提供bon命令的相关代码,如果提供了,一般文件名是:bonfs.h, bon.c。再看command.c是否有:
#ifdef CONFIG_CMD_BONFS
extern user_command_t bon_cmd;
#endif
在config文件(如果你用的是缺省的配置文件,请打开/vivi/arch/def-configs/smdk2410),从中添加CONFIG_CMD_BONFS=y。
然后再重新编译vivi。

不过请留意,你vivi源代码是否是板上可以运行的vivi的源码。不然要修改很多地方才能用,如时钟频率、内存配置参数等等。

原文地址: http://hi.baidu.com/zybuaa/blog/item/6459c0bf48ca4f0819d81f2b.html
Linux下科大讯飞离线语音识别SDK从下载到实战(附常见问题解决) 本文详细介绍了在Linux系统下,如何从科大讯飞开放平台获取离线语音识别SDK,完成环境准备、编译部署到实战开发的完整流程。文章重点解析了SDK目录结构、语法词典定制、示例代码修改,并针对开发中常见的“词典加载失败”、音频格式、交叉编译及性能优化等问题提供了深度解决方案,助力嵌入式与IoT开发者快速实现稳定可靠的离线命令识别功能。 阅读详情

相关推荐

芯片设计-信号完整性 SI 解析:Unit Interval 与比特周期的关系及其在高速信号中的应用

本文深入解析了芯片设计中信号完整性(SI)的核心概念Unit Interval(UI)与比特周期的关系及其在高速信号中的应用。通过实际案例和计算公式,详细阐述了UI在不同数据速率下的变化、在眼图分析中的关键作用,以及如何应对高速信号设计中的抖动和码间干扰等挑战。文章还提供了PCB布线和芯片设计中的UI优化技巧,帮助工程师提升高速信号设计的实战能力。

weixin_28683391的博客 468

VIVI命令解释(转)

VIVI命令解释(转) 2007-11-05 周一, 16:41 0 [ Permalink ] [ 心情: Happy ] [ 状态: Working 不容易啊http://hi.baidu.com/zengzhaonong/blog/item/2d780 ] (1) 在主机上打开minicom常按空格键(其实键入任意键 -- 除Enter外,就可以) (2) 给目标板(开发板)加电/重

热爱嵌入式Linux Wince Android和硬件设计 1172

最小二乘法(看完即会)

其中,X是数据矩阵,每一行是一个数据点,每一列是一个自变量(包括截距项),Y是观测值向量,β是待求的系数向量。为了找到使S最小的a和b的值,我们需要对S求关于a和b的偏导数,并令它们等于零。最小二乘法的数学公式通常用于线性回归问题,其中目标是找到一条直线(或更高维度的超平面),使得这条直线与给定数据点的误差平方和最小。同样地,通过求偏导数和令偏导数等于零,我们可以得到一个线性方程组,解这个方程组可以找到最优的b_0, b_1, …+ b_m*x_m,其中b_0是截距,b_1到b_m是各个自变量的系数。

qlkaicx的博客 2万+

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

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

weixin_39668890的博客 631

海康威视iSC平台视频流对接:RTSP、HLS、WS三种协议到底该怎么选?

本文深入分析海康威视iSC平台视频流对接中RTSP、HLS和WebSocket三种协议的优缺点,帮助开发者根据实时性、兼容性和网络环境做出最优选择。特别适合综合安防管理平台的Web视频监控系统开发,提升用户体验和系统性能。

weixin_28365523的博客 692

快手did did_gt edid的注册过程

接口 https://gdfp.ksapisrv.com/rest/infra/gdfp/report/kuaishou/android did 是本地生成的16进制 或者 获取的 android_id did_gt 是did生成时间戳 1595073601970 public static final Random f16237a = new Random(System.currentTimeMillis()); public static long m19668a() {  &n

HURUWO的技术博客 1万+

磁盘分区工具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

LilyPad三色LED共阳极控制:从原理到Arduino编程实战

RGB LED作为可编程光源的核心组件,通过红、绿、蓝三原色的加色混合原理,能够生成丰富的色彩。其内部结构主要分为共阳极和共阴极两种类型,这决定了驱动电路的设计和编程逻辑。在电子织物和可穿戴设备领域,掌握RGB LED的控制技术对于实现动态光效和交互反馈至关重要。本文以LilyPad三色LED为例,深入解析其共阳极特性,并详细演示如何结合Arduino进行PWM编程,从而精准控制颜色与亮度,为智能服装、互动艺术装置等项目提供可靠的照明解决方案。

weixin_30237719的博客 608

三菱FX系列PLC-编程2

内容包括传送与比较、算术及逻辑运算、循环和移位、数据处理、高速处理、方便指令以及外部IO设备指令的介绍。

让你爱上电路设计 1万+

模型预测控制(MPC)解析(二):单输入单输出系统

在上一篇中,为了便于说明,预测控制系统采用单输入单输出系统为例进行设计。由于系统模型使用的是状态空间方程,于是可以很容易的将这种设计方法可以扩展到多输入、多输出系统。

行者无疆的博客 8223

手把手教你搭建工业级C#上位机:完整架构+通信+配置+日志,新手也能落地(附全套源码)

模型层是“数据容器”,统一数据格式,避免参数传递混乱。本文搭建的C#上位机,采用“分层+模块化”架构,解耦了UI、通信、配置、日志四大核心功能,不仅满足工业场景的基础需求,还为后续扩展打下基础。新手跟着步骤走,既能掌握上位机的核心开发技能,又能理解工业级项目的架构设计思路。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1154

三菱PLC指令SUM、BON、DECO、ENCO、ZRST

SUM指令:在三菱PLC(可编程逻辑控制器)的编程中, 指令并不是我们通常理解的“将几个数字加起来”的求和指令(如 或 指令),而是指“ON位总数统计指令”。简单来说,它的作用是统计指定数据寄存器(D)或位元件(如X、Y、M)中,二进制“1”的个数。语法示例: 含义: 当 X0 为 ON 时,统计 D0 中二进制“1”的个数,并将结果存入 D10。常见应用场景 指令在数据处理和逻辑判断中非常实用,以下是两个典型例子:A. 统计故障点数量假设你有 8 个传感器(X0-X7)连接到 PLC,你想知道当前

ddidi111的博客 1332

GPS天线结构、原理、测试

【有源陶瓷天线构成】GPS天线是由接收天线和前置放大器两个部件组成。GPS接收天线的作用,是将卫星来的无线电信号的电磁波能量变换成接收机电子器件可摄取应用的电流。绝大部分内置GPS天线为右旋极化陶瓷介质,其组成部分为:陶瓷天线、低噪音信号模块、线缆、[接头](h

数字世界 万物互联 2万+

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

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

1580

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VIVI的bon命令与part命令

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

自由海,含着风! 1748

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

2967

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VIVI常用命令

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

ggy2005的专栏 788

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的博客 1589

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
上一篇: 开始写博客啦
下一篇: 开始学习Uboot
Loadingo0
博客等级 码龄19年 53粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值