wince6.0开机自启动应用程序
1、在VS2005下建立一個(gè)Win32智能設(shè)備項(xiàng)目,取名為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的可執(zhí)行文件,此段代碼主要功能是查找指定的應(yīng)用程序,然后執(zhí)行;下面這段代碼可以保證在SD卡文件系統(tǒng)正確加載后才去執(zhí)行應(yīng)用程序。
?while(iCount--)
{
?hd=::FindFirstFile(lpCmdLine,&fd);
?Sleep(500);
?if(INVALID_HANDLE_VALUE!=hd) break;
}
文件的名稱和路徑由命令行參數(shù)指定:ShExeInfo.lpFile=lpCmdLine。
2、 新建一個(gè)快捷方式
新建一個(gè)文本文檔,內(nèi)容為:42#/Windows/ShellExe.exe /NandFlash/MyApp.exe,保存后,更改文件名為Autorun.lnk。其中/NandFlash/MyApp.exe應(yīng)用程序的絕對(duì)路徑。
3、將快捷方式Autorun.lnk添加到自啟動(dòng)目錄
在AT91SAM9263EK_ARMV4I_Release下的 project.dat里加入如下內(nèi)容:
Directory("/Windows/啟動(dòng)"):-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模塊下加入如下內(nèi)容:
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表示系統(tǒng)文件。
?
6、生成XIPKERNEL.nb0文件
???修改ce.bib文件,在MEMORY處,把RAM的配置改成RAM 8039e000 03862000 RAM。
在vs2005下執(zhí)行“生成”--》“Open Release Directory in Build Window”,在命令提示符下執(zhí)行romimage ce.bib,可生成XIPKERNEL.bin。
在提示符下執(zhí)行viewbin -r XIPKERNEL.bin,可顯示該XIPKERNEL.bin文件的起始位置和長度。
在提示符下執(zhí)行cvrtbin -a 0x起始位置 -l 0x長度 -w 32 -r XIPKERNEL.BIN,此步驟執(zhí)行后生成XIPKERNEL.nb0。
燒寫xip.nb0和xipkernel.nb0到板子,然后把應(yīng)用程序放到NandFlash目錄下,改名為MyApp.exe,然后重啟就可看到應(yīng)用程序自動(dòng)運(yùn)行了。
7、總結(jié)
這種方法用起來比較方便,ShellExe.exe不用每次都重新編譯,只要根據(jù)應(yīng)用程序路徑修改Autorun.lnk即可,可以加載Flash、U盤、SD卡里的應(yīng)用程序。調(diào)試及升級(jí)應(yīng)用程序就不用重新燒寫內(nèi)核了。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的wince6.0开机自启动应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云闪付转账成功怎样追回?转错了还能撤回吗
- 下一篇: 如何利用计算机实现非线性转换,2013《