1.5.1 使用Workbench定制VxWorks 6.x TSP
默认情况下,Tilcon界面应用程序包含对所有界面对象的支持,为了降低VxWorks平台上Tilcon应用程序的二进制文件大小,可以使用Workbench(3.0及以上版本)调用Tilcon扩展配置工具删除未使用的界面对象。开发者可通过扩展配置工具选择需要的功能(各功能项之间的依赖关系由扩展工具自动管理),从而创建只含应用程序所需功能的Tilcon引擎。
使用Workbench可以为以下两种VxWorks运行环境定制TSP:
※ 使用VxWorks 6.x可下载内核模块(简称DKM)创建运行于内核态的TSP
※ 使用VxWorks 6.x实时进程(简称RTP)创建运行于用户态的TSP
1.创建Workbench工程 (1)在Workbench中,点击“File > New > VxWorks Downloadable Kernel ModuleProject(或VxWorks Real Time Process Project)”菜单,创建DKM或RTP工程;(2)输入工程名LibRtpTilcon,点击“Next”按钮,跳转到“Build Spec”配置页面;(3)选择GNU编译器,去除“Debug Mode”勾选项,点击“Next”按钮,跳转到“Build Target”配置页面;(4)设置Build tool为Librarian(DKM工程)或Linker(RTP工程),点击“Finish”按钮,完成工程配置。
2.添加Tilcon组件配置 (1)点击“File > New >Other >Middleware Component”菜单,弹出中间件配置页面;(2)选择刚创建的LibRtpTilcon工程,点击“Next”按钮,跳转到组件选择页面;(3)选择Tilcon 5.8,点击“Next”按钮,跳转到组件模板页面;(4)选择“Tilcon Graphics API and enginebuild”,点击“Finish”按钮完成LibRtpTilcon工程创建。
对于VxWorks 6.6及以上版本,在LibRtpTilcon工程目录下将增加scalability.makefile和tilcon.scalability两个文件;对于VxWorks 6.5,在LibRtpTilcon工程目录下将增加scalability.makefile和scalability.mk两个文件。
3.配置图形界面对象(可选) 默认情况下,Tilcon扩展工具包含所有的图形界面对象,用户可根据需要移除不必要的图形界面对象。
对于VxWorks 6.6及以上版本,创建Tilcon组件后,Workbench自动在Tilcon扩展配置编辑器中打开tilcon.scalability文件,如图1-34所示。反选图形界面对象名称前面的复选框,可移除该图形界面对象。如果某个对象被移除,所有依赖该对象的其他对象也会自动被移除;相反,若被移除的对象重新被包含,则它依赖的其他对象会被自动包含。
图1-34 界面对象配置
对于VxWorks 6.5,打开scalability.mk文件后,要移除某个图形界面对象,就将其从TILCON_ENABLED_ENGINE_FEATURES列表中移除,并添加到TILCON_DISABLED_ENGINE_FEATURES列表中。用户必须自己管理图形界面对象之间的依赖关系,所以移除某个图形界面对象后,依赖该对象的所有其他对象也必须移除。图形界面对象之间的依赖关系见表1-4。
表1-4 图形界面对象的依赖关系
4.编译TSP 界面对象配置完成后,通过右键菜单“Build Project”编译当前工程。若出现依赖关系对话框,直接点击“Cotinue”按钮,Workbench将自动保存先前的图形界面对象配置,并编译工程。
对于DKM类型的LibRtpTilcon工程,编译成功后,将在LibRtpTilcon工程目录下创建obj/vxworks-6.x/krnl/lib/.../common目录,其中的...表示与处理器架构相关的多级子目录。在common文件夹下,生成libtilcon-5.x_api.a、libtilcon-5.x_engine.a、libtilcon-5.x_tal.a三个静态链接库文件。
对于RTP类型的LibRtpTilcon工程,在编译成功后,将在LibRtpTilcon工程目录下创建obj/vxworks-6.x/usr/lib/.../common目录,其中...表示与处理器架构相关的多级子目录。common文件夹下,生成libtilcon-5.x_api.a、libtilcon-5.x_engine.a、libtilcon-5.x_tal.a三个静态链接库文件。RTP应用程序需要使用定制的TSP时,只需链接静态库文件libtilcon-5.x_api.a,其余的两个静态链接库文件libtilcon-5.x_engine.a和libtilcon-5.x_tal.a用于创建包含Tilcon GUI引擎的VxWorks可执行性文件LibRtpTilcon.vxe(必须以main函数为入口),无须链接到RTP应用程序中。LibRtpTilcon.vxe位于LibRtpTilcon工程目录的buildTarget/ LibRtpTilcon/Debug/common子目录或buildTarget/LibRtpTilcon/NonDebug/common子目录下,其中buildTarget表示目标机处理器架构对应的编译工具链名称。
5.引用定制的TSP 若使用Workbench创建和编译Tilcon应用程序,需要引用定制的TSP时,在工程属性窗口的“Build Properties”配置项中,切换到Build Macro页面,添加一个名称为TILCON_CUSTOM_ENGINE的编译宏,对应的值为定制TSP的Workbench工程名(LibRtpTilcon)。这样,就可以保证Tilcon应用工程链接定制的TSP,而非默认的TSP。