wince 6.0 开机自启动

来源:互联网 发布:免费手机音量增大软件 编辑:程序博客网 时间:2024/06/05 15:47

http://blog.csdn.net/zxs20056/article/details/6207230

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.exeNK S

Autorun.lnk C:/WINCE600/OSDESIGNS/sam9263/sam9263/RelDir/AT91SAM9263EK_ARMV4I_Release/Autorun.lnkNK 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卡里的应用程序。调试及升级应用程序就不用重新烧写内核了。

0 0