10202|13

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

继续讨论STM32的IAP [复制链接]

我们目前一个产品用STM32做的,用IAP实现免开机壳升级。
目前的做法是在Flash专门开了一个Loader区域,而不是放在RAM中。
现在问题来了,FLASH不够用了,想把Loader挪到RAM中去运行。

但是我们的主程序用到了较大的buffer使用,IAP的Loader必然要覆盖部分buffer,
不知哪位有比较好的处理方法,来保证ram的使用不会冲突?
此帖出自stm32/stm8论坛

最新回复

                                 LM的loader包括串口、以太网、SPI才不到4K;ATMEL的SAMBA包括USB,串口也可以做到很小……不过ST的USB的确没玩过。  详情 回复 发表于 2009-8-27 17:35
点赞 关注
 

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这个、、、、纯粹技巧问题。
各人有各人的方法,呵呵。
ST有一篇文章的。
或者用大RAM的芯片,一力降十会。
此帖出自stm32/stm8论坛
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
几个问题:
1)你说的这个Loader是否就是前面说的IAP?还是通过IAP先下载一个Loader,再用Loader下载真正的应用程序?

2)用到较大RAM的主程序,与IAP什么关系?它就是IAP还是下载的应用程序?如果它与IAP程序相互独立,他们是不会在同一个时间运行的,应该所有RAM区可以互相覆盖的。
此帖出自stm32/stm8论坛
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
这方面我挂了一个发明专利,呵呵。
我的手持机一直在用这方面的“思路”或“技巧”。
说不定什么时候可以靠这个“地雷”“敲”一笔,哈哈。
此帖出自stm32/stm8论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 
方法3. 如果系统带FLASH,直接先把数据写入FLASH,设置标志,复位,IAP程序启动检查标志然后更新程序成功后清楚标志,该方法可以使你的IAP很精简
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

6
 


其实不开机壳用ST自带的ISP也可以实现啊,自己留个接口就是
此帖出自stm32/stm8论坛
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

7
 
以前一直没时间优化这块,现在由于功能多了几倍,居然导致FLASH区块开始紧张了。
目前已经修改了一个RAM跑LDR的版本,但主程序故意让出了这块RAM。
此帖出自stm32/stm8论坛
 
 
 

回复

97

帖子

0

TA的资源

一粒金砂(中级)

8
 
程序分AP和LDR两部分,但FLASH中只有AP。
需要升级的时候,AP负责把LDR送到RAM,然后跳到LDR,然后LDR负责把新的AP送到FLASH,然后再跳到新AP上,升级结束。
是不是有点像“鸡生蛋,蛋生鸡”类似的,哈哈。
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
                                 MP is playing fire,hehe.
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

10
 
现在是想paly fire一下,可没时间啊
几个客户都天天电话催进度,月初上海那边还专门派了一个人到我这里上班盯进度啊
忙得要发疯了,上论坛算是忙里偷闲啦,技术性太强的帖子实在是没精力参与,只好掺和些技术不太深入的话题
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

11
 
                                 还是关闭此贴吧,看来希望透过二姨论坛的大脑激荡法发现更多的问题以及Solution的想法有点不切实际。
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

12
 
这种方式碰到个掉电复位什么的就麻烦了。
理想的方式还是在Flash里写保护一个独立的loader。开机时通过一系列的逻辑条件判断是否需要升级用户程序。这样不怕升级过程中掉电。用户程序也可以使用几乎全部资源——除了一小块Flash。
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

13
 
“一小块Flash”----------其实也不是那么小的,不信你build一个最小的USB的Loader试试看。
我现在产品就是用的此方法,但实验中的版本用的是RAM方法,等稳定后再port到产品中去。
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

14
 
                                 LM的loader包括串口、以太网、SPI才不到4K;ATMEL的SAMBA包括USB,串口也可以做到很小……不过ST的USB的确没玩过。
此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表