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

 

摘自:http://blog.csdn.net/zxs20056/archive/2011/02/25/6207230.aspx

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卡里的应用程序。调试及升级应用程序就不用重新烧写内核了。

你可能感兴趣的:(开机自启动,内核,VS2005,可执行文件,WinCE6.0)