Mrzeng 发表于 2005-5-6 21:51:00


能不能实践消除怀块呢?

Mrzeng 发表于 2005-5-6 21:53:00

QIQI不是做了一个计算所有文件大小的BAS吗?
       能不能做一个消除坏文件的程序呢,,,期待哦!

fishyuxuan 发表于 2005-5-7 15:05:00

呵呵~想法很美好,不过这样操作有一定的危险性的.首先,物理坏块是不能修复的.
如果你修改了RAMB,系统如果把坏块当作正常块写入,这样会使坏块蔓延开的!
但是,如果是软件计算错误产生的逻辑坏块是可以修复的(不过发生这个的概率好象不高啊?)

Mrzeng 发表于 2005-5-7 16:08:00

逻辑坏块...
可以先读取文件占用块再把其他块擦除,是个好方法

Mrzeng 发表于 2005-5-10 18:45:00

那QIQI,可以实现吗?

Mrzeng 发表于 2005-5-13 13:37:00

呵呵,系统不可以识别硬件问题还是软件问题(虚拟坏区)吗???
QIQI能不能做一个清除虚拟坏区的软件....?

Mrzeng 发表于 2005-5-14 22:19:00

谢谢你了,QIQI高手!
不过我知道标志BadBlockTable罢了,"虚拟坏区"叫起来顺溜...呵呵
系统只有在写NAND时发现返回硬件出错时才会去标志BadBlockTable
然后系统根据这个表来更新RAMB里的逻辑区转物理区表
基本上是没有擦除什么虚拟坏区的必要的
垃圾文件通常是由于GFFS的INODE管理机制有问题而导致出现了未能清除掉的脏文件


我觉得很有必要....呵呵

qhlixpfh 发表于 2005-5-16 15:17:00

好像没什么必要,不过几个扇区罢了,占空间又不多!

Mrzeng 发表于 2005-5-16 20:06:00

可是我觉得很有必要啊!
   我算了一下,占用了我闪存2M!       我不想格式化哦

willpk2002 发表于 2005-5-16 21:48:00

qhlixpfh 发表于 2005-5-17 11:02:00

2M?我还是看看自己的先!

Mrzeng 发表于 2005-5-17 12:59:00

呵呵,真的是2M啊....
因为我一个文件本来删不掉了,后来不见了....当然是占用空间的...............
                                 惨哦,不想格式化,找QIQI,哈哈

epcdiy 发表于 2006-5-26 21:11:00

RAMB能直接编辑吗

Isword 发表于 2006-5-27 13:48:00

ramb是系统作为坏区表等信息存放处。

既然是ram,应该就是可以编辑的,无非是进行一些擦,写的操作来实现。

不知道,不知道,瞎说的!!




[此贴子已经被作者于2006-5-30 9:23:47编辑过]

bqq00 发表于 2006-5-27 15:55:00

我看很危险...

zvcdev 发表于 2006-5-27 19:43:00

并非是擦写什么的操作``ram就是直接读写了

位置在$2000-$2fff

读写前先

lda #$54

sta $0d

读写完了再

lda #$50

sta $0d

就可以了``

只是ramb只是坏区清单的一个映射表(即Phy to log,gfffs的source code里称为phy2log table)

修改它并没有太大作用(想修改为正常只要把按正常顺序排列下对应表就可以了)

想要真正使坏区可读写必须更改super block里面的bad block table

SUPER BLOCK在NOR FLASH里面,位置不定,根据$087b(NC2600)和$087c后面的一个表来定位

不过写坏区可能导致坏区扩散



这里说的是物理坏区



像mrzenix那样的坏区(GFFFS最多只允许876KB的坏区,超过就麻烦了,实际上一般也很难出这么多坏区,除非你改了bad block table使坏区可写然后使劲写坏区使其扩散``)使由于文件系统BUG导致的,可自己编辑利用表和INODE表来修复之```


epcdiy 发表于 2006-5-27 22:12:00

坏区表貌似是2个区块为单位的

比如我的是

0000020004000600

08000a000c000e00

...........

Sun_Dream 发表于 2006-5-31 12:01:00

以下是引用Mrzeng在2005-5-13 13:37:00的发言:呵呵,系统不可以识别硬件问题还是软件问题(虚拟坏区)吗???
QIQI能不能做一个清除虚拟坏区的软件....?


PC上都有这样的软件,不知道 在wqx能否实现

ttheaven 发表于 2005-5-6 13:32:17

[求助]qiqi,怎么样管理ramb的?

系统是如何识别坏块的?怎样使写入ramb的信息不被系统还原?

我把所有块正常的信息写入ramb,空间整理或reset后又还原了。以下是代码,应该没有问题。

lda $00

pha

lda $0a

pha

lda $0d

pha

and #$f0

ora #$04

sta $0d

lda #$00

sta $40

lda #$41

sta $40

lda #$ff

sta $42

lda #$48

sta $43

lda #$00

sta $44

lda #$20

sta $45

jsr send

pla

sta $0d

pla

sta $0a

pla

sta $00

rts

send:ldy #$00

D:lda ($40),y

sta ($44),y

lda $40

cmp $42

bne A

lda $41

cmp $43

bne A

rts

A:inc $40

bne B

inc $41

B:inc $44

bne C

inc $45

C:jmp D

$4100开始的数据是:

00 00 02 00 04 00 06 00

.....

f8 07 fa 07 fc 07 fe 07

表示没有坏块,物理地址就是逻辑地址。
页: [1]
查看完整版本: [求助]qiqi,怎么样管理ramb的?