你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【实战经验】STM32L011x和STM32L021x启动模式注意事项

[复制链接]
zero99 提问时间:2016-8-30 15:22 /

STM32L011x/021x启动模式注意事项



前言
      针对客户在STM32L011D4P6应用开发过程中,碰到的启动模式问题进行了分析。并且根据问题,介绍开发工具、烧录工具中如何配置以避免影响。

一 问题描述
      发现尽管已经为Boot0引脚提供了低电平,在利用STVP进行烧录时,需要先利用串口发送0x7F信息(收到0x79回应),然后才能正常连接。同时,利用MDK-ARM开发工具时,同样无法直接正确识别STM32L011D4P6。调试器设置界面如下所示:
1.png


二 问题分析
       通过问题的描述,可以判断出在上电后,STM32L011D4P6进入了自举程序模式(详细内容参见AN3155)。查看STM32L011D4P6启动模式配置,如下图所示:
2.png

       在Boot0脚为低电平时,根据Boot配置应该进入Flash program memory (STM32L011D4P6没有nBOOT_SEL)。 通过问题所描述的方式利用STVP读出Option byte如下所示:
3.png


       为什么在这种配置情况,依然进入System memory。最终确认为STM32L011x/021x采用了一种有别于STM32L0系列中其他微控制器的启动配置机制。
具体为:包括了空检测标志,用以在Boot0为低电平,配置为从Flash program memory启动时,判断Flash program memory中是否含有有效用户程序,如何没有,则会引导进入自举程序(从System memory中执行),以便对Flash memory进行编程。
       询问客户得知出现这种问题的STM32L011D4P6之前没有烧录过用户程序。在Flash memory中烧录用户程序后,问题消失。

三 开发工具配置
       针对这种启动机制,在软件开发工具(例如MDK-ARM, IAR for ARM)中,需要对SWD调试/编程设置进行配置,并且需要连接STM32L011x/021x的Reset引脚。这样配置,能够避免微控制器进入Bootloader中,而引起的SWD调试/编程器连接通信时,出现冲突,无**常连接的情况。
ST-Link utility对应的配置(配置位置:Target\Setting)如下所示:
4.png


       MDK-ARM 对应的配置(配置位置 : Project\Option\Debug\Setting)如下所示:
5.png


       IAR for ARM对应的配置(配置位置:Project\Option\ST-Link)如下所示:
6.png

四 总结
       STM32L011x/021x相对于STM32L0系列其他微控制器,提供了空检测机制,能够在Flash program memory中用户程序无效时,自动从Flash启动进入到System memory中的自举程序。需要注意,在实际开发中,为调试/编程器提供Reset的连接,并对调试/编程器进行配置,以便正常实现调试/编程功能。



收藏 3 评论2 发布时间:2016-8-30 15:22

举报

2个回答
stary666 回答时间:2016-8-31 09:57:03
WinRaT 回答时间:2017-11-1 10:29:26
MDK jlink设置里没有HW RESET选项怎么办?所有选项都试过,都显示Erase Failed!
QQ图片20171101102425.jpg
QQ图片20171101102442.jpg
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版