NAND FLASH分区规划

由于BOOTLOADRER、PARAMS以及内核、文件系统都在NAND FLASH上,因此分区就得进行统一规划。系统的NAND FLASH分区依赖于u-boot和Linux内核两方面的设置。

U-Boot中的NAND分区

文件:include/configs/开发板.h
这是Phy3250的参数,Phy3250采用32MB的NAND FLASH,扇区大小为16KB:
189 /* Phy3250's NAND FLASH, 32MB, 16K size(Block, Sector) */
190 //#define CFG_ENV_SIZE             0x4000      /* 1 block, 16K */
191 //#define CFG_ENV_OFFSET        0x168000  /* Block 90       */

如下是SmartARM3250的NAND FLASH,K9F2G08,256MB,扇区大小为128K:
193 /* SmartARM3250's NAND FLASH, K9F2G08, 256MB, 128K size(Block, Sector) */
194 #define CFG_ENV_SIZE           0x40000       /* 2 Block, 256K */
195 #define CFG_ENV_OFFSET      0x180000     /* Block 12         */  

Kernel中的NAND FLASH分区

    NAND FLASH规划

分     区                                   地址范围                        扇区范围                    大    小                用     途
 Bootloader             0x0000 0000 ~ 0x0018 0000     0 ~ 11          12个扇区,1.50M               S1L和U-Boot
 param                  0x0018 0000 ~ 0x001C 0000      12~13           2个扇区,  256K                 U-Boot参数
保留                    0x001C 0000 ~ 0x0020 0000         14~15
 Linux Kernel           0x0020 0000 ~ 0x0060 0000    16~47           32个扇区,4.00M                 Linux内核
 Rootfs                 0x0060 0000 ~ 0x1000 0000        48~2047         2000个扇区,250M           Linux文件系统   

 


rootfs
2047

48
 
共2000扇区

 Kernel
47

16

共32扇区 

 保留
15 

14
 
共2扇区

 param
13
 
12
 
共2扇区
 
Bootlloader
11 

0
 
共12扇区

分区实现

在linux-2.6.27.8/arch/arm/mach-lpc32xx/board-smartarm3250.c中的实现代码:
153 #define BLK_SIZE (0x20000) //128KB
154 static struct mtd_partition __initdata smartarm3250_nand_partition[] = {
155     {
156         .name   = "smartarm3250-boot",
157         .offset = 0,
158         .size   = (BLK_SIZE * 12)
159     },
160     {
161         .name   = "smartarm3250-ubt-prms",
162         .offset = (BLK_SIZE * 12),
163         .size   = (BLK_SIZE * 2)
164     },
165     {
166         .name   = "smartarm3250-kernel",
167         .offset = (BLK_SIZE * 16),
168         .size   = (BLK_SIZE * 32)
169     },
170     {
171         .name   = "smartarm3250-rootfs",
172         .offset = (BLK_SIZE * 48),
173         .size   = MTDPART_SIZ_FULL
174     },
175 };

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像去雾算法学习

现有的图像采集设备对外界环境的干扰非常敏感,在雾霾环境中,获取的户外图像往往退化严重,主要表现为场景特征信息模糊、对比度低、色彩失真,不利于计算机视觉系统对图像真实特征的提取,从而影响其后续的分析、理解、识别等一系列处理,很大程度上降低了视觉系统的实际应用…

训练与解码

BW算法是对某一个HMM(一个音素)进行训练,需要该HMM对应的观察向量(一段音频),如何让一段文本中的某个音素找到对应一整段音频中的一小段音频?需要用到对齐来找到所有的[音素-音频]的配对。 训练时也需要解码 1,设训练的一句话有n…

Atlassian发布事故管理解决方案Jira Ops

Atlassian联合首席执行官兼联合创始人Scott Farquhar于9月4日宣布,Atlassian推出了一款名为Jira Ops的新产品,并且他们将收购OpsGenie。\\正如“Jira Ops \u0026amp; OpsGenie: powerful incident management”所描述的那样,Jira Ops是一款新…

U-Boot如何向内核传递Flash的分区信息

1.如何对nand 分区。修改mtdparts环境变量就可以了么? 对于目前的U-boot而言,是的.而且, 设置了mtdparts变量之后,你可以在nand read/write/erase命令中直接使用分区的名字而不必指定分区的偏移位置. set bootargs noinitrd consolettySAC0 root/dev/mtdblock3 ro…

Python爬虫学习系列教程

大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多。学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫感兴趣的…

ICer 常用网站推荐

总结一下我经常用到的IC网站,主要是数字IC,大致分资源类和资讯类吧: 一、资讯类 CSDN:目前关于IC的文章也越来越多啊。。https://www.csdn.net/ 知乎:目前来说应该是活跃大佬比较多。。https://www.zhihu.com/ DVCO…

C++成员访问限定符 private public

private和public称为成员访问限定符。用它们来声明个成员的被访问权限。    private 称为私有的,只能在本类中的成员函数引用,类外不能调用。    public  称为共有的,既可以被本类中的成员函数所引用,也可以被本类中的成员…

内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的

原文 初始化代码读取uboot到内存里面,然后跳转到uboot那里去执行uboot,uboot初始化必要的硬件,加载一些驱动,其中包括nand flash的驱动,然后根据uboot里面设置的一个启动命令TAG: NAND rootfs Flash 【系统启动过程…

CMOS 图像传感器——Color Filter Array

在介绍CMOS图像传感器的工作原理时候说道,像点(Sensor感光的基本单元叫做“像点”)吸收入射光后会有一定概率激发出电子,这个过程叫做光电转换。光子激发出电子会被像点下方的电场捕获并存储起来备用。像点的作用可以类比成一个盛水的小桶,它可以在一定范围内记录其捕获的…

我的一点企业做云经验

最近,经常有朋友问我在企业做云的经验,也有人问我OpenStack二次开发项目经验。正好这方面也有点经历,那现在就把我过往有关经历整理整理,总结出几条心得体会,分享给大家。 技术:我们OpenStack二次开发做了什…

CMOS图像传感器——黑电平校正

黑电平(black level ),也称作Optical Black,很多人也称呼为OB,指的是光学暗区,即黑色数据的最低电平值,指在经过一定校准的显示装置上,没有一行光亮输出的视频信号电平,通常指图像数据为0时对应的sensor信号电平值。 在CMOS图像传感器对图像进行处理的过程中,黑电平是…

C#利用WebClient 两种方式下载文件(一)

WebClient client new WebClient(); 第一种 string URLAddress "http://files.cnblogs.com/x4646/tree.zip"; string receivePath"C:\"; client.DownloadFile(URLAddress, receivePath System.IO.Path.GetFileName(URLAddress)); 就OK了。 第二种 Strea…

文件的行操作

1.1 第8题 输出test.txt文件内容时,不包含clsn字符串的命令 文件内容: [rootznix ~]# cat /data/test.txt test liyao clsn 1.1.1 方法一grep 使用grep命令,找什么就写什么 -v 参数是排除的意思 [rootznix ~]# grep -v "clsn" /dat…

linux多线程编程5--信号量(semaphore)

信号量本质上是一个非负的整数计数器,也是UNIX中古老的实现进程互斥和同步的手段,Linux下信号量概念是在线程中,信号则在进程控制中,不过原理差不多,最基本最经典的操作莫过于P、V操作了,能实现进程、线程的…

【leetcode】910. Smallest Range II

题目如下: 解题思路:我的思路是先找出最大值。对于数组中任意一个元素A[i]来说,如果A[i] K 是B中的最大值,那么意味着从A[i1]开始的元素都要减去K,即如果有A[i] K > A[-1] - K,那么A[i] K 就可以作为…

CMOS图像传感器架构的演变

01、 引言 图像传感器目前用于多种应用。自 1969 年电荷耦合器件 (CCD) 发明以来,固态图像传感器已蔓延到各种消费市场,例如小型摄像机和数码相机。自 2005年以来已成为主流固态图像传感器的 CMOS 图像传感器在为 CCD 开发的技术的基础上不断发展。除了…

Linux系统中/dev/mtd与/dev/mtdblock的区别

MTD(memory technology device内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统。MTD的主要目的是为了使新的memory设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD的所有源代码在/drivers/mtd子目录下。…

Python判断变量的数据类型的两种方法

2019独角兽企业重金招聘Python工程师标准>>> 1、isinstance(变量名,类型) def varargsql(self, sql, *args):if isinstance(args, tuple):self.cursor.execute(sql, args)self.conn.commit() 2、通过与其他已知类型的常量进行对比(type()&…

svn图标的含义

http://www.cnblogs.com/genhaosan/articles/5129791.html 转载于:https://www.cnblogs.com/wangc04/p/6400477.html

基于事件的视觉传感器

在之前的文章里 人工智能与图像传感器_沧海一升的博客-CSDN博客_人工智能和传感器的关系第一类是图像传感器与人工智能计算相结合,即图像传感器模组除了可以输出图像之外,还可以直接输出人工智能算法计算的结果。另一类智能图像传感器则是为人工智能应用专门设计的图像传感器…