OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6206|回复: 10

写了个STM32bootloader,但是目前遇到问题了,求思路

[复制链接]

9

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-3-11
在线时间
0 小时
发表于 2014-3-21 11:42:33 | 显示全部楼层 |阅读模式
看了看战舰的IAP实验,发现那个bootloader只支持55Kb一下的固件,所以不太满意,自己写了个,用512的Flash,打算在接收固件的同时写入Flash,以2Kb为单位进行一次写入,正好一次写一页,但是现在有个问题就是接收到最后的不足2Kb的自己不知道咋弄了。。。。。
加上了定时10S检测有无固件更新,还可以在写入固件之前更改固件要写入的新地址,如果没有就直接跳到APP程序,如果有就执行固件更新,完毕后再跳到新的APP,求大神给点思路。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-3-21 12:19:42 | 显示全部楼层
回复【楼主位】数字鹰:
---------------------------------
1、不足2K的不是有个半字或者8byte写入的函数么,库函数提供有现成的呀
2、我做的一个DFU的,利用USB,直接移植官网的
3、你这个更新固件写入新地址什么意思?有点不明白
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

9

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-3-11
在线时间
0 小时
 楼主| 发表于 2014-3-21 12:30:15 | 显示全部楼层
回复【2楼】Badu_Space:
-----------------------------
就是说我在更新固件之前可以在串口助手上重新输入写固件的位置地址;不是半字的问题,就是比如我的固件大小为2048+128,前面2048的大小肯定一次性写入,但是后面的128字节我不知道怎么去接收数据了,貌似我钻进了死胡同了
回复 支持 反对

使用道具 举报

9

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-3-11
在线时间
0 小时
 楼主| 发表于 2014-3-21 12:40:24 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
就是怎么判断最后接收到的不足2K的数据,然后写进去
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-3-21 12:45:01 | 显示全部楼层
回复【3楼】数字鹰:
---------------------------------
1、你单片机串口接收和电脑串口助手之间有个什么协议比较好点,这样你就知道具体发了多少数据
2、比如定义一些发送文件的相关信息,比如一开始就发送文件的大小,地址等等,单片机接收到之后就改变相关变量定义,再去接收数据
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

9

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-3-11
在线时间
0 小时
 楼主| 发表于 2014-3-21 12:48:54 | 显示全部楼层
回复【5楼】Badu_Space:
---------------------------------
嗯,是的   这是个办法,因为现在的程序也不知道你到底要发多少字节的数据,但是官方的是怎么做的呢?
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-3-21 13:03:15 | 显示全部楼层
http://www.openedv.com/posts/list/28532.htm

这个帖子,你可以去看下,官方的用了DFU标准协议的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

29

主题

311

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1530
金钱
1530
注册时间
2012-9-4
在线时间
262 小时
发表于 2014-3-22 17:48:39 | 显示全部楼层
回复【7楼】Badu_Space:
---------------------------------
有一点我很疑惑啊,这个DFU和IAP到底是什么关系啊???感觉在做同一件事。。。
STM32---STM32---STM32---STM32---STM32---STM32---STM32---STM32---STM32
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-3-22 17:52:32 | 显示全部楼层
回复【8楼】aben:
---------------------------------
是做同一样事情,但是通过DFU来的话就比较快了,实现电脑USB来操作
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

29

主题

311

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1530
金钱
1530
注册时间
2012-9-4
在线时间
262 小时
发表于 2014-3-22 17:57:50 | 显示全部楼层
回复【9楼】Badu_Space:
---------------------------------
也就是说,IAP还是串口通信是吧。。。。这样说我还想理解了
STM32---STM32---STM32---STM32---STM32---STM32---STM32---STM32---STM32
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-3-22 18:30:30 | 显示全部楼层
回复【10楼】aben:
---------------------------------
IAP实现方法有很多的,不一定用串口

IAP的实现可以是串口,USB,网络,SD卡等等
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 23:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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