请选择 进入手机版 | 继续访问电脑版
搜索
查看: 120|回复: 6

[已解决] STM32F030C6开启WWDG 片内flash写异常

[复制链接]

该用户从未签到

1

主题

2

帖子

0

蝴蝶豆

新手上路

最后登录
2019-8-27
发表于 2019-8-15 17:53:59 | 显示全部楼层 |阅读模式
STM32F030C6开启WWDG在循环写片内flash时触发复位,使用了HAL库,系统启动后配置了WWDG,配置如下:
Wwdg.Instance = WWDG;
Wwdg.Init.Prescaler = WWDG_PRESCALER_8;
Wwdg.Init.Window    = 0x40;
Wwdg.Init.Counter   = 0x7F;
Wwdg.Init.EWIMode   = WWDG_EWI_ENABLE;

HAL_WWDG_Init(&Wwdg);
HAL_NVIC_SetPriority(WWDG_IRQn, 1, 0);
HAL_NVIC_EnableIRQ(WWDG_IRQn);


在不操作写片内flash时,系统运行正常(GPIO读写,WWDG都运作正常);

但如果执行一段循环写片内flash(反复擦写),极大概率会触发复位;
如果不开启WWDG,同样的flash写操作是没问题的。

请教各位,这是片内flash操作影响到WWDG的中断操作吗?还是哪里配置出问题了?
回复

使用道具 举报

该用户从未签到

24

主题

406

帖子

14

蝴蝶豆

论坛元老

最后登录
2019-12-12
发表于 2019-8-16 09:38:20 | 显示全部楼层
看门狗计数时间和芯片擦写的时间是不是超了

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

40

主题

561

帖子

137

蝴蝶豆

金牌会员

最后登录
2019-12-14
发表于 2019-8-16 10:23:59 | 显示全部楼层
优化flash操作
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2017-12-6 11:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    48

    主题

    3261

    帖子

    351

    蝴蝶豆

    论坛元老

    最后登录
    2019-12-16
    发表于 2019-8-16 13:05:28 | 显示全部楼层
    可能是,Flash操作时间过长,没有及时喂狗。

    评分

    参与人数 1蝴蝶豆 +2 收起 理由
    STMCU + 2

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    2

    帖子

    0

    蝴蝶豆

    新手上路

    最后登录
    2019-8-27
     楼主| 发表于 2019-8-16 18:09:50 | 显示全部楼层
    问题应该如楼上各位所说的那样

    在STM32F0的 Reference manual中,关于flash擦写操作有这么一段话:
    On the contrary, during a program/erase operation to the Flash memory, any attempt to readthe Flash memory will stall the bus. The read operation will proceed correctly once the program/erase operation has completed. This means that code or data fetches cannot be made while a program/erase operation is ongoing.
    也就是说在擦写过程中,中断程序是无法执行的
    擦写过程需触发喂狗中断失败,导致系统复位。
    如果flash擦写操作时间小于喂狗超时时间,可以在擦写前先手动喂狗,确保擦写flash过程无需触发喂狗中断。

    感谢各位的回复,此贴已结。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    61

    帖子

    3

    蝴蝶豆

    高级会员

    最后登录
    2019-11-27
    发表于 2019-8-21 14:49:16 | 显示全部楼层
    对flash操作时间过长。你可以不开启看门狗,测试下对flash的操作时间

    评分

    参与人数 1蝴蝶豆 +1 收起 理由
    STMCU + 1

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    712

    帖子

    702

    蝴蝶豆

    版主

    最后登录
    2019-12-12
    发表于 2019-8-22 15:53:26 | 显示全部楼层
    datasheet 上面有烧录时间的参数,根据楼主的烧录模式可以估算出大致执行时间,留出足够的余量就行

    评分

    参与人数 1蝴蝶豆 +2 收起 理由
    STMCU + 2

    查看全部评分

    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    小黑屋|手机版|Archiver|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2019-12-16 09:42 , Processed in 0.125787 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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