完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在移植uboot2016.09时,成功支持nor flash 和 nand flash 之后,尝试将nand中的uboot读取到nor时,执行以下命令:
1.先执行nand read.jffs2 30000000 0 40000; protect off all; erase 0 3ffff 提示: SMDK2440 # nand read.jffs2 30000000 0 40000; protect off all; erase 0 3ffff NAND read: device 0 offset 0x0, size 0x40000 262144 bytes read: OK Un-Protect Flash Bank # 1 .... done Erased 4 sectors 操作成功。 2.再执行cp.b 30000000 0 40000 提示: SMDK2440 # cp.b 30000000 0 40000 Copy to Flash... 9..Flash not Erased SMDK2440 # 出现错误。说flash没有擦除,之后我又尝试了 SMDK2440 # erase bank 1 Erase Flash Bank # 1 ................................... done 再次执行 cp.b 30000000 0 40000, SMDK2440 # cp.b 30000000 0 40000 Copy to Flash... 9..Flash not Erased SMDK2440 # 还是提示flash没有擦除,我在移植的过程中并没有对flash的源代码做修改,是不是宏定义或者其他地方出了问题 |
|
相关推荐
2个回答
|
|
别沉了呀,晚上我又试了试,md命令看了一下,全是ffff,说明擦除成功,那就是在写的地方出现了问题,我又分别尝试了
cp.b 30000000 0 f cp.b 30000000 0 ff cp.b 30000000 0 fff 均提示 Copy to Flash... done 可以执行成功, 但执行 cp.b 30000000 0 ffff 就提示 Copy to Flash... 9..Flash not Erased 有没有哪位大神可以解答的 |
|
|
|
问题已解决。
之前在参考Linux学习 :移植U-boot_2016.09到JZ2440开发板这篇文章使uboot支持nor flash的时候,在jedec_flash.c的jedec_table[] 中增加一项匹配板子上的NOR-Flash厂商ID和设备ID: 是这样添加的, { /* sheldon add for JZ2440_V2 Nor_Flash : MT29LV160DB */ .mfr_id = (u16)MX_MANUFACT, .dev_id = 0x2249, .name = "MX29LV160D", .uaddr = { [1] = MTD_UADDR_0x0555_0x02AA /* 1:x16 ,NOR Flash 的解锁地址 */ }, .DevSize = SIZE_1MiB, .CmdSet = P_ID_AMD_STD, .NumEraseRegions= 4, .regions = { //查看芯片手册设置擦除块 ERASEINFO(0x10000, 31), ERASEINFO(0x08000, 1), ERASEINFO(0x02000, 2), ERASEINFO(0x04000, 1), } 但是,在u-boot-1.1.6_jz2440_burn_nor_with_nand_uboot.patch这个补丁中,是这样的 { .mfr_id = MANUFACTURER_MACRONIX, .dev_id = MX29LV160B, .name = "MXIC MX29LV160B", .uaddr = { [0] = MTD_UADDR_0x0AAA_0x0555, /* x8 */ [1] = MTD_UADDR_0x0555_0x02AA, /* x16 */ }, .DevSize = SIZE_2MiB, .CmdSet = P_ID_AMD_STD, .NumEraseRegions= 4, .regions = { ERASEINFO(0x04000,1), ERASEINFO(0x02000,2), ERASEINFO(0x08000,1), ERASEINFO(0x10000,31) } }, 说明对flash的配置不同, 于是,我修改成这样 { .mfr_id = (u16)MX_MANUFACT, .dev_id = MX29LV160D, .name = "MXIC MX29LV160D", .uaddr = { [0] = MTD_UADDR_0x0AAA_0x0555, /* x8 */ [1] = MTD_UADDR_0x0555_0x02AA, /* x16 */ }, .DevSize = SIZE_2MiB, .CmdSet = P_ID_AMD_STD, .NumEraseRegions= 4, .regions = { ERASEINFO(0x04000,1), ERASEINFO(0x02000,2), ERASEINFO(0x08000,1), ERASEINFO(0x10000,31) } }, 然后,编译,下载程序到JZ2440V3的norflash中,执行 nand read.jffs2 30000000 0 40000; protect off all; erase 0 3ffff; cp.b 30000000 0 40000 成功将nand flash 中的uboot拷贝至norflash |
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2090 浏览 6 评论
1903 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4463 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-10 21:24 , Processed in 0.622568 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191