Chinaunix首页 | 论坛 | 博客
  • 博客访问: 136423
  • 博文数量: 12
  • 博客积分: 2502
  • 博客等级: 少校
  • 技术积分: 163
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-20 23:32
文章分类

全部博文(12)

文章存档

2011年(1)

2009年(11)

我的朋友

分类:

2009-10-22 00:07:13

闲来无事打算用Proteus来仿真一下8257DMA控制器,结果在仿真库里找了老半天都没有找到8257。在说明文档里明明写着有呀。

↓这个是官方网站上的说明

截图为证

↓这个是中国代理商官方网站(貌似是)上的说明

再截个图

白纸黑字,写的清清楚楚,难道我安装不全,把这个器件给搞没了?看了看MODELS下面的仿真库文件中有一个82XX.dll的动态链接库,这个东西估计就是定义82系列芯片的东西了。

果不其然,对于8255有下列属性

{PRIMITIVE=DIGITAL,8255}
{MODDLL=82XX.DLL}

对于8253有下列属性

{PRIMITIVE=DIGITAL,8253A}
{MODDLL=82XX.DLL}

很容易就推断出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而已,很简单。

阅读(3613) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~