我们正在开发的单片机软仿,通过切换DLL以实现几家单片机的软仿。以义隆单片机为切入点,几经波折,架构做了好几次大的变动。
最早,IDE内置Simulator,浑然一体,架构最简单,实现最容易,指令软仿就是在这个阶段调试完成的。
随后,就遇到了问题,仿真不仅仅是单片机,还有外围电路,常见的元件尤其是UI类要可以仿真,比如LED、Key等。这意味着必须容易扩展,于是决定把IDE和Simulator分开,做成两个独立的exe。每个器件包在DLL里面,再挂到Simulator的exe里去。IDE的exe跟Simulator的exe使用进程间通讯互相联系。
这时,问题又来了,Simulator Platform是个非常庞大的东西,除去仿真部分外,用户必须很容易组织自己的电路,这时候人机界面的东西太多了,开发工作量远远偏离了软仿真的中心。
最后,决定借道Proteus的Simulator Platform,只需开发一个元件DLL,挂到Proteus上,IDE跟DLL通讯即可。目前仍采用的是进程间通讯,稳定后会改为TCPIP通讯,参考或者直接使用RDI协议。目前的简单协议主要是为了调试便捷,但也做好了扩充准备。TCPIP有个优点,可单机还可以联网调试,一台PC跑Proteus的硬件平台,一台Notebook跑IDE的单片机调试环境。
|