wec7 应用程序下载掉电保护问题

[复制链接]
查看11 | 回复6 | 2021-1-27 05:27:06 | 显示全部楼层 |阅读模式
平台:AM335x的硬件平台,跑wince(WEC7)
上位机暂且用VS2008编了一个HelloWord程序,下称为app1.exe
调试部署都通过了,用ActiveSync4.5进行的同步
问题1:板子重启之后,app1.exe就没有了,怎样才能掉电保护
问题2:其他同事如果用其他上位机平台(Labview)开发的app2.exe,又应该怎样掉电保护?
谢谢各位!
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:27:06 | 显示全部楼层
调试部署都通过了,但LZ你知道部署的路径吗?
想重启后不丢失,最简单的方式是将程序部署到Nand或SD卡等存贮介质中。
回复

使用道具 举报

千问 | 2021-1-27 05:27:06 | 显示全部楼层
楼上说的,我研究一下,到没注意可以部署到NAND的方法
回复

使用道具 举报

千问 | 2021-1-27 05:27:06 | 显示全部楼层

我先想到一个笨办法,就是将app.exe,包含到内核里去,当然同时也为了以后启动之后直接运行app.exe
网上有N篇方法关于应用程序自启动的,这里借花献佛一下
-------------------------------------------------------------------------------
----------------------------------借花献佛---------------------------------------------
就我的理解来说,wince系统是跑在ram里的,所以无法直接在根目录或者是\windows目录下保存文件.任何新建的文件在断电后都会消失.所以想要在\windows目录下保存文件只有编写在nk.bin中了.
方法一:
1)假定WindowsCE.NET目标工程目录为D:\WINCE600\OS_try,并且工程已经Build成功,假定WindowsCE.NET的应用程序为MyApp.exe;
2)将应用程序MyApp.exe复制到OS_try工程目录D:\WINCE600\OS_try\RelDir\xxx_Release下
3)修改OS_try工程的project.bib或者platform.bib文件,在FILESSection添加如下内容:
MyApp.exe$(_FLATRELEASEDIR)\MyApp.exeNKH
这里$(_FLATRELEASEDIR)相当于D:\WINCE600\OS_try\RelDir\xxx_Release目录.文件属性如下:
S:系统
H:隐藏
R:压缩的资源文件
C:压缩文件
U:非压缩文件
4)创建快捷方式文件MyApp.lnk,(先建文本文件,写入内容后再改扩展名为.lnk)文件内容如下:
18#\Windows\MyApp.exe
WINCE的快捷方式和WIN2K,XP的不同,只是一个后缀名为.LNK的文本文件.
其格式如下:数字#路径
比如,有个快捷方式写法如下:23#\Windows\ToolViewer.exe
指的是指向WINDOWS文件夹下的Toolviewer.exe可执行文件.数字究竟代表的是什么意思,我也不太清楚;有一说法是#后的ACSII字符的数量,但如果把上述例子改为1#\Windows\ToolViewer.exe也可正常运行,但去掉数字则系统无法识别.虽然可以正常使用,但建议还是按照文档#之后的ACSII字符数量填写.
将MyApp.lnk文件也放入到OS_try工程目录d:\WINCE600\OS_try\RelDir\xxx_Release下
5)修改OS_try工程的project.bib或者platform.bib文件,在FILESSection添加如下内容:
MyApp.lnk$(_FLATRELEASEDIR)\MyApp.lnkNKH
6)修改Os_try工程的project.dat文件,添加如下内容:
Directory("\Windows\StartUp":)-File("MyApp.lnk","\Windows\MyApp.lnk")
实际上第3步已经将MyApp.exe添加到了\windows目录下,所以这里只加快捷方式,如果是再拷执行文件到ram目录的话就有些浪费了.
注意:如果是已经成功编译完nk的,直接改d:\WINCE500\OS_try\RelDir\xxx_Release目录下的platform.bib,project.dat等文件,选PlatformBuilderIDE:【Build】->【MakeRunTimeImage】(记得千万不要Build或者Rebuild,否则前功尽弃,需从头再来)
注:如果改的OS_try下的属性就只能全部Build了。

方法二:主要思想:将应用程序添加到映象里,然后用你的应用程序直接替换Wince的桌面程序。
步骤:
1.像方法一一样把你的应用程序添加到映象里。
2.修改shell.reg(可以再XXX_Release文件夹下找):
[HKEY_LOCAL_MACHINE\init]"Launch50"="explorer.exe""Depend50"=hex:14,00,1e,00
把explorer.exe改成相应的应用程序(如:MyApp.exe)
3.【MakeRunTimeImage】一下(记得千万不要Build或者Rebuild),把生成的NK.bin烧到设备中,这样就可以看到应用程序MyApp.exe自启动了。这样的好处是启动时wince桌面程序不会启动了,坏处就是当把应用程序关闭时由于原先wince桌面程序的丢失而会造成死机。

方法三:将应用程序添加到映象中,然后修改注册表,让应用程序自启动,但不替换wince的桌面程序,而是让wince像加载桌面一样加载应用程序。
步骤同方法二,只是在第二步中稍有不同:在shell.reg文件[HKEY_LOCAL_MACHINE\init]之下添加如下语句:
"Launch80"="MyApp.exe""Depend50"=hex:1e,00
注:"Depend50"=hex:1e,00用来设置启动顺序和依赖程序的。若应用程序不依赖与其它程序,这句可以不加。
(原文链接)
http://blog.csdn.net/yizhou2010/article/details/6738285

-------------------------------------------------------------------------------
个人实验经历
方法一
1.我一开始是将应用程序App.exe放到C:\WINCE700\PLATFORM\SBC8600\FILES目录下
(SBC8600就是我的开发平台)
后面也可以放在C:\WINCE700\OSDesigns\SBC8600\SBC8600O\RelDir\xxx_Release,但如果放在这里的话不能build只能是makerun-timeimage,注意中文版VS下是“生成”->“makerun-timeimage”
2.建立App.lnk然后将此文件复制到C:\WINCE700\PLATFORM\SBC8600\FILES目录下
后面也可以放在...\xxx_Release,
注意:App.lnk的内容,有封号!
16#"\windows\App.exe"
3.将App.exe和App.lnk包含到内核中
在C:\WINCE700\PLATFORM\SBC8600\FILES\platform.bib文件的FILESSection添加:
App.exe$(_FLATRELEASEDIR)\App.exeNKU
App.lnk$(_FLATRELEASEDIR)\App.lnkNKH
这一步做完,生成的NK.bin,启动之后可以在开发板上的windows文件夹中找到App.exe了
也就完成了我的提问,下载应用程序掉电保护
4.
在C:\WINCE700\PLATFORM\SBC8600\FILES\platform.dat中添加:
Directory("\Windows\startup"):-File("App.lnk","\Windows\App.lnk")

注意这一步的意思是使App.lnk拷贝到\Windows\startup中:然后开机调用快捷方式
好了到这里,接下去就是sysgen,漫长的等待,大概20min
然后将...\xxx_Release下的NK.bin下到开发板中

我的问题也就出现了,开机显示了一下下桌面,就自运行App.exe,但是USB鼠标没有反应了,感觉是开机USB驱动还没调用或是Power管理的问题,因为USB鼠标供电都没供上。
无奈之下尝试后面几个方法
方法三:
在...\xxx_Release下找到shell.reg,打开添加
"Launch80"="App.exe"
"Depend80"=hex:14,00,1e,00
上面有一个Launch50,直接Copy修改过来就行
因为前面已经Sysgen,在...\xxx_Release已经有修改过的platform.bib和platform.dat,还有app.lnk、app.exe,所以直接“生成”->“makerun-timeimage”,1min就可以了
然后将...\xxx_Release下的NK.bin下到开发板中
上电重启,自运行App.exe,等了1s不到,USB鼠标供电成功


回复

使用道具 举报

千问 | 2021-1-27 05:27:06 | 显示全部楼层
工程属性deployment中的远征路径

回复

使用道具 举报

千问 | 2021-1-27 05:27:06 | 显示全部楼层
还有exe路径也要一起改了。
回复

使用道具 举报

千问 | 2021-1-27 05:27:06 | 显示全部楼层
楼主能不能说下helloworld,您是怎么编译成功的?我不会啊、
请你回答下我的求助帖http://bbs.csdn.net/topics/390965810
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行