|
@levelworm 细节特别多,缺乏资料。 没有遇到诡异的 timing 。
PCB 图上面的 CPU(严格来说 spdc1024 是 SoC ,内含 CPU)、DSP 、nor flash 、nand flash 全都要模拟。
cpu 本身不难模拟,6502 cpu 模拟器网上有现成的。麻烦的是 SoC 上面各种特殊寄存器。0x00~0x3f 每一个都有不同的功能,比如切内存(实际上有好几段内存都可以切页,方式还不同)、timer0/1/A/B 、中断控制、驱动 lcd 、电压比较(测电池电量)、RTC 时钟、RTC 定时器、IO port(各种方向控制,锁存不锁存等细节)。0x00~0x3f 的寄存器几乎每一个单独拉出来细节都可以写一页纸。
资料极度缺乏,当年文曲星流行的时候基本上就没有。SoC spdc1024 、DSP spds104a 厂家 sun plus 根本就没公开公布过任何资料。 后来 GGV 网站被攻击才泄露出来一些,但是很多细节资料里并没有解释,要猜和慢慢 debug 。
nor 和 nand 擦除、修改等等操作,各有 10 来种指令序列,也要模拟。
我也不是从头开始写的,我是从曾半仙的 cc800(另一型号文曲星,不过硬件差别挺大的)模拟器 fork 的。DSP 部分是 fork 的 lee 的 pc1000emux 里的代码,然后 debug 和看资料改进。 |