OK335xS(Cortex-A8)开发板版本控制Win CE6.0

forlinx ( 楼主 ) 2015-5-21 08:47:54  显示全部楼层

飞凌嵌入式OK335xSCortex-A8开发板WINCE系统启动后,桌面上有“Windows Embedded CE v6.00 (Build 3122 on Sept 22 2012 )”这些WINCE版本及编译时间的信息,如何去掉或利用这些信息做我们的系统标志呢?

        我们先来看这部分信息是哪部分代码输出的,在WINCE600\PUBLIC\SHELL\OAK\HPC\CESHELL\UI\ desktopview.cpp文件的PaintBackground函数中有源码:

#IFndef SHIP_BUILD

   WCHAR wszVersion[256];

   OSVERSIONINFO VerInfo;

   VerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

   ::GetVersionEx(&VerInfo);

   ::wsprintf(wszVersion, L"Windows Embedded CE v%d.%02d (Build %d on %s) ",

              VerInfo.dwMajorVersion, VerInfo.dwMinorVersion, VerInfo.dwBuildNumber, TEXT(__DATE__));

   if (m_hbmpDesktop && !ftileBackgroundImage)

   {

     rc.top = rcBlt.bottom + 5;

   }

   else

   {

     rc.top = rc.top + (rc.bottom - rc.top) / 2 - 8;

   }

   ::DrawText(hdc, wszVersion, -1, &rc, DT_SINGLELINE | DT_CENTER | DT_TOP);

   #endif

上面的代码就是如果没有定义SHIP_BUILD这个环境变量,就不会编译这部分代码,自然就不会再桌面上显示这些信息了,下面总结如何去除这些信息的办法:

1.       定义环境变量SHIP_BUILD

定义环境变量SHIP_BUILD,需要在WINCE6.0系统工程“property page -> build options”下面对“Enble build ship”打钩,如下图所示:




图1
2.       改变编译上面代码的条件
因为我们需要系统可以输出调试信息,所以第1种办法就不太合适(不过倒是适合于编译发布的系统),我把上面代码的编译条件由#ifndef SHIP_BUILD改为#ifdef SHIP_BUILD,然后到\WINCE600\PUBLIC\SHELL\OAK\HPC\CESHELL\UI目录下rebuild,然后选择clean sysgen,这样就可以保证串口调试信息的输出,也可以不再显示上面的信息。
也可以屏蔽掉上面的代码
当然,如果我们不需要在桌面上显示那些信息,可以把上面的代码注释掉。
4 只要是我们对代码明白了,想要显示什么信息就是我们需要的事了,可以定义自己定义系统更新的一些日期,版本及其他信息。可以方便的提示我们使用者,以防出现偏差。
以上就是针对飞凌嵌入式 TI  AM335X(Cortex-A8)开发板的操作。

0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /8 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 粤ICP备14022951号-2 )

GMT+8, 2019-6-18 21:15 , Processed in 0.526259 second(s), Total 25, Slave 17 queries , Memcache On.

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表