要想使用WindML,需要先将源码编译为库,内核态就用DKM来编译,用户态当然就用RTP了 打开Workbench,建个RTP:
给它起个名字,然后选择合适的build spec。在Windows系统里,Simulator的build spec用SIMPENTIUMxxx_RTP,xxx就是编译器,选择gnu或者diab都是没问题的。另外,喜欢研究代码的小伙伴,可以使用默认的Debug Mode
Build Target改为Librarian
其它选项,都用默认值就可以了 然后新建一个Middleware Component
把这个Middleware加到刚刚的RTP上
选择合适的Middleware。可以看到,如果要编译其它Middleware,也是这样操作的,例如DCOM、OPC等
因为是要把源码编译为库,所有选择Component Configuration
RTP创建完毕后,Workbench自动打开了WindML的Configuration页面 - config.windml
接下来,根据DKM里的配置来config这个windml,两者要保持一致 Build这个RTP之后,就得到了WindML在用户态的两个库
现在,可以在RTP中使用WindML了。先建个VIP
BSP就用simpc,Tool chain要与之前的DKM和RTP的build spec都一致。其它选项用默认值就行了
打开VIP的Kernel Configuration,添加组件INCLUDE_WINDML、INCLUDE_HOST_WINDML_GRAPHICS,以及INCLUDE_RTP
先在VIP中试试内核态的WindML是否正常
Build这个VIP,启动Simulator Connection,跑个例子试试,例如winBall()或者ugldemo()
接下来,新建一个RTP,build spec与之前的工程一致,例如上文的SIMPENTIUMgnu_RTP,其它选项使用默认值。然后在这个RTP里也添加Middleware Component,不过这次选择Application Support
添加WindML的代码后,就可以在RTP里执行UGL应用了
我是泰山,专注VX 15年! 一起学习,共同进步!