我试图找出如何在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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top