搜索
bottom↓
回复: 109

stm32 iap 远程升级方案讨论

[复制链接]

出0入0汤圆

发表于 2010-1-8 17:59:18 | 显示全部楼层 |阅读模式
我想通过GPRS实现STM32的远程升级,想法是把512kflash分成两个应用程序区,平常工作在A区,如果收到升级数据就先写入B区,全部写完后如果校验通过就在某个位置上置标志位然后重启系统。系统在引导区的时候根据标志位来运行A区或B区。有谁能提供个思路呢???

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2010-1-8 18:10:50 | 显示全部楼层
还要什么思路?你已经说出了正确的思路。

出0入0汤圆

发表于 2010-1-9 10:19:07 | 显示全部楼层
lz应该是需要例程?

出0入0汤圆

发表于 2010-1-9 12:00:56 | 显示全部楼层
这个思路不错我也想学 嘎嘎

出0入0汤圆

发表于 2010-1-9 12:45:48 | 显示全部楼层
好主意,不过有点浪费Flash哈。

还有一个办法就是先进引导区,然后一边收一边写,不过这样所带来的问题就是风险加大,一旦写的过程中意外中断就惨了。

出0入0汤圆

 楼主| 发表于 2010-1-11 10:34:18 | 显示全部楼层
没错回复【1楼】__STM32__
还要什么思路?你已经说出了正确的思路。

-----------------------------------------------------------------------

呵呵,想要各位大侠提供点实质的东西,不一定要例程,说明文档也行。主要是想先确认一下这样的作法是否可行。当然如果有现成的例程更好了,别说我贪心哈。。。。

出0入0汤圆

 楼主| 发表于 2010-1-11 10:36:27 | 显示全部楼层
刚开始动手做,还没什么头绪。回复【4楼】javenreal
好主意,不过有点浪费Flash哈。
还有一个办法就是先进引导区,然后一边收一边写,不过这样所带来的问题就是风险加大,一旦写的过程中意外中断就惨了。
-----------------------------------------------------------------------

不浪费就得再外加一块FLASH或别的存储芯片了

出0入0汤圆

发表于 2010-1-11 11:56:09 | 显示全部楼层
我也准备这样做的,还没有开始,现在是IAP后应用程序进不了中断

出0入0汤圆

发表于 2010-1-11 12:12:46 | 显示全部楼层
关注中

lz的思路时将内置flash分成3个区吧
引导区  应用区A  应用区B
其实这里的B区完全作为一个外置数据存储器来用了

如果是这样何不在引导区加入“升级”程序 直接覆盖A区
如果像4楼所说真的意外中断了
也只是没有完成升级 引导程序没遭到破坏
只需要重新升级即可
不知这样是否可行

出0入0汤圆

发表于 2010-1-11 12:22:48 | 显示全部楼层
LM3S可以用两个区,引导+应用,充分利用FLASH空间,估计STM32也可以,没试验

出0入0汤圆

发表于 2010-1-11 12:24:41 | 显示全部楼层
mark

我想用zigbee升级

出0入0汤圆

 楼主| 发表于 2010-1-11 14:43:18 | 显示全部楼层
回复【8楼】Alvin007
关注中
lz的思路时将内置flash分成3个区吧
引导区  应用区A  应用区B
其实这里的B区完全作为一个外置数据存储器来用了
如果是这样何不在引导区加入“升级”程序 直接覆盖A区  
如果像4楼所说真的意外中断了
也只是没有完成升级 引导程序没遭到破坏
只需要重新升级即可
不知这样是否可行
--------------------------------------------------------------------
你的这种思路有一个问题是,如果程序已经在运行了呢?在要升级的时候如何转到引导区呢?如何判断是在升级程序还是转到正常运行状态呢

出0入0汤圆

 楼主| 发表于 2010-1-11 14:44:37 | 显示全部楼层
回复【7楼】wwkaixin950
我也准备这样做的,还没有开始,现在是IAP后应用程序进不了中断
-----------------------------------------------------------------------

可否留下QQ联系,指导一下我呢,呵呵。

出0入0汤圆

发表于 2010-1-11 17:35:06 | 显示全部楼层
首先两个区是肯定的
我是这样做的,一个引导区,一个应用程序区,外扩一片flash(本来就需要外扩,只是在里面存放几个变量)
每次启动就去读flash特定的那几个变量(怕误操作,我定义了5个变量,当5个变量相加 == 5 的话就是需要更新程序)

如果需要更新的话直接跳转到App,App里接收文件保存在外部flash里(我连CRC校验一起保存),当全部接收完,校验通过后就置标志,然后Reset,boot区读标志,读程序,然后更新,最后关门放狗

另外,这种方式可以很容易做到断点续传...

不过我还做了些额外的工作,多次从boot区跳app区都没有成功运行的话,这个时候就表明应用程序区已经损坏,且没有心的数据更新可用,就进入Xmodem升级方式不停的从串口发送C,最后一根稻草,可以通过windows超级终端升级...

目前项目中使用,还可以...

出0入0汤圆

发表于 2010-1-11 17:41:08 | 显示全部楼层
首先,每次启动都先进boot区.
其次,只有当数据接收完成后才置标志,复位自己.
再者,如果多次app区都没有成功运行的话才认为该进入Xmodem升级(同样需要一个变量记录,每次在正常引导后也就是App区将boot区的一个多次引导的变量清0)

最后,可以在外部flash里放个最简单的bin文件,当所有的手段都失效后直接恢复这个程序到app提示用户该更新程序...

出10入95汤圆

发表于 2010-1-11 21:18:41 | 显示全部楼层
我在做这事,就在跳到应用程序的时候,系统就不正常了(出现了复位,重新开始了),不知道问题出在什么地方。

出0入0汤圆

发表于 2010-1-21 19:33:18 | 显示全部楼层
回复【11楼】lcslxh  
回复【8楼】Alvin007 
关注中 
lz的思路时将内置flash分成3个区吧 
引导区  应用区A  应用区B 
其实这里的B区完全作为一个外置数据存储器来用了 
如果是这样何不在引导区加入“升级”程序 直接覆盖A区  
如果像4楼所说真的意外中断了 
也只是没有完成升级 引导程序没遭到破坏 
只需要重新升级即可 
不知这样是否可行
--------------------------------------------------------------------
你的这种思路有一个问题是,如果程序已经在运行了呢?在要升级的时候如何转到引导区呢?如何判断是在升级程序还是转到正常运行状态呢
-----------------------------------------------------------------------

有个比较简单的办法 启动的时候直接进入引导区 通过按键等外部接口做选择
例如某些路由器 按住一个RESET键上电即可
我猜想应该是这个思路吧

出0入0汤圆

发表于 2010-1-21 22:02:57 | 显示全部楼层
同样关注该 方案

出0入0汤圆

发表于 2010-1-21 22:04:50 | 显示全部楼层
请 香主 给正解  
替大家先谢过了

出0入0汤圆

 楼主| 发表于 2010-1-22 09:00:42 | 显示全部楼层
目前我的板子上挂了块sst25vf016b的flash,上电启动后运行在引导区,引导区通过串口接收升级数据存放在sst25vf016b,等全部接收完毕后置标志位,然后将外部flash的数据COPY进0x08002000开始的内部flash中,程序已经可以正常运行了,用户程序用到了ucos,没发现有个别用户说的带操作系统升级不成功现象

出0入0汤圆

发表于 2010-1-22 19:41:12 | 显示全部楼层
一个引导区,一个应用区,一个标志区

系统复位之后,进入引导区,引导程序判断标志区是否为0xAA,如果是,这进入应用程序,否则,进入ISP程序。

应用程序在运行时,接收到更新固件的命令之后,将标志区擦除,然后复位,复位后即可以进入ISP。

ISP程序在完成之后,将标志区写入0xAA,然后复位,复位后既可以进入应用程序。

出0入0汤圆

发表于 2010-1-22 19:42:24 | 显示全部楼层
引导区包含了ISP程序

出0入0汤圆

发表于 2010-10-9 08:14:58 | 显示全部楼层
关注

出0入0汤圆

发表于 2010-10-9 08:57:57 | 显示全部楼层
需要例程........

出0入0汤圆

发表于 2010-10-9 15:49:56 | 显示全部楼层
远程升级不在于分几个区,这个功能都可以实现, 主要是GPRS断点续传,完整率的问题!

出0入0汤圆

发表于 2010-10-9 16:12:34 | 显示全部楼层
回复【4楼】javenreal  
好主意,不过有点浪费flash哈。
还有一个办法就是先进引导区,然后一边收一边写,不过这样所带来的问题就是风险加大,一旦写的过程中意外中断就惨了。
-----------------------------------------------------------------------

有两种办法:
一是BOOT保护,写失败后下次可以再BOOT引导更新程序。BOOT是永远有效的,除非用编程器重写。

二是外加一块存储器,存入默认程序,写失败后立即加载默认程序。

出0入0汤圆

发表于 2010-10-9 16:19:51 | 显示全部楼层
STM32是可以的,用XMODEM或YMODEM来保证数据的可靠性嘛

出0入162汤圆

发表于 2010-10-9 16:35:41 | 显示全部楼层
我觉得应该另外加一块flash,反正几百k的flash也便宜

如果利用片内flash,ab区

你的程序是否分别需要编译到ab区

出0入0汤圆

发表于 2010-10-9 17:11:38 | 显示全部楼层
呵呵,这帖子还在讨论啊,很简单的啊,别想的那么复杂。

出0入0汤圆

发表于 2010-11-1 21:27:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-3 15:42:46 | 显示全部楼层
这个对大容量的可以考虑,

出0入0汤圆

发表于 2010-12-9 16:31:18 | 显示全部楼层
还是不是很明白!

出0入0汤圆

发表于 2010-12-24 11:36:41 | 显示全部楼层
回复【27楼】AWEN2000
我觉得应该另外加一块flash,反正几百k的flash也便宜
如果利用片内flash,ab区
你的程序是否分别需要编译到ab区
-----------------------------------------------------------------------

给个例程啊

出0入0汤圆

发表于 2011-1-3 02:12:05 | 显示全部楼层
认可13楼的方法。

出0入0汤圆

发表于 2011-1-4 10:48:18 | 显示全部楼层
向一棵白菜10块钱学习。

出0入0汤圆

发表于 2011-1-5 21:41:03 | 显示全部楼层
关注,学习。

出0入0汤圆

发表于 2011-1-11 11:29:40 | 显示全部楼层
回复【13楼】tuy0326
首先两个区是肯定的
我是这样做的,一个引导区,一个应用程序区,外扩一片flash(本来就需要外扩,只是在里面存放几个变量)
每次启动就去读flash特定的那几个变量(怕误操作,我定义了5个变量,当5个变量相加 == 5 的话就是需要更新程序)
如果需要更新的话直接跳转到app,app里接收文件保存在外部flash里(我连crc校验一起保存),当全部接收完,校验通过后就置标志,然后reset,boot区读标志,读程序,然后更新,最后关门放狗
另外,这种方式可以很容易做到断点续传...
不过我还做了些额外的工作,多次从boot区跳app区都没有成功运行的话,这个时候就表明应用程序区已经损坏,且没有心的数据更新可用,就进入xmodem升级方式不停的从串口发送c,最后一根稻草,可以通过windows超级终端升级...
目前项目中使用,还可以...
-----------------------------------------------------------------------

请教下tuy0326 ,首次烧程序只烧BOOT引导区程序,这时BOOT程序运行时是从PC端接收APP目标文件然后写入APP FLASH区吗?

出0入0汤圆

发表于 2011-1-11 13:04:22 | 显示全部楼层
恩,首次烧写程序不一定只烧引导区,其实我的做法是,程序调试通过后,用JLink的J-Flash读取整个芯片的Flash,然后用着个bin文件量产,在升级的时候才会运行BOOT写APP,不过你先写BOOT待启动后会发现没有App然后再请求APP也是可以的,只是多了一个步骤

出0入0汤圆

发表于 2011-1-11 14:47:46 | 显示全部楼层
我用GPRS把代码以bin文件格式传给stm32,stm32存到SD卡里,校验通过后,再发命令升级,原来的程序代码不删,这样SD卡里面可以存几十个代码,如果出错的话,可以还原回任何一个代码。但注意stm32的flash别写太多,会报废的

出0入0汤圆

发表于 2011-1-11 15:22:13 | 显示全部楼层
我遇到问题了,我是用CAN进行升级,可是一边写一边收,写几条报文后,我的芯片就烧了,不能用了,求解????谢谢各位指导!!!

出0入0汤圆

发表于 2011-1-11 15:25:13 | 显示全部楼层
回复【楼主位】lcslxh
-----------------------------------------------------------------------

能共同讨论不?我也在做升级,可是我板子烧完啦。痛苦呀?我扣扣:1499235006

出0入0汤圆

发表于 2011-1-11 17:42:35 | 显示全部楼层
回复【楼主位】lcslxh
-----------------------------------------------------------------------

mark

出0入8汤圆

发表于 2011-1-11 18:00:29 | 显示全部楼层
这个问题非常值得讨论 mark

出0入0汤圆

发表于 2011-1-27 09:07:44 | 显示全部楼层
回复【12楼】lcslxh
回复【7楼】wwkaixin950  
我也准备这样做的,还没有开始,现在是iap后应用程序进不了中断
-----------------------------------------------------------------------
可否留下qq联系,指导一下我呢,呵呵。
-----------------------------------------------------------------------

我想问一下,应用程序和引导程序 分别都是两个独立的工程时候如果操作的呢?!

出0入0汤圆

发表于 2011-1-27 09:34:47 | 显示全部楼层
等待答案

出0入0汤圆

发表于 2011-1-27 11:08:27 | 显示全部楼层
A区,B区地址不一样,那么你需要编译两个不同的应用才行。

出0入0汤圆

发表于 2011-1-27 11:49:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-27 12:16:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-27 12:48:49 | 显示全部楼层
如果是按照楼主的方法,需要实现位置无关的代码,因为新下载的固件并不知道是最重要存到A区还是B区执行,所以要弄成位置无关的代码,关于这个"位置无关"代码,我没有搞定,希望有大侠能指点一下。

出0入0汤圆

发表于 2011-1-27 12:55:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-27 12:55:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-27 14:46:46 | 显示全部楼层
出个主意,将Flash分为boot、A、B三个区。

方案1:
A区运行代码时,将升级数据写入B区,然后重启系统;
boot代码查看B区有无代码,
        有的话,将B区的代码重写到A区,并擦除B区的代码,然后重启系统;
        没有的话,直接运行A区的代码;
因为Flash擦除后,读出值均为0x0FF,很容易判断是否有无代码。
这样做的好处是工程设置不必改来改去,缺点是没次升级,需要擦除3次Flash。

方案2:
A区运行代码时,将升级数据写入B区,擦除自己区的某块Flash(固定偏移),然后重启系统;
B区运行代码时,将升级数据写入A区,擦除自己区的某块Flash(固定偏移),然后重启系统;

boot代码查看哪个区有有效代码,就运行那个区的代码。
这样做的好处是只擦除1次,缺点是需要更改工程设置,升级前得确认要升级到那个区。

出0入0汤圆

发表于 2011-1-27 16:33:39 | 显示全部楼层
【51楼】 yzhu
当然方案一更好一些。
其实这类IAP应用,关键的是健壮性:允许升级失败,但是要保证即使升级过程产生的任何失败了,都保证有个可以正确运行的程序可以执行。

出0入0汤圆

发表于 2011-2-21 17:53:36 | 显示全部楼层
mask

出0入0汤圆

发表于 2011-3-2 21:09:32 | 显示全部楼层
记录学习,现在很多抄表终端都要有远程升级和断点续传功能

出0入0汤圆

发表于 2011-3-4 11:35:42 | 显示全部楼层
要不要考虑升级的时候停电的处理?

出0入0汤圆

发表于 2011-4-22 16:39:31 | 显示全部楼层
楼主,你的这个想法我觉得完全可行的,但最好是结合电路来执行完成后的重启,即控制自身的复位电路

出0入0汤圆

发表于 2011-4-22 20:21:46 | 显示全部楼层
这是个很好的讨论贴

出0入0汤圆

发表于 2011-5-24 13:38:40 | 显示全部楼层
正想做这方面的东西,有人做出来了吗?例程有不?

出0入0汤圆

发表于 2011-7-6 10:23:50 | 显示全部楼层
我就是小白。最好有个例子就好了。

出0入0汤圆

发表于 2011-7-8 09:17:11 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2011-7-18 17:31:29 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-7-18 23:17:21 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-7-18 23:26:57 | 显示全部楼层
期待楼主的实现

出0入0汤圆

发表于 2011-7-18 23:44:51 | 显示全部楼层
以前弄过单片机的,差不多的,可以参考下!
点击此处下载 ourdev_659040VMTOWP.pdf(文件大小:952K) (原文件名:远程升级解决方案.pdf)

出0入0汤圆

发表于 2011-7-19 11:46:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-25 12:01:37 | 显示全部楼层
回复【楼主位】lcslxh
-----------------------------------------------------------------------

这个问题非常值得讨论 mark

出0入0汤圆

发表于 2011-7-25 12:03:02 | 显示全部楼层
回复【51楼】yzhu
-----------------------------------------------------------------------

学习了学习了

出0入0汤圆

发表于 2011-7-25 12:50:36 | 显示全部楼层
学习一下,以后可能用到

出0入0汤圆

发表于 2011-7-26 12:35:32 | 显示全部楼层
关注中!!

出0入0汤圆

发表于 2011-7-26 13:50:19 | 显示全部楼层
学习--

出0入0汤圆

发表于 2011-7-27 20:15:06 | 显示全部楼层
讨论很激烈。。关注

出0入0汤圆

发表于 2011-8-2 14:57:10 | 显示全部楼层
改好了,大家可以看看,发表下意见,看还有什么不足。



(原文件名:IAP过程状态图.png)

出0入0汤圆

发表于 2011-8-3 21:54:55 | 显示全部楼层
数据怎么校验?

出0入0汤圆

发表于 2011-8-3 22:12:20 | 显示全部楼层
你想怎么校验就怎么校验。

出0入0汤圆

发表于 2011-8-29 11:37:08 | 显示全部楼层
好样的,我也打算学学。

出0入0汤圆

发表于 2011-8-29 16:52:13 | 显示全部楼层
围观了, 这个是很实用的功能, 以前在51的时候就想做, 一直没有整,在stm32上应该相对好实现一些吧

出0入0汤圆

发表于 2011-10-6 09:58:20 | 显示全部楼层
这个要mark下

出0入0汤圆

发表于 2011-10-18 14:34:58 | 显示全部楼层
这个mark下,马上准备实现

出0入0汤圆

发表于 2011-10-18 16:12:50 | 显示全部楼层
跟上,我也下星期实现它,争取提前结束项目

出0入0汤圆

发表于 2011-10-18 16:59:14 | 显示全部楼层
我做过一个功能,FLASH分BootLoader区和APP区。
1.开机进入BootLoader区;
2.检查SD卡是否有映像文件;
3.有即写入APP区,写完后删除文件跳到5;
4.无则跳到5;
5.跳到APP区。


运行APP


可以增加其他功能,如在APP区收文件数据,然后重启,就进入BootLoader区做上述的事情了。

出0入0汤圆

发表于 2011-10-20 14:27:42 | 显示全部楼层
IAP升级成功了,但是重启之后,就是无法正常执行了,始终在不停的重启,为什么???
if (((*(vu32*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
        
       {
            // Jump to user application
            JumpAddress=*(vu32*)(ApplicationAddress+4);
            Jump_To_Application=(pFunction)JumpAddress ;
            // Initialize user application's Stack Pointer
            __set_MSP(*(vu32*)ApplicationAddress);
            Jump_To_Application();
        }
执行完这段之后,就重启了,始终在这里重启,ApplicationAddress = 0x08010000

出0入0汤圆

发表于 2011-10-21 11:37:34 | 显示全部楼层
在atmel的mage/xmage中有实现通过GPRS方式进行远程固件升级

出0入0汤圆

发表于 2011-10-29 02:12:39 | 显示全部楼层
回复【51楼】yzhu
出个主意,将flash分为boot、a、b三个区。
方案1:
a区运行代码时,将升级数据写入b区,然后重启系统;
boot代码查看b区有无代码,
        有的话,将b区的代码重写到a区,并擦除b区的代码,然后重启系统;
        没有的话,直接运行a区的代码;
因为flash擦除后,读出值均为0x0ff,很容易判断是否有无代码。
这样做的好处是工程设置不必改来改去,缺点是没次升级,需要擦除3次flash。
方案2:
a区运行代码时,将升级数据写入b区,擦除自己区的某块flash(固定偏移),然后重启系统;
b区运行代码时,将升级数据写入a区,擦除自己区的某块flash(固定偏移),然后重启系统;
boot代码查看哪个区有有效代码,就运行那个区的代码。
这样做的好处是只擦除1次,缺点是需要更改工程设置,升级前得确认要升级到那个区。

-----------------------------------------------------------------------

两个方案都很妙!

出0入0汤圆

发表于 2011-10-29 03:03:37 | 显示全部楼层
回复【64楼】gdlun
以前弄过单片机的,差不多的,可以参考下!
点击此处下载  (原文件名:远程升级解决方案.pdf)  

-----------------------------------------------------------------------

所谓应用程序运行时就可以实现升级,并不是把升级流程嵌入应用程序,而是打入一个升级标记,然后放狗咬人。boot区的IAP检查升级标记,转入升级流程。

出0入0汤圆

发表于 2011-10-29 03:11:12 | 显示全部楼层
回复【51楼】yzhu  
出个主意,将flash分为boot、a、b三个区。  
方案1:  
a区运行代码时,将升级数据写入b区,然后重启系统;  
boot代码查看b区有无代码,  
        有的话,将b区的代码重写到a区,并擦除b区的代码,然后重启系统;  
        没有的话,直接运行a区的代码;  
因为flash擦除后,读出值均为0x0ff,很容易判断是否有无代码。  
这样做的好处是工程设置不必改来改去,缺点是没次升级,需要擦除3次flash。

-------------------------------------------------------------------------
如果将b区的代码重写到a区过程中掉电,则上电应确保重新回写,而不是执行a区的残缺代码。

出0入0汤圆

发表于 2011-10-29 03:30:22 | 显示全部楼层
回复【11楼】lcslxh
回复【8楼】alvin007  
关注中  
lz的思路时将内置flash分成3个区吧  
引导区  应用区a  应用区b  
其实这里的b区完全作为一个外置数据存储器来用了  
如果是这样何不在引导区加入“升级”程序 直接覆盖a区   
如果像4楼所说真的意外中断了  
也只是没有完成升级 引导程序没遭到破坏  
只需要重新升级即可  
不知这样是否可行
--------------------------------------------------------------------
你的这种思路有一个问题是,如果程序已经在运行了呢?在要升级的时候如何转到引导区呢?如何判断是在升级程序还是转到正常运行状态呢
-----------------------------------------------------------------------

将内置flash分成3个区的好处是升级失败后可以有放弃升级的选择,重新运行原来的代码。

如果内置flash只分成2个区,没有b区,每次升级程序直接覆盖a区。则升级失败后没有选择,只能反复努力,直到升级成功。

程序已经在运行不是问题,要升级的时候放狗咬人即可,复位后转到引导区。

出0入0汤圆

发表于 2011-10-29 04:13:21 | 显示全部楼层
改发一个新贴。http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5156132&bbs_id=9999

出0入0汤圆

发表于 2011-10-29 06:55:09 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-10-29 08:16:46 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-10-29 11:31:27 | 显示全部楼层
关注中,很实用的技术

出0入0汤圆

发表于 2011-11-6 18:04:08 | 显示全部楼层
强帖!

出0入0汤圆

发表于 2012-4-23 21:41:56 | 显示全部楼层
你们用GPRS远程升级,上位机都自己写的吗?我现在缺这个上位机,谁有能不能传我个,我可以根据这个上位机的协议传送文件的。谢谢

出0入0汤圆

发表于 2013-7-5 13:25:55 | 显示全部楼层
mark 远程升级功能,正需要使用,学习中

出0入0汤圆

发表于 2013-7-19 14:14:40 | 显示全部楼层
标志区也得独立?,那用简单点就用按键扫描吧。

出0入0汤圆

发表于 2013-7-30 14:33:27 | 显示全部楼层
搞搞!!

出0入0汤圆

发表于 2013-8-9 16:44:06 | 显示全部楼层
tothen5 发表于 2010-10-9 15:49
远程升级不在于分几个区,这个功能都可以实现, 主要是GPRS断点续传,完整率的问题! ...

没错,这个是正解。

出0入0汤圆

发表于 2013-9-23 10:55:10 | 显示全部楼层
楼主现在  做的怎么样了   有没有例程学一学啊???

出0入0汤圆

发表于 2013-9-23 10:58:22 | 显示全部楼层
我现在  在外面  外挂了一片24c512
想先写到这里面来 但是怎么引导进单片机呢??

出0入0汤圆

发表于 2014-5-13 16:51:38 | 显示全部楼层
MARK  顶起
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 15:43

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表