方法/步骤
仿真难点:软件仿真的难点主要在于keil平台本身并没有提供诸如fopen/fread等函数接口,所以我们要想脱离硬件方便快速的在windows平台对MP3/WMA解码逻辑进行分析验证,就必须找到一个类似的接口,就如同在硬件平台上一样通过ReadFile将u-disk或者sd card中的数据读取到我们的share buffer中,然后进行分析。
解决途径:Keil提供的AGSI接口,全称为“Advanced Generic Simulator Interface“。AGSI接口其实就是一个由VC编写的DLL,因此keil无法进行的操作诸如fopen和fread等都可以通过该dll来进行。
交互原理:
当keil平台在simulator的模式下面开始运行的时候会调用该DLL的入口函数AGSI entry。然后通过监控mem,SFR等来实现和DLL的交互。注:Keil uVision2以上版本才可以使用该接口。详细介绍请见Apnt_154.pdf。
软件配置:
打开keil 软件平台,新建或者打开任意一个工程,右击该工程在弹出的菜单中选中option for target,在随后弹出的对话框中选择debug选项,如下图:
--
选中Use Simulator。在左下角dialog DLL的Parameter下的编辑框中输入-dSPeriDLL,其中SPeriDLL是VC工程编译生成的DLL文件名字,-d是命令。另外在进行软仿真的时候如果选中Limit Speed to Real-Time则表示使用本机CPU的时钟进行模拟,这样可以得到更快的仿真速度。
注: Limit Speed to Real-Time选项在8.16和8.16以前版本中代表的含义是相反的。
VC软件配置:
打开VC6.0,选择project->settings,选中debug选项,在executable for debug session编辑框中通过browse找到C:\Keil\UV3\Uv3.exe。再选择custom build选项,然后在commands中输入copy $(InputPath) C:\KEIL\C51\BIN\$(InputName).dll,在output编辑框中输入C:\KEIL\C51\BIN\$(InputName).dll。至此软件配置完成,以后每次VC程序的更改,编译后生成的dll都会被拷贝到keil的目录下面,可直接运行keil,进行软仿真,也可以通过VC启动keil然后和keil进行联调。
注意事项
开发前定好软件访问共享buffer的协议规则
注意buffer的大小与存储方法