質問

私は、GBAは1枚のカードでEZフラッシュ3サイズの中でPSRAMをプログラムする方法を把握しようとしています。基本的にはGBA Exploaderや他のプログラムが何を繰り返します。

私がブロックし、プログラムを選択した場合は、

それはそれを読み戻す最初のハーフワードは常に0x1500またはそのようなものですが、データの残りの部分は結構です。

書き込みに、私は前のブロックを選択した場合は、そのブロック(私が判断したものとブロックのサイズ)に0x200000のバイトに書き込みを開始。所望のブロックからリードバックすることまだ最初のハーフワードとして間違ったが、ハーフワードの残りが正しいことを示している。

役に立ちましたか?

解決

私は、この「近い私は1つをバックアップしようとしたと、2つのブロックではなく、3だった、それはトリックでした0x08000000、0x08020000、および0x08040000に書き込むどのように多くの機能の後肢光景通知では:。

void            OpenNorWrite()
{
        *(vuint16 *)0x9fe0000 = 0xd200;
        *(vuint16 *)0x8000000 = 0x1500;
        *(vuint16 *)0x8020000 = 0xd200;
        *(vuint16 *)0x8040000 = 0x1500;
        *(vuint16 *)0x9C40000 = 0x1500;
        *(vuint16 *)0x9fc0000 = 0x1500;
}

破損したデータは、常に、今も意味をなさない0x1500、でした。

溶液が3つ(またはそれ以上)のブロックをバックアップし、フォワード3つ(またはそれ以上)を対処することであるブロック

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