求助关于stm32封装等问题的IAP超级终端的升级问题

求助stm32的IAP超级终端的升级问题! - STM32/STM8技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
求助stm32的IAP超级终端的升级问题!
21:20:01  
最近在弄stm32的IAP升级,是用YMODEM传输的,现在是卡在这个最后一步了,就是用超级终端发送APP程序,stm32的IAP传过来的提示信息编程了乱码!这怎么搞啊
附件: 您需要
才可以下载或查看,没有帐号?
工程师职场
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司用stm32f103RE单片机做IAP串口远程升级,APP大于ram,这个怎么办?没有接外部flash。_百度知道
用stm32f103RE单片机做IAP串口远程升级,APP大于ram,这个怎么办?没有接外部flash。
如果把串口数据直接放到内部flash里必须用协议分包往里写么?可不可以指定一个内部flash地址的数组,然后把接收的串口数据放到数组里,然后再更新,这个是否可行,具体该怎么操作?
我有更好的答案
IAP升级要程序要十分严谨的,你把升级文件做个校验CRC或者别的校验,把串口接收到的数据直接写入到单片机内部FLASH,把APP所有数据写入完成,在从你写入的地址到结束的地址,把里面数据进行校验,如果正确直接跳转IAP.
那往单片机内部flash里放数据的方法是直接用flash读写的方式呢?还有就是能不能实现在内部flash指定的一个地址开辟一个数据,把串口接收的数据放到这个指定的数组里,如果这样可以的话需要怎么写这个程序?u8
USART_RX_BUF[USART_REC_LEN] __attribute__ ((at(0x)));这个我试验数据放不进去。
在单片机知道区域写入串口数据当然是可以的,你这样写是不对的,你还是看看STM32内部FLASH寄存器,看看是怎么写入数据的,需要解锁FLASH擦除FLASH写入FLASH写入完成锁定FLASH的,写FLASH没有那么简单的,你还是看看手册和官方DEMO.
采纳率:85%
来自团队:
为您推荐:
其他类似问题
勃兰兑斯的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。【深度讨论】STM32 IAP GPRS远程升级方案讨论 - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 16503|回复: 11
【深度讨论】STM32 IAP GPRS远程升级方案讨论
在线时间24 小时
该用户从未签到主题帖子精华
中级会员, 积分 424, 距离下一级还需 76 积分
STM32 IAP GPRS远程升级方案讨论
flash分区:
建议分三个区,BOOTLOADER,运行区,备份程序区.
考虑到空中升级的丢包几乎不可避免,升级进度由终端控制:终端发送需要的包序号,服务器返回.
1.第一包为导引包,包括总包数,每包大小,总程序CRC.
2.每一包都带有CRC校验.
3传输的每一包终端都放在备份区.
4.全部传输完毕后终端进行总程序CRC校验,再与导引包中的CRC对比.对比成功则软复位,在BOOTLOADER中进行升级.失败则重传或者停止传输.
不知道还有更好的完善的地方???求帮助??大家做过的来讨论讨论?//
在线时间15 小时
该用户从未签到主题帖子精华
中级会员, 积分 247, 距离下一级还需 253 积分
RE: STM32 IAP GPRS远程升级方案讨论
为啥不用ISP方式实现远程升级呢?GPRS方式是很好用,但是每个终端地硬件成本要增加多少啊?GSM+SIM+FLASH+N多元件。。。还面临信号不稳定传输中断等等问题。
对于一个简单的应用主机来说,成本是很敏感的,增加一个GSM和一张SIM卡,一个电路板,N多元件,外置FLASH存储等等,估计已经超过主机本身得硬件成本了,当然高端应用比如远程抄表等等还是可以忽略不计的。
现在应用于STM32芯片的远程升级\远程ISP客户端已经很成熟了,直接通过网络来传输你的HEX文件内容,还可以绑定硬件序列号。
当然ISP方式需要人工操作,比GPRS差一点智能性了。
在线时间1 小时
该用户从未签到主题帖子精华
初级会员, 积分 171, 距离下一级还需 29 积分
RE: STM32 IAP GPRS远程升级方案讨论
楼主的方法从原理上应该算是很好了,但是需要注意的是
1、bootloader在编程时要保证程序的完整性,比如中途停电等造成从备份区copy至运行区失败的重试等。
2、远程下载备份完成后要记录备份可用标志,在bootloader复制并校验通过后将备份可用标志更改为已经升级成功(防止重复拷贝)。
3、增加断点续传功能,避免同样数据的多次下载,减少流量。
4、考虑使用FTP下载。
5、应该将引导区以及每一包的报文都保存下,在bootloader升级前检查每一个包CRC通过,原始文件的CRC也通过(防止分段升级时部分包被篡改),才能启动编程。
在线时间22 小时
该用户从未签到主题帖子精华
中级会员, 积分 415, 距离下一级还需 85 积分
RE: 【深度讨论】STM32 IAP GPRS远程升级方案讨论
看看& && && && && && &
在线时间0 小时
该用户从未签到主题帖子精华
新手上路, 积分 40, 距离下一级还需 10 积分
RE: 【深度讨论】STM32 IAP GPRS远程升级方案讨论
很好的文章,看看
在线时间1 小时
该用户从未签到主题帖子精华
新手上路, 积分 10, 距离下一级还需 40 积分
回复: 【深度讨论】STM32 IAP GPRS远程升级方案讨论
正在尝试此方案的相关操作,有经验的大侠可以提供点建议!
在线时间0 小时
该用户从未签到主题帖子精华
新手上路, 积分 0, 距离下一级还需 50 积分
回复: 【深度讨论】STM32 IAP GPRS远程升级方案讨论
这个问题我们现在也在做,实现方式和楼主类似,GPRS传输,里面有包号+CRC,较验通过后,放在备份区。有丢失 的,重新请求传输包。
现在在协议判断上有些问题,不知道大家怎么处理的。我们的数据包自己定义了个协议,开头:0XAA,0X55,中间有长度,表示后面的字节数,结尾有OXFF,OXFE。现在的办法是通过查找开头OXAA,OX55,找到后寻找长度,再找结尾。现在的问题是:
1.数据包中有OXAA,OX55,OXFF,OXFE等。有可能会造成误判断,怎么解决?用转义符是否可以,比如增加个1B。不知道有没有做过的,详细讲一下。
2.GPRS本身指令是是以OXOD,OXOA来结束的,例如:信号强度,网络报错等。没有开头,都是以这个结束。程序中只能通过0XOD,OXOA来查找。这个数据在升级包中有也这情况,怎么处理呢?
在线时间2 小时
该用户从未签到主题帖子精华
新手上路, 积分 37, 距离下一级还需 13 积分
MARK一个,GPRS可以用透传,自己做协议来判断。
在线时间6 小时
该用户从未签到主题帖子精华
新手上路, 积分 37, 距离下一级还需 13 积分
谢谢分享;谢谢
在线时间283 小时
ST金币2393
该用户从未签到主题帖子精华
金牌会员, 积分 4456, 距离下一级还需 544 积分
我的是通过有线网络升级的,思路和你的完全一致,目前项目再用,虽然不是十分完美,但是应用完全没问题
STM32粉丝勋章Ⅲ
狂欢节专属(分享宝宝)
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered bySTM32使用bootloader完成IAP升级,堆栈的问题 - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 4816|回复: 3
STM32使用bootloader完成IAP升级,堆栈的问题
在线时间0 小时
该用户从未签到主题帖子精华
新手上路, 积分 3, 距离下一级还需 47 积分
在项目中使用了IAP来完成程序的升级,升级的部分由bootloader完成,基本过程如下:
(1)bootloader放在flash的0地址处,而应用程序放在bootloader后面的一段flash中
(2)每次上电后都先运行bootloader,它会检测是否需要升级,并处理升级过程
(3)bootloader中有main函数,应用程序也有main函数,bootloader的main执行的最后一步,是跳转到应用程序的main入口
现在有个疑问,想咨询一下:
我使用的IAR,需要配置bootloader堆栈大小和应用程序的堆栈大小,假设说设置了bootloader的栈大小为A,应用程序栈大小为B,
(1)这两个栈用的是同一片内存吗,还是说两个栈的是相互独立的?
(2)bootloader跳转到应用程序的main之后,bootloader的堆栈还有作用吗,会不会被释放掉?
在线时间758 小时
ST金币2127
该用户从未签到主题帖子精华
RE:STM32使用bootloader完成IAP升级,堆栈的问题
堆栈会被释放,他相当于重新启动了一次用户程序。
在线时间70 小时
该用户从未签到主题帖子精华
高级会员, 积分 923, 距离下一级还需 77 积分
RE:STM32使用bootloader完成IAP升级,堆栈的问题
当执行到应用程序后会释放掉之前配置的栈区。
在线时间70 小时
该用户从未签到主题帖子精华
高级会员, 积分 923, 距离下一级还需 77 积分
RE:STM32使用bootloader完成IAP升级,堆栈的问题
http://blog.csdn.net/yx_l128125/article/details/
还可以参考一下这篇文章
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered by

我要回帖

更多关于 关于stm32封装等问题 的文章

 

随机推荐