wince6.0开机自启动应用程序

1、在VS2005下建立一个Win32智能设备项目,取名为ShellExe,编译如下代码:

int WINAPI WinMain(HINSTANCE hInstance,

  HINSTANCE hPrevInstance,

  LPTSTR    lpCmdLine,

  int       nCmdShow)

{

 WIN32_FIND_DATA fd;

 HANDLE hd=INVALID_HANDLE_VALUE;

 int iCount = 20;

 while(iCount--)

 {

  hd=::FindFirstFile(lpCmdLine,&fd);

  Sleep(500);

  if(INVALID_HANDLE_VALUE!=hd) break;

 }

 if(0==iCount) return 0;

 FindClose(hd);

 SHELLEXECUTEINFO ShExeInfo={0};

 ShExeInfo.cbSize=sizeof(SHELLEXECUTEINFO);

 ShExeInfo.fMask=SEE_MASK_NOCLOSEPROCESS;

 ShExeInfo.hwnd=NULL;

 ShExeInfo.lpVerb=NULL;

 

 ShExeInfo.lpFile=lpCmdLine;

 ShExeInfo.lpParameters=L"";

 ShExeInfo.lpDirectory=NULL;

 ShExeInfo.nShow=SW_SHOW;

 ShExeInfo.hInstApp=NULL;

 

 ShellExecuteEx(&ShExeInfo);

 return 0;

}

 

  生成ShellExe.exe的可执行文件,此段代码主要功能是查找指定的应用程序,然后执行;下面这段代码可以保证在SD卡文件系统正确加载后才去执行应用程序。

 while(iCount--)

{

 hd=::FindFirstFile(lpCmdLine,&fd);

 Sleep(500);

 if(INVALID_HANDLE_VALUE!=hd) break;

}

文件的名称和路径由命令行参数指定:ShExeInfo.lpFile=lpCmdLine。

2、 新建一个快捷方式

新建一个文本文档,内容为:42#/Windows/ShellExe.exe /NandFlash/MyApp.exe,保存后,更改文件名为Autorun.lnk。其中/NandFlash/MyApp.exe应用程序的绝对路径。

3、将快捷方式Autorun.lnk添加到自启动目录

在AT91SAM9263EK_ARMV4I_Release下的 project.dat里加入如下内容:

Directory("/Windows/启动"):-File("Autorun.lnk","/Windows/Autorun.lnk")

 

4、选择Make Run-time Image生成映像XIP.nb0,然后将前两步得到的ShellExe.exe和Autorun.lnk拷贝到C:/WINCE600/OSDESIGNS/sam9263/sam9263/RelDir/AT91SAM9263EK_ARMV4I_Release目录下。

 

5、将MyApp.exe和Autorun.lnk添加到NK里,方法是在ce..bib文件的Files模块下加入如下内容:

ShellExe.exe  C:/WINCE600/OSDESIGNS/sam9263/sam9263/RelDir/AT91SAM9263EK_ARMV4I_Release/ShellExe.exe  NK S

Autorun.lnk  C:/WINCE600/OSDESIGNS/sam9263/sam9263/RelDir/AT91SAM9263EK_ARMV4I_Release/Autorun.lnk   NK S

注意:ShellExe.exe的属性S表示系统文件

 

6、生成XIPKERNEL.nb0文件

   修改ce.bib文件,在MEMORY处,把RAM的配置改成RAM 8039e000 03862000 RAM。

在vs2005下执行“生成”--》“Open Release Directory in Build Window”,在命令提示符下执行romimage ce.bib,可生成XIPKERNEL.bin。

在提示符下执行viewbin -r XIPKERNEL.bin,可显示该XIPKERNEL.bin文件的起始位置和长度。

在提示符下执行cvrtbin -a 0x起始位置 -l 0x长度 -w 32 -r XIPKERNEL.BIN,此步骤执行后生成XIPKERNEL.nb0。

烧写xip.nb0和xipkernel.nb0到板子,然后把应用程序放到NandFlash目录下,改名为MyApp.exe,然后重启就可看到应用程序自动运行了。

7、总结

  这种方法用起来比较方便,ShellExe.exe不用每次都重新编译,只要根据应用程序路径修改Autorun.lnk即可,可以加载Flash、U盘、SD卡里的应用程序。调试及升级应用程序就不用重新烧写内核了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python语言单行注释符_云计算开发学习笔记:Python3注释

大家在学习各种编程语言的时候都会在代码里面添加一些注释,这个也是为了方便日后对代码的查找和修改,各种编程语言的注释方式略有不同,Python3语言也一样有自己的注释方式,下面我们来了解一下都有哪几种。 确保对模块,…

神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(安装TensorFlow2.0)

创建环境并激活 conda create --name tensorflow2.0 python3.7 activate tensorflow2.0 安装相关软件包(conda命令或pip命令2选1) conda install numpy matplotlib PIL scikit-learn pandas pip install numpy matplotlib Pillow scikit-learn pand…

python决策树sklearn_python利用sklearn包编写决策树源代码

本文实例为大家分享了python编写决策树源代码,供大家参考,具体内容如下 因为最近实习的需要,所以用python里的sklearn包重新写了一次决策树。 工具:sklearn,将dot文件转化为pdf格式(是为了将形成的决策树可…

如何在WINCE中添加WebServer组件

wince 5.0有自带的Web server组件.第三方比较好用的有GoAhead Web Server ,这是开源软件,而且支持Linux. 一、wince 5.0自带的Web server组件 步骤一: 在PB中添加以下组件: Catalog item Sysgen variable Location in Catalog Web Server (HTTPD) SYSGEN_HTTPD Communicat…

arcmap添加WMTS服务

http://xdc.at/map/wmts/ 双击 拖拽 个人公众号

[sybase]自动增长字段创建方法

在Sybase数据库创建表时,对于自动增长字段的写法示例: CREATE TABLE dbo.BM_SM_ERR (SMCWBM int identity, -- 表主键SMCWDM varchar(10) NOT NULL, YYSLX smallint NOT NULL, SMCWMS varchar(100) NOT NULL, QYBJ tinyint …

基于嵌入式操作系统VxWorks的多任务并发程序设计――中断与任务

中断处理是整个运行系统中优先级最高的代码,可以抢占任何任务级代码运行。中断机制是多任务环境运行的基础,是系统实时性的保证。几乎所有的实时多任务操作系统都需要一个周期性系统时钟中断的支持,用以完成时间片调度和延时处理。VxWorks 提…

jwt获取token_JWT实现token认证

1.JWT是什么?Json Web Token(JWT)是目前比较流行的跨域认证解决方案,是一种基于JSON的开发标准,由于数据是可以经过签名加密的,比较安全可靠,一般用于前端和服务器之间传递信息,也可以用在移动端和后台传递…

神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(第一个Python程序)

从程序中了解知识点,有详细的备注 # 判断变量num是否为正数 # 注释语句 是对程序进行说明的语句,在程序运行过程中不被执行 # ctrl/进行多行注释num0 # 赋值语句 大小写敏感 可以以分号结尾,但是在同一行必须以分号隔开 # 其数据类型由所赋…

Sqlce与SQL Server2000/2005数据转换程序

先上图 功能介绍: 1.根据Mssql2000/2005创建sqlce数据库表结构及索引(如果操作的表为空,则取mssql2000/2005的所有表,否则取录入的操作的表,用逗号隔开) 2.从mssql2000/2005导数据到已建好的sqlce(如果操作的表为空,则…

SRAM和SDRAM的区别

DRAM,动态随机存取存储器,需要不断的刷新,才能保存数据。而且是行列地址复用的,许多都有页模式。 SRAM,静态的随机存取存储器,加电情况下,不需要刷新,数据不会丢失,而且…

docker java镜像_Springboot整合MongoDB的Docker开发,其它应用也类似

1 前言Docker是容器开发的事实标准,而Springboot是Java微服务常用框架,二者必然是会走到一起的。本文将讲解如何开发Springboot项目,把它做成Docker镜像,并运行起来。2 把Springboot打包成Docker镜像Springboot的Web开发非常简单&…

神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python输入和输出)

从程序中学习知识点 1. #输出函数可以输出字符串常量 print("hello") #输出数学表达式 print(12) #输出变量 print(num) 2. #string input(提示信息) #接收用户的输入,并以字符串类型返回;即键盘输入123,并将123赋值给string numint(input…

ManulResetEvent与AutoResetEvent

定义 ManualResetEvent:通知正在等待的线程已发生事件。 AutoResetEvent:通知正在等待的线程已发生事件。 代码 ManualResetEvent测试 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading;…

Timer

[摘要] Timer是实时操作系统的一个重要组成部分。本文结合近阶段的学习和实验情况,对VxWorks中的时间函数和定时器作了一些探讨。主要介绍了Timer的机制,相关的函数,并给出了一些具体的例子。 一. Tick Tick是指每秒中定时器中断的次数。POS…

神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python常量、变量和表达式)

从程序中学习知识点 1. #支持6中表达形式 数字 字符串 列表 元组 字典 集合 #数字 整型(正整数 负整数 零) #Python3中的整数可以任意大,而不用担心位数不够而导致溢出的情况 intnum12345678909999999999999 print(intnum,type(intnum)) #浮点数 小数 floatnum1 …

reentrantlock非公平锁不会随机挂起线程?_程序员必须要知道的ReentrantLock 及 AQS 实现原理...

专注于Java领域优质技术,欢迎关注作者:Float_Luuu提到 JAVA 加锁,我们通常会想到 synchronized 关键字或者是 Java Concurrent Util(后面简称JCU)包下面的 Lock,今天就来扒一扒 Lock 是如何实现的,比如我们可以先提出一…

关于SOAP的几篇文章

转载自:/show-1598-1.shtml PHP操作soap我总觉得是一件非常痛苦的事情,但没有办法,现在很多功能都是基于WebService的,比如那个amazon的,但其实很多 公司都也还是提供了restful之类的接口,使得PHP与其他系统…

VxWorks动态加载

注:最近在做热补丁的功能,看到一篇gateway写的文章,觉得很通俗易懂的,就将搜集到的资料又整理了一下,供大家参考。 使用动态加载目标模块的方式有很多好处,比如可以在不破坏原来的环境下增加调试定位功能&a…

excel办公常用的宏_让领导看傻!精美168套办公常用excel模板免费领

HR们面试的时候,是不是经常看到应聘者的简历上技能那一栏写着精通Excel、PPT等办公技能?你知道Excel用到什么程度才算精通吗?能够用excel做表格就算精通吗?还是要能够熟练使用各种函数?你做出来的Excel报表也许是这样的…