在EZ 1写作PSRAM的Flash 3
-
22-08-2019 - |
题
我试图找出如何在PSRAM在GBA合1个读卡器尺寸的华硕EZ Flash 3程序。基本上重复了GBA Exploader等节目做。
如果我选择一个块和程序它然后读回第一个半字总是0x1500或类似的东西,但该数据的其余部分是细。
如果在写I选择先前块,开始于0x20000字节写入该块(块的从我已经确定什么大小)。从所希望的块读回仍表明,第一半字作为错误但半字的其余部分是正确的。
解决方案
我是这个“接近我曾试图备份一个,然后两个街区,但不是三个,那就是把戏在后的视线通知多少的功能写入0x08000000,0x08020000和0x08040000:
void OpenNorWrite()
{
*(vuint16 *)0x9fe0000 = 0xd200;
*(vuint16 *)0x8000000 = 0x1500;
*(vuint16 *)0x8020000 = 0xd200;
*(vuint16 *)0x8040000 = 0x1500;
*(vuint16 *)0x9C40000 = 0x1500;
*(vuint16 *)0x9fc0000 = 0x1500;
}
在损坏的数据总是0x1500,其意义现在太。
的解决方案是备份三个(或更多)的块,并解决了三个(或更多个)块:
CloseNorWrite();
SetRompage(0x180-3);
OpenNorWrite();
rb=FLASHBASE+(0x20000*3);
for(ra=0;ra<(sizeof(prog)>>2);ra++)
{
rc=prog[ra];
PUT16(rb,(rc>> 0)&0xFFFF); rb+=2;
PUT16(rb,(rc>>16)&0xFFFF); rb+=2;
}
CloseNorWrite();
SetRomPage(0x180);
reboot();
不隶属于 StackOverflow