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

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

英創(chuàng)信息技術(shù)工控主板修改虛擬鍵碼介紹

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

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

評論