来做能下载程序的FC

这个想法,我很早之前就有了。不过一直以来的设计,都不成熟。我自认过往的设计都是不行。

是我的设计不行,并不是这个想法不可能。

之前的想法就不说了,说说近几天的想法。

能下载程序的,那就是说FC等于是一台烧录机了。当然不能说全部mapper都支持,但至少有那么一种可用。

1 我用的第一种想法,用mapper3(即图形表可以切页)。用的是两块32K的FRAM,(图形表那儿也用32K,那么就有4倍的图形表可以切了。)
我需要一个烧录机(没有现成的,要自己设计。这也行),先给程序FRAM写一段串口接收程序ISP(需要自己开发串口硬件,和编写ISP。),可以在开机时自动与上位机握手下载程序。
那么也需要开发一个配合使用的上位机程序(也要自己开发)。
不过后来发现FRAM除了有写入次数限制,读限同样有限制的。虽然有100亿次以上,不过只够我玩几个小时就坏呀,FC的CPU主频应该有1MHz的。
所以这个想法不行。

2 我的下一个想法是用flash,有512K。那么用mapper2,VRAM配一个8K的ram就行。
那么flash要求连续向5555H和2AAAH写入指令(这个是flash自身角度上的地址,不是cpu映射的)但512K那绝对是要切页。PROM只有32K空间。那么5555H和2AAAH分属两页,不可能连续写入呀,中间必须写入一个什么鬼来切页。这就不能实现写入了呀。
虽然可以用别的法子切页,例如用扩展口的OUT,做成扩展的并口。但这个操作需要将指令移到内存中执行。也不是说不行,但是从扩展口拉一排线飞到卡带上,好奇怪。
但是内存的指令从何而来?要先烧写到flash中,每次下载,先copy自身的擦除和写入程序到内存,再跳到内存执行。擦掉自身(flash)。再给FC装一个串口,从串口下载程序写入flash。2K的内存放这么多代码,要是放下,我那不是白写了。
这个想法先放放,不靠谱。

3 直接用SRAM,我有一个1MB(16位的)SRAM。也是用mapper2,当我设计好切页,发现我需要一个bootloader,那么用51做一个,但是要隔离总线。需要3个8位总线高阻隔离,还有串口。当然这个没有flash那么麻烦。
开机时,先隔离开总线,由51写入由导程序,可默认程序到SRAM,要开发串口程序。
这个方案,还是要3个总线高阻隔离芯片,1个51,两个SRAM(一个做程序ROM,一个做图形表)
我还是想精简一下。

4 直接用单片机替代ROM
这样下载程序只要向单片机下载就行。当然PROM要改一改,将它当成DATA,与单片机的程序打包。而单片机用查表方式,调用PROM,向FC提供数据或指令。
此法极其简单,只要单片机用一最快的51,或直接用32

你可能感兴趣的:(NES,FC,MCU)