在嵌入式操作系統(tǒng)中,DOS因其自身小巧、占用資源少、啟動(dòng)速度快等特點(diǎn)而占據(jù)了一席之地。DOS應(yīng)用程序的自動(dòng)加載運(yùn)行,一般是通過編輯一個(gè)批處理文件來實(shí)現(xiàn),對(duì)于英創(chuàng)x86板卡的用戶來說,則只需要編輯user.bat文件即可。一般大多數(shù)的情況是客戶指定運(yùn)行單一的應(yīng)用程序,編輯user.bat的內(nèi)容為應(yīng)用程序的文件名,就很方便地實(shí)現(xiàn)程序的自動(dòng)加載運(yùn)行了,這部分內(nèi)容在英創(chuàng)系列X86嵌入式主板的“使用必讀”均有詳細(xì)的介紹。在實(shí)際的應(yīng)用中,可能還會(huì)遇到根據(jù)不同的環(huán)境配置,需要加載不同的客戶應(yīng)用程序的情況,也就是說不是加載一個(gè)單一固定的程序,還需要在加載應(yīng)用程序之前先行自動(dòng)判斷。在本文中將結(jié)合英創(chuàng)X86主板的特點(diǎn),通過編輯user.bat的內(nèi)容,介紹一種實(shí)現(xiàn)該功能的方法。
以英創(chuàng)公司的X86系列主板為例,英創(chuàng)公司的X86系列主板預(yù)裝了DOS操作系統(tǒng),支持DOS的標(biāo)準(zhǔn)應(yīng)用,可以通過GPRS或以太網(wǎng)兩種方式接入WAN,這兩種接入WAN的方式往往是單獨(dú)使用的,但也有可能對(duì)于不同的使用環(huán)境,使用者希望可以選擇接入WAN的方式。為此,可以構(gòu)建兩個(gè)應(yīng)用程序:通過GPRS接入WAN的應(yīng)用程序APP1,通過以太網(wǎng)接入WAN的應(yīng)用程序APP2,用戶選擇哪一種方式上網(wǎng),其實(shí)就是選擇執(zhí)行哪一個(gè)應(yīng)用程序,在本例中用GPIO來識(shí)別用戶的選擇。英創(chuàng)公司的工控主板都提供了數(shù)量眾多的GPIO,關(guān)于GPIO的使用請(qǐng)查看相應(yīng)的“編程手冊(cè)”,這里不再贅述。專門編寫一個(gè)test程序,系統(tǒng)啟動(dòng)后,先調(diào)用程序test,在test中判斷GPIO的狀態(tài),并由這個(gè)狀態(tài)返回一個(gè)值,系統(tǒng)判斷test的返回選擇執(zhí)行相應(yīng)的程序,所以編輯user.bat內(nèi)容如下:
@ECHO OFF
Test
IF ERRORLEVEL 1 GOTO LabApp1
IF ERRORLEVEL 0 GOTO LabApp2
GOTO LabApp3
:LabApp1
APP1
GOTO LabApp3
:LabApp2
APP2
GOTO LabApp3
:LabApp3
ECHO end!
從user.bat可以看到,系統(tǒng)啟動(dòng)后,先執(zhí)行test.exe,然后利用if errorlevel命令對(duì)test的返回值進(jìn)行判斷,if errorlevel命令可以判斷程序的返回值,根據(jù)不同的返回值來決定執(zhí)行不同的命令,需要注意的是if errorlevel 比較返回碼的判斷條件并非等于,而是大于等于,所以對(duì)于結(jié)合使用goto命令時(shí)的習(xí)慣用法是返回值按從大到小的順序排列。在user.bat中,通過if errorlevel判斷test的返回值,從而決定執(zhí)行APP1還是APP2,也就實(shí)現(xiàn)了上網(wǎng)方式的選擇。test.cpp中主要代碼如下:
#define BIT0 0x01
if( inportb( PortAddr )&BIT0 ) // 讀取GPIO狀態(tài)(PortAddr為具體的端口地址)
return 0;
return 1;
做完上面的工作后,把user.bat,test.exe,app1.exe和app2.exe下載到系統(tǒng)中,用戶僅需要通過一個(gè)跳線器,將相應(yīng)的GPIO腳置為高或低就可以輕松的選擇應(yīng)用程序的執(zhí)行了,從而實(shí)現(xiàn)了DOS下應(yīng)用程序的動(dòng)態(tài)加載。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6101瀏覽量
36303
發(fā)布評(píng)論請(qǐng)先 登錄
英創(chuàng)工控主板產(chǎn)品選型指南
在英創(chuàng)主板中預(yù)裝Modbus通訊協(xié)議
英創(chuàng)主板JAVA應(yīng)用開發(fā)簡(jiǎn)介
英創(chuàng)的ARM9工控主板應(yīng)用程序自動(dòng)加載實(shí)現(xiàn)
英創(chuàng)信息技術(shù)工控主板EM9360的GPIO介紹
英創(chuàng)信息技術(shù)工控主板的復(fù)位管理介紹

英創(chuàng)信息技術(shù)工控主板內(nèi)核更新與版本管理介紹

英創(chuàng)信息技術(shù)WinCE主板應(yīng)用程序的自動(dòng)啟動(dòng)介紹

英創(chuàng)信息技術(shù)英創(chuàng)工控主板支持電力終端標(biāo)準(zhǔn)顯示介紹

英創(chuàng)信息技術(shù)嵌入式Linux主板Qt串口應(yīng)用程序簡(jiǎn)介

英創(chuàng)信息技術(shù)Windows Embedded Compact 2013應(yīng)用程序調(diào)試介紹

評(píng)論