英创信息技术X86工控主板DOS应用程序的动态加载介绍

在嵌入式操作系统中,dos因其自身小巧、占用资源少、启动速度快等特点而占据了一席之地。dos应用程序的自动加载运行,一般是通过编辑一个批处理文件来实现,对于英创x86板卡的用户来说,则只需要编辑user.bat文件即可。一般大多数的情况是客户指定运行单一的应用程序,编辑user.bat的内容为应用程序的文件名,就很方便地实现程序的自动加载运行了,这部分内容在英创系列x86嵌入式主板的“使用必读”均有详细的介绍。在实际的应用中,可能还会遇到根据不同的环境配置,需要加载不同的客户应用程序的情况,也就是说不是加载一个单一固定的程序,还需要在加载应用程序之前先行自动判断。在本文中将结合英创x86主板的特点,通过编辑user.bat的内容,介绍一种实现该功能的方法。
以英创公司的x86系列主板为例,英创公司的x86系列主板预装了dos操作系统,支持dos的标准应用,可以通过gprs或以太网两种方式接入wan,这两种接入wan的方式往往是单独使用的,但也有可能对于不同的使用环境,使用者希望可以选择接入wan的方式。为此,可以构建两个应用程序:通过gprs接入wan的应用程序app1,通过以太网接入wan的应用程序app2,用户选择哪一种方式上网,其实就是选择执行哪一个应用程序,在本例中用gpio来识别用户的选择。英创公司的工控主板都提供了数量众多的gpio,关于gpio的使用请查看相应的“编程手册”,这里不再赘述。专门编写一个test程序,系统启动后,先调用程序test,在test中判断gpio的状态,并由这个状态返回一个值,系统判断test的返回选择执行相应的程序,所以编辑user.bat内容如下:
@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可以看到,系统启动后,先执行test.exe,然后利用if errorlevel命令对test的返回值进行判断,if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令,需要注意的是if errorlevel 比较返回码的判断条件并非等于,而是大于等于,所以对于结合使用goto命令时的习惯用法是返回值按从大到小的顺序排列。在user.bat中,通过if errorlevel判断test的返回值,从而决定执行app1还是app2,也就实现了上网方式的选择。test.cpp中主要代码如下:
#define bit0 0x01
if( inportb( portaddr )&bit0 ) // 读取gpio状态(portaddr为具体的端口地址)
return 0;
return 1;
做完上面的工作后,把user.bat,test.exe,app1.exe和app2.exe下载到系统中,用户仅需要通过一个跳线器,将相应的gpio脚置为高或低就可以轻松的选择应用程序的执行了,从而实现了dos下应用程序的动态加载。

大联大友尚集团推出ST STM32马达控制Nucleo开发工具包,可直接开始运转无刷直流马达
AD9545输入端与输出端信号延迟问题解析
互联网公司将进军线上医疗行业市场
净利润达656亿!中国移动营运收入实现人民币3918亿元
±1500V/2500V/3000VDC高电压隔离升压电源模块
英创信息技术X86工控主板DOS应用程序的动态加载介绍
防火门监控系统在消防应急中的应用
高精度彩色3D相机:开启崭新的彩色3D成像时代
怎么评估低通滤波器的性能?
财乐门贴心守护您的家居安全,做您身边的防盗界首席专家!
500以内音质最好的蓝牙耳机,NANK南卡对比万魔蓝牙耳机
微单相机哪个好?佳能微单M100 小机身大能量
爱国科学家齐发力 中国芯必将崛起
谷歌怒怼小米:列举MIUI三宗罪
联想凭什么用ThinkPad L系列赢得中国市场?
ADC输入接口设计的六个主要条件
全球首创的量子点光谱传感技术改变人与机器的视觉世界
先趋势而行的西部数据推动下一代数据基础架构全新升级
努比亚Z17S发布会倒计时:努比亚首款全面屏手机怒怼小米mix2,我才是“真全面屏”
麒麟9000s是国产的吗?麒麟9000和麒麟9000l有什么区别