英創(chuàng)公司的ARM9工控主板系列產(chǎn)品均預(yù)裝了正版的Window CE操作系統(tǒng),支持客戶(hù)采用強(qiáng)大的微軟開(kāi)發(fā)工具直接開(kāi)發(fā)應(yīng)用程序。Windows CE是目前針對(duì)嵌入式應(yīng)用的主流操作系統(tǒng)之一,具有靈活的可裁剪性能,以支持客戶(hù)對(duì)應(yīng)用功能的不同選擇。在實(shí)際應(yīng)用中,客戶(hù)的需求一方面可能反映在對(duì)CE不同功能的選擇上,另一方面會(huì)反映在英創(chuàng)公司對(duì)產(chǎn)品的BSP的不斷改進(jìn)與完善之中。而不論是CE功能的刪減添加,還是驅(qū)動(dòng)程序的升級(jí),對(duì)客戶(hù)來(lái)講都是更新系統(tǒng)的內(nèi)核。為了及時(shí)滿(mǎn)足客戶(hù)需求的變化,英創(chuàng)公司針對(duì)不同的主板類(lèi)型設(shè)計(jì)了相應(yīng)的內(nèi)核更新軟件工具。英創(chuàng)公司將把當(dāng)前內(nèi)核文件通過(guò)互聯(lián)網(wǎng)發(fā)給需要的客戶(hù),客戶(hù)再利用相關(guān)工具,就可方便的把新的內(nèi)核文件直接寫(xiě)入英創(chuàng)工控主板中。
在實(shí)際應(yīng)用中的另外一個(gè)問(wèn)題是,作為工控產(chǎn)品一般都具有較長(zhǎng)的產(chǎn)品生命周期,往往會(huì)出現(xiàn)一部分產(chǎn)品已經(jīng)投入市場(chǎng),而針對(duì)某些應(yīng)用又產(chǎn)生了新的需求,因此需要對(duì)這一部分的產(chǎn)品進(jìn)行內(nèi)核更新的工作。這時(shí)就需要了解當(dāng)前主板產(chǎn)品的內(nèi)核版本信息,而內(nèi)核版本信息一般很難從主板外觀(guān)上看出。為此英創(chuàng)公司從2009年12月起,為新出品的主板產(chǎn)品加入了內(nèi)核的時(shí)間標(biāo)簽作為版本信息??蛻?hù)若需查看內(nèi)核時(shí)間標(biāo)簽,可通過(guò)以太網(wǎng)Telnet登錄到主板,然后運(yùn)行“\》BTS”命令,就可讀到系統(tǒng)的時(shí)間標(biāo)簽信息,格式如下:
Emtronix Built at Dec 1 2009 12:30:00
客戶(hù)的應(yīng)用程序也可通過(guò)以下代碼讀取相應(yīng)的時(shí)間標(biāo)簽字串:
// GetBuiltStamp.cpp : Defines the entry point for the application.
//
#include ‘stdafx.h’
#include
#define IOCTL_KLIB_USER 256 // where OEM defined IOCTL starts.
#define HAL_EM9XXX_BUILT_STAMP_READ 117
#define IOCTL_EM9XXX_BUILT_STAMP_READ \
CTL_CODE(FILE_DEVICE_HAL, \
IOCTL_KLIB_USER+HAL_EM9XXX_BUILT_STAMP_READ, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
extern ‘C’ __declspec(dllimport) BOOL KernelIoControl( DWORD dwIoControlCode,
LPVOID pInBuffer,
DWORD InSize,
LPVOID pOutBuffer,
DWORD OutSize,
LPDWORD pReturnBytes);
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
char StampString[128];
DWORD dwOutBufSize;
DWORD dwReturnBytes;
BOOL bRet;
dwOutBufSize = 128;
bRet = KernelIoControl(IOCTL_EM9XXX_BUILT_STAMP_READ,
NULL,
0,
(LPVOID)StampString,
dwOutBufSize,
&dwReturnBytes);
if(!bRet)
{
printf(‘Kernel Built Stamp is unavailable\r\n’);
}
else
{
StampString[dwReturnBytes] = ‘\0’;
printf(‘%s\r\n’, StampString);
}
return 0;
}
-
WINDOWS
+關(guān)注
關(guān)注
3文章
3509瀏覽量
88205 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6083瀏覽量
35093
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論