易码技术论坛

 找回密码
 加入易码
搜索
查看: 55543|回复: 0

[zt]关与文曲星的闪存利用表(nc2000)

[复制链接]
发表于 2005-5-27 20:17:31 | 显示全部楼层 |阅读模式
关与文曲星的闪存利用表(nc2000)
就目前的情况,我发现在nc2000中,$0F页的nor flash 为其闪存利用表,在这一页中,文件不是以文件名的方式直接管理,而是使用了文件号的方式而且在这里有文件的全部信息,包括属性,修改时间,文件大小,文件所在的nand flash 的扇区地址,所以研究它对弄清wqx的内核工作方式有很大的帮助。

不过大家要注意,fat表是不能随意写的,否则回出现大的错误,甚至对系统也有破坏的,大家进入wqxhex后,到c000,这是应用程序的文件表,其中位于文件名前的16位数字为文件标号,在c000—e000查找这数便可以找到该文件的信息,大家可以一试。随意修改闪存表是很危险的,但是,如果大家只是想研究其内容,并不写它,还是没有问题的。

比如我找到“abcd.bin” 的文件号是1f00,那么我们在其中用wqxhex2在闪存表查找,找到的内容类似于:
1F 00 EF EF C0 7B 02 08
7B 02 09 FF FF FF 00 00
7E 06 E6 05 FF FF FF FF
这一段什么含义呢,其实我们一个一个看,1f00是文件号,那ef ef c0是什么含义?
我今天就说这个,其实ef ef c0是文件的属性,大家都知道,如果把一个普通文件复制到应用程序文件夹,在网络中是 看不到的,为什么,因为属性不对,如果我们新建一个属性为ef ef 的文件,在网络中就可以看到,我们在wqxhex中写程序:
lda #$70 //写文件
sta #$08fa
lda #ef
sta $08fb
lda #ef
sta $08fc
brk $0515 //写文件
brk %0517 //关闭
然后在08be写入文件名,以00结尾,在运行,就新建了一个可以在网络中看到的文件了。。。

当初sun编写wqhex时, 将读出来的内容在sim的nand flash file中找而(这flash file是偏移了32k), 因此wqxhex就有这偏移现象, 我亦一直没有纠正它! 读出的0000的内容, 应是fat的原始资料, 在格式化时将它覆盖nor flash中的fat; 对于nc中的fat, 点虫虫比较多研究, 这方面问他会较好!

还是看例子:
1F 00 EF EF C0 7B 02 08
7B 02 09 FF FF FF 00 00
7E 06 E6 05 FF FF FF FF
看以下的7B 02 08 7B 02 09 ,这个就是文件修改日期,前面是创建日期(7B 02 08),7b是2004年的意思,依次2005是7c,02是创建月为3月,00是一月,依次类推,那么08就是创建日00是1日,那么08就是09日,后面是最后修改日期,意义和前面相同,在后面的ff不用管,我们来看00 00 7E 06,这是文件的大小,这里的大小是十六进制的067e,在wqx的计算器中换算以下就可得到十进制大小,其实着几部分和资源管理中的一致。对了,如果这里为01 00 00 00,那么表示这为文件家的表,找到的应是文件夹的文件列表。
最后我们看最重要的类容,即E6 05 这是什么,这就是文件所在的nand flash的扇区数,这里是05e6,如果文件大雨16kb,那么所在的扇区依次排列,通过这个,我们可以通过wqxhex的nand read读出任何文件,但是sun说wqxhex中的扇区有偏差,我们可以计算一下,用05e5除以二,再件去一,就可以得到要读的扇区,如果有小数,那一定为.8,那只须读出后切换到8000,就可看到文件了(注意,这里都是十六进制运算),这样我们可以随意反汇编一些优秀文件了,甚至进行修改后保存下来。
小结:(XA-jin )

首先在WQX中目录和文件是同等对待的 即同样分配“文件”号 那如何区分呢?
这就靠 属性了我现在只知道“EF EF C0"中的第一个的前四位(0~3)是 RWX目录
既1000XXXXB是R文件 ,0100XXXXB是W文件...0001XXXXB是目录第5位为1时 隐藏(也不知是系统还是简单隐藏)
再有:“FF FF FF 00”这时(有3个FF)表示文件较短 后面的三位为大小 如果引号中的00为其他(0~3)
表示文件占了几个BLOCK-1(比如为2 那么在block 地址中 肯定是有3个地址) 如果引号中的FF全为00
则表示文件是占了连续的块 下一位是块的数目(注意不是减一) 本来是文件大小的地方为00 ,block 地址的地方是四个
地址 分别是第一 ,第二 ,第三, 最后的块地址
关于显示的地址:其实就是BRK 0505 中所需要的地址,因为SOME REASON 和 wexhex 中的N 地址有区别(换算方法如小鱼所示)
关于文件号:前$18是确定的 如00 root,01 sysdir,02 CCG.BIN, 11 calculator,18 exam(注以上数字为16进制)(编号是终身确定的,只要你不删除它)
关于文件(目录)所指BLOCK 地址中的内容:如是文件 那当然就是文件内容了(具体格式自己看) 如是目录 那就是本目录下的文件列表(包括文件名和相应的文件号)
下面看系统是如何找到文件的:
首先 找到00 既 root 到所指出的block 地址找到列表获得文件名(目录名)和编号的关系
把要进入的文件夹的名和上面进行比较找到要进入的文件夹的编号,根据编号找到相应的信息再
到指出的block 地址找到列表,找到文件的编号,,,再同理找到文件的保存地址
小结:nand flash 中的内容是 文件内容 和文件名与编号的关系
nor flash 中是文件号的信息既 上面的:"1F 00 EF EF C0 7B 02 08..."(NC2000中的地址是EA800~FA800 $800为一个单元)
有关nand flash 的利用情况:既SYS-TOOLS 中的磁盘扫描 , 如SYS-TOOLS 中所示一块16K 共2K 它的信息保存在E8000,E8800,E9000,E9800,EA000(其中之一)
也是$800为一个单元,具体在哪看$863(还挺好记的)的值(表示怀疑,我认为应该在flash中)0~4
不过那个地址的东西是“ggv nc2000",aa 3a 07 00 40 ff ff,c0 00 00 00 ff ff ...
不知道是什么用 在它的下一个(比如e9000 那么下一个就是 e9800)地址就是利用表了
共$100按位表示 即一个字节表示8块 (0表示用了1没有用),我把我的WQX下满东西后发现最后六个字节还是FF本来十分怀疑看了SUN的留言才知道是CHECK SUM


目前不清楚的地方:1. 文件属性的具体含义(我总是怀疑不应该用3个字节表示属性吧)
2. 保存文件号地址是如何确定的,因为总是看到有的号有好几个描述
3. 坏块的东西 如:log block 和phy block 是如何对应的 因为也没有坏块 所以也看不出来,系统函数又有太多的疑问
4. 编号的信息保存在那 即哪个号是用了的 哪个是没用(如果用删除的话就不是顺序排列了)
5. nor flash 的信息保存在哪 (我现在只对它有大体了解)
6. 编号信息的地方经常能看见A8,A8 不知道有什么用(会不会和$863有联系)
以上的信息是我想的难免有错,肯请大家更正。
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-7-7 11:00 , Processed in 0.009934 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表