请问STM32编译好的程序是从Flash的哪个地址开始写入Flash的?

2019-07-14 17:42发布

编译好的程序是从Flash的哪个地址开始写入Flash的?
以后的每个地址是按照怎样的规律变化的?

下面是我监控的STM32一次下载过程,使用的是串口下载,得到的上位机软件通过串口发送给STM32的待写入程序的Flash地址,
感觉不是特别有规律,那上位机软件是如何计算Flash地址的。每次下载的地址都一样吗? 不同型号的芯片会有差别吗?

每一组数据的前四个是Flash地址,第五个个校验
0X08,0X00,0X00,0X00,0X08
0X08,0X00,0X00,0X40,0X48
0X08,0X00,0X00,0X80,0X88
0X08,0X00,0X00,0XC0,0XC8
0X08,0X00,0X01,0X00,0X09
0X08,0X00,0X01,0X40,0X49
0X08,0X00,0X01,0X80,0X89
0X08,0X00,0X04,0X40,0X4C
0X08,0X00,0X04,0X80,0X8C
0X08,0X00,0X04,0XC0,0XCC
0X08,0X00,0X05,0X00,0X0D
0X08,0X00,0X05,0X40,0X4D
0X08,0X00,0X05,0X80,0X8D
0X08,0X00,0X08,0X40,0X40
0X08,0X00,0X08,0X80,0X80
0X08,0X00,0X08,0XC0,0XC0
0X08,0X00,0X09,0X00,0X01
0X08,0X00,0X09,0X40,0X41
0X08,0X00,0X09,0X80,0X81
0X08,0X00,0X0C,0X40,0X44
0X08,0X00,0X0C,0X80,0X84
0X08,0X00,0X0C,0XC0,0XC4
0X08,0X00,0X0D,0X00,0X05
0X08,0X00,0X0D,0X40,0X45
0X08,0X00,0X0D,0X80,0X85
0X08,0X00,0X10,0X40,0X58
0X08,0X00,0X10,0X80,0X98
0X08,0X00,0X10,0XC0,0XD8
0X08,0X00,0X11,0X00,0X19
0X08,0X00,0X11,0X40,0X59
0X08,0X00,0X11,0X80,0X99
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
kingnet_52003
1楼-- · 2019-07-15 09:40
 精彩回答 2  元偷偷看……
60user160
2楼-- · 2019-07-15 10:54
kingnet_52003 发表于 2018-9-17 18:15
我试验了一下,地址确实如你所说的,感谢

但是我一次写入64个,最后一次只有20个  我就加上44个0XFF,凑成64个,做最后一次发送,

这个没有试过,不过,有多少数据发送多少,别多写,估计会出问题。如果写0XFF的话可能会没事,因为芯片擦除之后全是0XFF。
你在写之前有没有擦除必要的页?
多加的数据后面的字节和和checkSum加上了吗?
kingnet_52003
3楼-- · 2019-07-15 13:29
60user160 发表于 2018-9-17 18:24
这个没有试过,不过,有多少数据发送多少,别多写,估计会出问题。如果写0XFF的话可能会没事,因为芯片擦除之后全是0XFF。
你在写之前有没有擦除必要的页?
多加的数据后面的字节和和checkSum加上了吗?

问题解决了,我多哈了一帧数据,
也就是说在最后一个地址里写了两次,  非常感谢

一周热门 更多>