5932|16

60

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

NAND FLASH扇区变少的问题。。。 [复制链接]

03   0B 01 00   21   30 20 00   60 01 00 00   C0 84 00 00
01   31 01 00   0B   EB 20 00   20 86 00 00   60 77 01 00

根据我的这个扇区表,看扇区数:0x160 + 0x84C0 + 0x17760 = 0x1fd80

而我的K9F1208U0C是64MB的。。。应该是有4096块,也就是4096 * 32 = 131072个扇区,换成16进制:0x20000的。

为什么我的扇区数对不上。。。

解释一下:

我的NBOOT-EBOOT站10块:0x0-0x9.
然后是MBR:0xA.
這樣就是160個扇區。
然後的一個BINFS扇區是0x84c0個扇區。
最有的一個事FAT32扇區,是0X17760個扇區。

0x20000 - 0x1fd80 = 0x280 = 640D 。。。640個扇區,也就是20個塊。。。


爲什麽數量對不上。。。求高人來指點。。

最新回复

spare area區的驗證計算,我記得FMD裏面有代碼。。。。 這區域我不關心。。。我只看spare area區里的那個壞塊標誌位  详情 回复 发表于 2009-12-2 09:20
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
有坏块吗?
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
沒有坏块。。。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
我查了一下,沒有坏块。。但是就是少20块的东西
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
if (dwNumSectors == USE_REMAINING_SPACE) {

        DWORD dwLastLogSector = LastLogSector();
        if (dwLastLogSector == INVALID_ADDR)
            return INVALID_HANDLE_VALUE;

        // Determine the number of blocks to reserve for the FAL compaction when creating an extended partition.
        DWORD dwReservedBlocks = g_FlashInfo.dwNumBlocks / PERCENTAGE_OF_MEDIA_TO_RESERVE;
        if((dwReservedBlocks = g_FlashInfo.dwNumBlocks / PERCENTAGE_OF_MEDIA_TO_RESERVE) < MINIMUM_FLASH_BLOCKS_TO_RESERVE) {
            dwReservedBlocks = MINIMUM_FLASH_BLOCKS_TO_RESERVE;
        }
        
        dwNumSectors = dwLastLogSector - dwStartSector + 1 - dwReservedBlocks * g_FlashInfo.wSectorsPerBlock;
                RETAILMSG(1,(TEXT("USE_REMAINING_SPACE dwStartSector= 0x%x\r\n"), dwStartSector));
                RETAILMSG(1,(TEXT("USE_REMAINING_SPACE dwReservedBlocks= 0x%x\r\n"), dwReservedBlocks));
                RETAILMSG(1,(TEXT("USE_REMAINING_SPACE dwLastLogSector= 0x%x\r\n"), dwLastLogSector));
                RETAILMSG(1,(TEXT("USE_REMAINING_SPACE USE_REMAINING_SPACE= 0x%x\r\n"), dwNumSectors));
    }


这是bootpart里里面的打印。。。
微软是这么注释的Determine the number of blocks to reserve for the FAL compaction when creating an extended partition.
 
 
 

回复

293

帖子

0

TA的资源

纯净的硅(高级)

6
 
请问楼上,这部分代码是在哪个文件里的?我去看看~~
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

7
 
应该有坏块吧,也许坏块什么都没参与过,只当是砖头了
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 
应该有坏块吧,也许坏块什么都没参与过,只当是砖头了
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 5 楼 lqandlq 的回复:
请问楼上,这部分代码是在哪个文件里的?我去看看~~


bootpart.lib
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

10
 
回6楼或者7楼的兄弟。。。我确定没有坏块。。。

回unsway123兄弟:

LIB文件。。。我很汗啊。。怎么打开。。。一个库文件。。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 
在public\common\oak\driver\ethdebug
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

12
 
应该可能是获取块数的地方出错了。。。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用楼主 lqandlq 的回复:
03  0B 01 00  21  30 20 00  60 01 00 00  C0 84 00 00
01  31 01 00  0B  EB 20 00  20 86 00 00  60 77 01 00


根据我的这个扇区表,看扇区数:0x160 + 0x84C0 + 0x17760 = 0x1fd80

而我的K9F1208U0C是64MB的。。。应该是有4096块,也就是4096 * 32 = 131072个扇区,换成16进制:0x20000的。

为什么我的扇区数对不上。。。

解释一下:

我的NBOOT-EBOOT站10块:0x0-0x9.
然后是MBR:0xA.
這樣就是160個扇區。
然後的一個BINFS扇區是0x84c0個扇區。
最有的一個事FAT32扇區,是0X17760個扇區。

0x20000 - 0x1fd80 = 0x280 = 640D 。。。640個扇區,也就是20個塊。。。


爲什麽數量對不上。。。求高人來指點。。




请教下大家 ,这个扇区表怎么读出来的 ,大家见笑了...
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

14
 
wince在bootloader中创建分区时,会保留总block数的%0.25备用,以4086个block来说,就是要保留10个block。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

15
 
回12楼的,我是通过编程器读出BIN文件,然后根据MBR最后的为55 AA为标志找出这个MBR的。。

回13楼的,可是我少的是20BLOCK啊。。您说的少的这个10BLOCK是在最后扣除掉的吗?还是在中间某位置
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

16
 
换成扇区的时候那个spare area怎么算的,要算吗
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(中级)

17
 
spare area區的驗證計算,我記得FMD裏面有代碼。。。。

這區域我不關心。。。我只看spare area區里的那個壞塊標誌位
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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