嵌入式系统系统升级内核双备份的实现方式

1.nand flash MTD分区

        kernels/linux-2.6.31.1-cavm1/drivers/mtd/maps/xxxxx-flash.c 

        /* MTD partitions: From CNW5602 32MB
         * mtd0: 0x000C0000 00020000 "bootloader"
         * mtd1: 0x00040000 00020000 "factory_config"
         * mtd2: 0x00100000 00020000 "sysconfig"
         * mtd3: 0x00DE0000 00020000 "kernel_and_fs"
         * mtd4: 0x00020000 00020000 "bootloader_env"
         * mtd5: 0x00DE0000 00020000 "kernel_and_fs_backup"
        * mtd6: 0x001E0000 00020000 "syslog"
        * mtd7: 0x00020000 00020000 "transconfig"
        * mtd8: 0x00020000 00020000 "factoryconfig"
*/
static struct mtd_partition xxx_flash_partitions[] = {
{
.name = "bootloader", /* u-boot 6 sector (768KB), 0x20000-0xC0000: Reserved Space */
.size = 0x000C0000, /* 0x00000000 .. 0x000BFFFF */
.offset = 0,
.mask_flags = MTD_WRITEABLE, /* force read-only */
}, {
.name = "factory_config", /* Static Configuration from factory, (256KB = 128KB used + 128KB reserved) */
.size = 0x00040000, /* 0x000C0000 .. 0x000FFFFF */
.offset = MTDPART_OFS_APPEND,
.mask_flags = MTD_WRITEABLE, /* force read-only */
}, {
.name = "sysconfig", /* sysconfig 8 sector (1024KB) */
.size = 0x00100000, /* 0x00100000 .. 0x001FFFFF */
.offset = MTDPART_OFS_APPEND,
}, {
.name = "kernel_and_fs", /* Linux Kernel and File System (bootpImage) (14208KB) */
.size = 0x00DE0000, /* 0x00200000 .. 0x00FDFFFF */
.offset = MTDPART_OFS_APPEND,
}, {
.name = "bootloader_env", /* bottom 1 sector (128KB) for u-boot env variables */
.size = 0x00020000, /* 0x00FE0000 .. 0x00FFFFFF */
.offset = MTDPART_OFS_APPEND,
}, {
.name = "kernel_and_fs_backup", /* Linux Kernel and File System (bootpImage) (14208KB) */
.size = 0x00DE0000, /* 0x01000000 .. 0x01DDFFFF */
.offset = MTDPART_OFS_APPEND,
}, {
.name = "syslog", /* syslog 15 sector (1920KB) */
.size = 0x001E0000, /* 0x01DE0000 .. 0x01FBFFFF */
.offset = MTDPART_OFS_APPEND,
}, {
.name = "transconfig", /* transconfig 1 sector (128KB) */
.size = 0x00020000, /* 0x01FC0000 .. 0x01FDFFFF */
.offset = MTDPART_OFS_APPEND,
}, {
.name = "factoryconfig", /* factoryconfig 1 sector (128KB) */
.size = MTDPART_SIZ_FULL, /* 0x01FE0000 .. 0x01FFFFFF */ /* MTDPART_SIZ_FULL= 0x00020000 */
.offset = MTDPART_OFS_APPEND,
}
};
2.在应用层读写open("/dev/mtd3", O_RDWR);

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

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

相关文章

SerDes接口——架构与电路

随着通信技术的飞速发展,高速串行互连以其结构简单,不需要传输同步时钟,相比并行传输有更高数据传输效率的优点,成为现代通信和数据传输的重要组成部分。随着对数据传输速率要求的不断提高,SERDES应运而生。它是一种时…

Springboot分模块开发详解(2):建立子工程

1.创建base-entity 选中base工程&#xff0c;右键创建一个新的maven工程 自动选择了base这个目录存放子工程 创建后&#xff0c;pom.xml修改成如下内容&#xff1a; <?xml version"1.0"?> <projectxsi:schemaLocation"http://maven.apache.org/POM/4…

到天宫做客(2017寒假培训测试压轴题)

个人QQ&#xff1a;757394026团队QQ&#xff1a;466373640个人博客&#xff1a;www.doubleq.winc/noi/信息学奥数博客&#xff1a;http://www.cnblogs.com/zwfymqz 题目描述 有一天&#xff0c;我做了个梦&#xff0c;梦见我很荣幸的接到了猪八戒的邀请&#xff0c;到天宫陪他吃…

NAND FLASH分区规划

由于BOOTLOADRER、PARAMS以及内核、文件系统都在NAND FLASH上&#xff0c;因此分区就得进行统一规划。系统的NAND FLASH分区依赖于u-boot和Linux内核两方面的设置。U-Boot中的NAND分区 文件&#xff1a;include/configs/开发板.h这是Phy3250的参数&#xff0c;Phy3250采用32MB的…

图像去雾算法学习

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

训练与解码

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

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

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

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

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

Python爬虫学习系列教程

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

ICer 常用网站推荐

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

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

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

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

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

CMOS 图像传感器——Color Filter Array

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

我的一点企业做云经验

最近&#xff0c;经常有朋友问我在企业做云的经验&#xff0c;也有人问我OpenStack二次开发项目经验。正好这方面也有点经历&#xff0c;那现在就把我过往有关经历整理整理&#xff0c;总结出几条心得体会&#xff0c;分享给大家。 技术&#xff1a;我们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文件内容时&#xff0c;不包含clsn字符串的命令 文件内容&#xff1a; [rootznix ~]# cat /data/test.txt test liyao clsn 1.1.1 方法一grep 使用grep命令&#xff0c;找什么就写什么 -v 参数是排除的意思 [rootznix ~]# grep -v "clsn" /dat…

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

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

【leetcode】910. Smallest Range II

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

CMOS图像传感器架构的演变

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