请问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条回答
60user160
2019-07-15 10:54
kingnet_52003 发表于 2018-9-17 18:15
我试验了一下,地址确实如你所说的,感谢

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

这个没有试过,不过,有多少数据发送多少,别多写,估计会出问题。如果写0XFF的话可能会没事,因为芯片擦除之后全是0XFF。
你在写之前有没有擦除必要的页?
多加的数据后面的字节和和checkSum加上了吗?

一周热门 更多>