是否可以通过串口升级应用程序

mosquite 2012-04-26 04:34:21
大家好,我们的产品是WINCE6.0的工控产品,系统启动直接跑应用程序,现在的升级是通过SD卡,但需要拆外壳才能升级程序,比较麻烦,售后人员提出让我改为用笔记本通过串口升级应用程序。应用程序大小为2M左右,请问该怎么实现呢?
...全文
466 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
mosquite 2012-05-11
  • 打赏
  • 举报
回复
完成了,谢谢大家
natuly163 2012-05-10
  • 打赏
  • 举报
回复
禽兽们,放开那个女孩。
harktrip 2012-05-10
  • 打赏
  • 举报
回复
文子
之前我是寫另外一個小ap,
讓主ap去跳到這小ap,
那這小ap如何透過sd或串口複製更新主ap
然後小ap再跳去執行主ap就好了


91program 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

接收的时候是全部收完了,再写入文件吗
[/Quote]

我们的做法是先写入备份区,确认备份区更新完成后,从备份区开始升级
xky96 2012-05-07
  • 打赏
  • 举报
回复
既然是美女......大家让开,我免费提供信息:

现成的工具MortScript,支持各种接口升级应用程序,包括串口。
去网上下吧。
yhp1888 2012-05-07
  • 打赏
  • 举报
回复
我做的产品带示教盒。
方案三:用串口升级。
1、波特率要大,如果是9600,我做的实验是,2M升级时间要4个小时!
2、通过串口接收数据保存为文件xxx.exe2。因为你的可执行文件(xxx.exe)正在运行。
3、在机器自动开机时,有一个autoexec.bat文件,自动把xxx.exe2改为实际运行的xxx.exe。

我做的几种升级方案都可用,效果也很好,唯独串口升级方案速度慢。因为我的串口平时要作为示教盒接口使用,与我搭档的电子工程师设计的示教盒很烂,它只能用9600波特率。
yhp1888 2012-05-07
  • 打赏
  • 举报
回复
想知道LZ是什么产品,因为我在半年前做的也是类似的工控产品。不过我已给接手我的人多个升级方案了。


方案一:通过Wince自带的联网调试功能升级(通过网线),此方案较方便,速度快。不过笔记本电脑中要安装Wince编程软件。

方案二:用WinSock自己编写网络升级功能(通过网线),此方案最方便,速度快。

方案三:用串口升级,很方便,但速度慢,软件编程要多多考虑“校验”,因为只要有一个字节错误,升级后的文件就报废。

方案四:通过SD卡,就是LZ现在用的方案。

以上四种方案都可。

pineking414 2012-05-06
  • 打赏
  • 举报
回复
有一款升级工具dragon实现串口重新烧写镜像。刚开始启动的时候利用串口通信,启动完成以后,可以在bsp包中设置为activesync通讯或者大容量存储器,我只是觉得串口通信建立是在应用程序启动的时刻,如果启动以后,串口还是在activesync的基础上实现的。
WvW 2012-05-05
  • 打赏
  • 举报
回复
这个。。。 和网络一样的,只不过介质变成串口了。

1.将一个专用升级程序,监听串口。

2.收发数据,收到,写入文件。

3.记得加checksum,免得你收到的文件是错的。

开发板的下载器, 好多都是串口的。
Saleayas 2012-05-05
  • 打赏
  • 举报
回复
写一个软件更新包,在这个包里,把需要更新的文件通过串口传下去,
更新包读取需要下传的数据(二进制流模式),直接写入串口。

在设备里程序提供一个更新功能,打开这个功能后,就等待软件更新包的更新程序。
收到串口的数据后,直接以二进制流模式写入文件。
传输完成后,就像在原来一样更新程序。
mosquite 2012-05-05
  • 打赏
  • 举报
回复
怎么通过串口进行任意类型的文件传输呢
shizaishiwuyuqs 2012-05-05
  • 打赏
  • 举报
回复
完全是门外汉,不懂
mosquite 2012-05-05
  • 打赏
  • 举报
回复
接收的时候是全部收完了,再写入文件吗
mosquite 2012-04-28
  • 打赏
  • 举报
回复
不是本人,我是女的,不过不是美女。
91program 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

楼主的相片是本人吗?呵呵,真漂亮。当然可以通过串口升级了。可以在升级程序里打开串口,检测串口有没有升级指令,若有则升级,若没有就运行老程序,然后关闭串口。就OK了。
[/Quote]

LZ is MM? hehe...
mosquite 2012-04-27
  • 打赏
  • 举报
回复
这个程序不知道怎么写
zhengmeifu 2012-04-26
  • 打赏
  • 举报
回复
楼主的相片是本人吗?呵呵,真漂亮。当然可以通过串口升级了。可以在升级程序里打开串口,检测串口有没有升级指令,若有则升级,若没有就运行老程序,然后关闭串口。就OK了。
esprite2000 2012-04-26
  • 打赏
  • 举报
回复
wince本质上跟windows是一样的,可以学习一下windows下常见软件的升级方式。
一般来说,就是有一个独立的升级程序,在需要升级的时候,主应用软件启动升级程序,升级程序通过各种媒介(网络或磁盘)获取到新版的应用程序,然后将新版应用程序覆盖原先的应用程序。
mosquite 2012-04-26
  • 打赏
  • 举报
回复
不知道怎么写
esprite2000 2012-04-26
  • 打赏
  • 举报
回复
这个应该不复杂吧,2M的应用程序使用115200bps波特率的话传输还是不慢的。
可以写一个专用的升级程序,通过串口接收主应用程序数据,然后直接更新即可

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧