分类:
2009-10-22 00:07:13
闲来无事打算用Proteus来仿真一下8257DMA控制器,结果在仿真库里找了老半天都没有找到8257。在说明文档里明明写着有呀。
↓这个是官方网站上的说明
截图为证
↓这个是中国代理商官方网站(貌似是)上的说明
再截个图
白纸黑字,写的清清楚楚,难道我安装不全,把这个器件给搞没了?看了看MODELS下面的仿真库文件中有一个82XX.dll的动态链接库,这个东西估计就是定义82系列芯片的东西了。
果不其然,对于8255有下列属性
对于8253有下列属性
很容易就推断出MODDLL属性指定了该仿真模型所调用的库,而PRIMITIVE是什么意思呢?我们知道DLL中定义了一系列元器件,当dll被调用的时候它怎么区别选用哪个呢,这就要靠PRIMITIVE属性来指出了。这就是它的重要作用,如果要深究的话,就用到Proteus VSM SDK开发文档了,它会具体告诉你怎么创建一个自己的仿真元件,哈哈,厉不厉害。
言归正传,既然要传递PRIMITIVE参数,那么在DLL中一定有定义’8255’和’8253A’这几个字符(ASCII码),没有定义的就没有该器件。我们用16进制编辑器打开82XX.dll,搜索,只有8251,8253,8255A,8279几个字符,8257没有定义!由此推断,官方文档有误!把8279错误写为8257!
其实在官方的另一些说明里已有更正↓(要是我早些看到的话,也不用费这劲了!)
写完了,怎么突然隐隐感觉费了老大劲搞这个问题有点浪费时间!哎呀,算了,睡觉去!
又想起了件事:8251也搜索不到器件,不过没事,我们已经证实它早已在DLL中有定义,只需自己新建一个器件调用一下82XX.dll中的8251而已,很简单。