打印
[AT32F415]

flash擦除

[复制链接]
4704|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
slf123123|  楼主 | 2021-7-10 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
升级程序保存在0x801B000-0x801EC00 flash从0x801B000擦除没有问题可以把升级程序擦除掉  但一从0x8000000开始擦除就过不去了 之前在st32f103可以

使用特权

评论回复
沙发
slf123123|  楼主 | 2021-7-10 16:57 | 只看该作者
用的是415CBT6        
  FLASH_Unlock();
          j=0;for(i=0;i<ErasePagelen;i++)
                {
                        FLASH_ErasePage(((uint32_t)0x8000000)+j);j=j+0x400;IWDG_Feed();
                }
                FLASH_Lock();

使用特权

评论回复
板凳
slf123123|  楼主 | 2021-7-10 16:58 | 只看该作者
slf123123 发表于 2021-7-10 16:57
用的是415CBT6        
  FLASH_Unlock();
          j=0;for(i=0;i

ErasePagelen值是107

使用特权

评论回复
地板
fuqinyyy| | 2021-7-11 09:06 | 只看该作者
是不是实际地址偏移不对

使用特权

评论回复
5
slf123123|  楼主 | 2021-7-12 15:13 | 只看该作者
fuqinyyy 发表于 2021-7-11 09:06
是不是实际地址偏移不对

我试了一下把升级的程序做为主程序跑 是可以正常擦除的  但把升级程序放到0x801B000 擦除0x8000000的内容的话  只能擦除掉两页 之后的操作就不执行 好像是被中断了

使用特权

评论回复
6
lidi911| | 2021-7-14 08:41 | 只看该作者
雅特力的flash结构和分区和ST一样不?

使用特权

评论回复
7
muyichuan2012| | 2021-7-14 09:07 | 只看该作者
和ST一样,要注意flash page size会根据flash容量而不同。256K及以上flash容量,page size为2K.   而对于256K以下flash容量,page size为1K.

使用特权

评论回复
8
slf123123|  楼主 | 2021-7-14 13:21 | 只看该作者
muyichuan2012 发表于 2021-7-14 09:07
和ST一样,要注意flash page size会根据flash容量而不同。256K及以上flash容量,page size为2K.   而对于25 ...

我看到一个文档是将IAP放在非闪存起始地址的方法  
当放在非 page0 的起始地址时,需要在 page0 增加一个引导程序,
请问一下这个引导程序是必须要加的吗  因为我之前用st的时候是没有这个引导程序的  IAP是放在非闪存起始地址   然后直接从0x8000000开始擦开始写

使用特权

评论回复
9
slf123123|  楼主 | 2021-7-14 13:23 | 只看该作者
muyichuan2012 发表于 2021-7-14 09:07
和ST一样,要注意flash page size会根据flash容量而不同。256K及以上flash容量,page size为2K.   而对于25 ...

flash页数我应该是没搞错的  用的是CBT6 128k 的flash  所以擦的时候按一页0x400擦的

使用特权

评论回复
10
单片小菜| | 2021-7-14 14:41 | 只看该作者
这样做是可以的,没有任何问题的。

使用特权

评论回复
11
单片小菜| | 2021-7-14 14:50 | 只看该作者
这个可以随意的擦除的,没有任何问题的。

使用特权

评论回复
12
自己造声卡| | 2021-7-14 16:21 | 只看该作者
需要进行擦除之后,再进行烧录。解锁,擦除,烧录。

使用特权

评论回复
13
wsnsyy| | 2021-7-14 18:20 | 只看该作者
前面两页是不能擦除的吧,自动写保护的

使用特权

评论回复
14
slf123123|  楼主 | 2021-7-17 09:10 | 只看该作者
来结一下贴  我用的是AT32F415CBT6 程序的话起始地址放的是一个UCOSIII 然后IAP放在了flash的最后面几页  一开始从os跳转到iap升级后  一直发现flash擦除出现问题  只能擦除掉几页不能全擦  然后我就在flash起始页做了个引导程序做跳转发现可以了  但我一直奇怪的是为什么不能从0x8000000开始擦写 我明明用ICP把flash全擦 保护什么也全关了 然后我又回去试了一下把主程序放起始的位置发现可以了!

使用特权

评论回复
15
aple0807| | 2021-7-19 09:20 | 只看该作者
升级程序放在后半段是很危险的,一旦升级过程失败设备就废了。 我们一般是放在复位处,APP放在后半段。

使用特权

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

本版积分规则

3

主题

16

帖子

0

粉丝