打印
[STM32F1]

IAP边接收边写FLASH的问题

[复制链接]
2104|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
max_v|  楼主 | 2014-1-3 22:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我参考正点原子的代码,实现了边接收边写FLASH的功能,方法就是在串口中断里边接收边计算接收的个数,当计到32个字节后就写进FLASH,最后接收完了再把不够32个字节的数据写进flash

现在的问题是总感觉自己的代码有很多问题,每接收32个字节就写进了flash,我试过如果多了就会漏掉一些数据,我想可能是这边还没写完,又来串口中断的原因

另一个问题是没加校验,但是也没出现啥问题

我大概看了看官方的例程,他用的是ymodem协议,我是没看懂,不过他好像是一次接收完才写flash的
沙发
泰山特曲123| | 2014-1-3 23:35 | 只看该作者
对flash进行擦除或者编程时,cpu是停止的,这时是无法响应中断的。所以你每32个字节的发送时间间隔应该大于40ms

使用特权

评论回复
板凳
max_v|  楼主 | 2014-1-4 12:56 | 只看该作者
泰山特曲123 发表于 2014-1-3 23:35
对flash进行擦除或者编程时,cpu是停止的,这时是无法响应中断的。所以你每32个字节的发送时间间隔应该大于 ...

请问40毫秒是怎么来的?
还有就是我用串口助手发送bin文件,点击发送就一下子都发完了啊

使用特权

评论回复
地板
lsh505| | 2014-1-4 14:33 | 只看该作者
加个协议.
上位机发送数据,等待下全机回复.再写下一包.

使用特权

评论回复
5
max_v|  楼主 | 2014-1-4 14:38 | 只看该作者
lsh505 发表于 2014-1-4 14:33
加个协议.
上位机发送数据,等待下全机回复.再写下一包.

那这样的话是不是得自己写上位机啊,就不能用网上下载的哪种串口助手了?

使用特权

评论回复
6
5186| | 2014-1-4 18:11 | 只看该作者
max_v 发表于 2014-1-4 12:56
请问40毫秒是怎么来的?
还有就是我用串口助手发送bin文件,点击发送就一下子都发完了啊 ...

有些串口助手可以设置延时的,你找找

使用特权

评论回复
7
coody| | 2014-1-4 20:04 | 只看该作者
我也是用Y-MODEM来做的,数据包是128字节或1024字节。

使用特权

评论回复
8
max_v|  楼主 | 2014-1-4 20:42 | 只看该作者
coody 发表于 2014-1-4 20:04
我也是用Y-MODEM来做的,数据包是128字节或1024字节。

你是参考的官方例程么,他的好像是一次接收完了,再写啊,这样的话app很大就不好办了

使用特权

评论回复
9
max_v|  楼主 | 2014-1-4 22:27 | 只看该作者
max_v 发表于 2014-1-4 12:56
请问40毫秒是怎么来的?
还有就是我用串口助手发送bin文件,点击发送就一下子都发完了啊 ...

能推荐个串口助手么?我每找到那种能设置多少字节然后延时再发送的

使用特权

评论回复
10
max_v|  楼主 | 2014-1-4 22:27 | 只看该作者
5186 发表于 2014-1-4 18:11
有些串口助手可以设置延时的,你找找

能推荐个串口助手么?我每找到那种能设置多少字节然后延时再发送的

使用特权

评论回复
11
5186| | 2014-1-5 11:54 | 只看该作者
max_v 发表于 2014-1-4 22:27
能推荐个串口助手么?我每找到那种能设置多少字节然后延时再发送的

实在没有合适的,就找个开源的修改下,串口操作在VC中有专门的类可以用的,简单的很

使用特权

评论回复
12
max_v|  楼主 | 2014-1-5 19:01 | 只看该作者
5186 发表于 2014-1-5 11:54
实在没有合适的,就找个开源的修改下,串口操作在VC中有专门的类可以用的,简单的很 ...

好吧 我不会VC,只会点qt,估计也不难

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

170

帖子

0

粉丝