这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 带空检功能的STM32芯片启动模式话题

共4条 1/1 1 跳转至

带空检功能的STM32芯片启动模式话题

管理员
2017-02-26 16:26:15     打赏

前言

针对客户在使用某些具有空检机制的STM32芯片时碰到的启动模式问题进行分析,并结合不同的调试及烧录工具做了相关配置的介绍。


一、 问题描述

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

二、 问题分析

结合客户问题的描述可以判断出在MCU上电后,STM32L011D4P6进入了自举程序模式(详细内容参见AN3155)。查看STM32L011D4P6启动模式配置,如下图所示:

在Boot0脚为低电平时,根据Boot配置应该进入main Flash program memory (STM32L011D4P6没有nBOOT_SEL)。利用STVP读出Optionbyte如下所示:

为什么在这种配置情况,还会进入System memory呢? 查看手册可以发现STM32L011x/021x采用了一种有别于STM32L0系列中其它微控制器的启动机制。


该类芯片使用了芯片空检测功能。用于Boot0配置为低电平,初始配置为从用户Flash program memory启动的前提下,先检测Flashprogram memory区是否含有有效用户程序,或者说检测芯片是否为空片。如果属于空片,则转而进入系统自举程序(即从Systemmemory中执行程序),以便对Flash memory进行编程。

通过询问客户得知,出现这种问题的STM32L011D4P6芯片都是没有烧录过用户程序的空片。当在Flash memory中烧录用户程序后,上面连接异常问题消失。


三、 开发工具配置

针对具有这种启动机制的MCU,在使用相关开发工具(例如MDK-ARM, IARfor ARM)时,需要对调试/编程选项进行配置,并需使用STM32L011x/021x的Reset引脚及连接。

ST-Link utility对应的配置(配置位置:Target\Setting)如下所示:

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

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

四、小结

STM32各大系列中,有部分芯片是具有空检功能的。比如STM32F0系列中的STM32F04X/09X,STM32L0系列中的STM32L011x/021x等,它们能够在Flash program memory中无有效用户程序时,自动从用户Flash区启动切换到System memory中的自举程序。要注意的是,在实际开发中需为调试/编程器提供Reset的硬件连接,并做适当配置。

 




关键词: 空检     STM32     启动     模式     配置    

专家
2017-02-26 21:43:08     打赏
2楼
楼主加油

专家
2017-02-27 09:10:36     打赏
3楼
原来是这样子,长知识了。

高工
2017-02-28 08:41:42     打赏
4楼
熊猫威武

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]