2648|4

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教依然是EOOT中的FLASH一个疑问 [复制链接]

请问大侠:
   我最近才发现,我对P33的前四个32k的block的操作(unlock、erase、write)并没有执行,但是FALSH依然可以驱动起来,并且能够识别

对P33的前四个32k的block的操作并没有执行的原因:
        if ( (flashType == L18) || (flashType == L30) || (flashType == P33) )
        {
         EdbgOutputDebugString("Eboot---main----Ethdown flashType == P33!\r\n");
            if ( (dwPhysStart >= flash_start_address) && (dwPhysStart < (flash_start_address + 0x40000)) )
            {      
                num_l3_blocks_to_erase = 4;
                num_blocks--; // Decrease the num_blocks count, as it assumes the first block is 64K
                num_blocks = num_blocks + num_l3_blocks_to_erase;
            }
        }
我的dwPhysStart = 0xA008_0000 而 flash_start_address = 0xA000_0000
所以这个条件永远不能满足,
可是我看了几个BSP中这的例子都是dwPhysStart<(flash_start_address + 0x40000)
所以也没敢擅自改动,请问这里为什么要这么判断?
各位的dwPhysStart 和flash_start_address都是多少呢??
另外,我看了一个P30的flasherase和flashwrite它也没有管前4个block也可以运行起来,请问这样也可以??

最新回复

乱来 你现在的Eboot烧在Flash上的哪个位置?用什么来更新Eboot? 如果你的Image是放在A0080000开始的Flash位置,那你本身就不需要处理前面4个Block,不知道你在搞什么?  详情 回复 发表于 2009-3-17 21:58
点赞 关注

回复
举报

88

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
不知道,但还是帮你顶起
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
可是我看了几个BSP中这的例子都是dwPhysStart <(flash_start_address + 0x40000)
所以也没敢擅自改动,请问这里为什么要这么判断?
这个大小不是前面32K的4个Block的大小吗?还要看你用的是一片16位的还是两片32位的接法?

我最近才发现,我对P33的前四个32k的block的操作(unlock、erase、write)并没有执行,但是FALSH依然可以驱动起来,并且能够识别
这个问题解答不了,你不按SPEC去操作,却说没有问题,那只有厂家知道
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
我是用1片16位的接法
可以不管怎么样
(dwPhysStart < (flash_start_address + 0x40000))
在我的BSP下也不成立,因为差的有点大:
dwPhysStart = 0xA008_0000 而 flash_start_address + 0x40000 = 0xA000_0000 +0x4_0000 = 0xa004_0000
还差0x4_0000才能相等,而我的dwPhysStart又是定死的就是0xA008_0000
现在我将这个地方:  
if ( (dwPhysStart >= flash_start_address) && (dwPhysStart < (flash_start_address + 0x40000)) )
改成
if(dwPhysStart >= flash_start_address)后面不做判断了,这样他就可以处理前面的4个block了,
可是下载32M+的内核依然在a2000_0000的地方出错
(a2000_0000 - a008_0000 = 1f8_0000 = 32M)
请大侠再帮我分析下吧!
谢谢啦!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
乱来
你现在的Eboot烧在Flash上的哪个位置?用什么来更新Eboot?
如果你的Image是放在A0080000开始的Flash位置,那你本身就不需要处理前面4个Block,不知道你在搞什么?
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表