免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1998 | 回复: 5
打印 上一主题 下一主题

新手nandflash提问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-07-22 15:59 |只看该作者 |倒序浏览
本帖最后由 xifanlover 于 2013-07-22 16:04 编辑

我使用SAM_BA v2.10这个软件烧录nandflash_at91sam9260.bin和u-boot.bin到nandflash,然后重启配置环境变量,然后烧录kernel的uImage。这个时候nandflash里地址分配是:
nandflash_at91sam9260.bin地址为:0x0-0x20000
u-boot.bin地址为:0x20000-0x60000
环境变量存储地址为:0x60000-0x80000
kernel.bin地址为:0x80000-0x200000
我表示这样的地址我很好理解。可是我师傅给了我一份文档,文档里说对nandflash MTD分区,具体分区如图。
javascript:;
然后我就疑惑了,我上面烧录的所有东西都在mtd0分区里面?貌似不像啊,我感觉按照上图的意思应该是把bootstrap、u-boot和kernel烧录到相应的分区里面。
大家能帮我解解惑么?

nandflash分区.png (291.48 KB, 下载次数: 15)

nandflash分区

nandflash分区

论坛徽章:
0
2 [报告]
发表于 2013-07-22 16:07 |只看该作者
做为新手,我在cu论坛里面已经提了2个问题了,都得到了大神很仔细的回答,获得了很大的帮助。我现在还是新手,等我懂点了,也会替一些新手解惑的。而且会把自己学习过程中的资料一点点分享给大家。哈,先自己顶一个。等待大神的解答。

论坛徽章:
0
3 [报告]
发表于 2013-07-23 08:55 |只看该作者
nandflash的分区是在内核编译的时候完成的,分区修改文件arch/arm/mach-at91/board-sam9260ek.c中ek_nand_partition结构体内容,如下所示:
/* NAND flash*/
static struct mtd_partition __initdata ek_nand_partition[] = {
        {
                .name        = "bootloader",
                .offset        = 0,
                .size        =2 * SZ_1M,
        },
        {
                       .name   = "u_kernel",
                .offset = MTDPART_OFS_NXTBLK,
                .size = 4 * SZ_1M,
        },        
        {
                    .name   = "u_rootfs",
                    .offset = MTDPART_OFS_NXTBLK,
                    .size = 15 * SZ_1M,
        },
        {
                .name        = "kernel",
                .offset        = MTDPART_OFS_NXTBLK,
                .size        = 4 * SZ_1M,
        },
        {
                    .name   = "rootfs",
                .offset = MTDPART_OFS_NXTBLK,
                       .size   = 30 * SZ_1M,
            },
        {
                    .name   = "app_program",
                .offset = MTDPART_OFS_NXTBLK,
                       .size   = 20 * SZ_1M,
           },
        {
                    .name   = "app_data",
                .offset = MTDPART_OFS_NXTBLK,
                .size   = MTDPART_SIZ_FULL,
           }
/*
        {
                .name        = "app_res",
                .offset        = MTDPART_OFS_NXTBLK,
                .size        = MTDPART_SIZ_FULL,
        }
*/
};

论坛徽章:
0
4 [报告]
发表于 2013-07-23 09:37 |只看该作者
师傅说,nandflash mtd分区只是做个标识,没有其他作用,不用把bootloader和kernel烧录到bootloader分区和kernel分区相应的地方。

论坛徽章:
0
5 [报告]
发表于 2013-07-28 22:49 |只看该作者
对于flash的分区主要包括bootloader环境变量中的和内核代码固定的,如果环境变量中没有设置分区信息就使用内核中预先配置的

论坛徽章:
0
6 [报告]
发表于 2013-07-30 14:19 |只看该作者
恩,你说的对,我是内核\arch\arm\mach-at91\board-sam9260ek.c分区的。回复 5# heyangya


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP