100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 浅谈英飞凌XMC1xxx系列单片机的BMI功能

浅谈英飞凌XMC1xxx系列单片机的BMI功能

时间:2023-10-20 03:05:13

相关推荐

浅谈英飞凌XMC1xxx系列单片机的BMI功能

文章目录

前言一、BMI是什么?二、BMI的作用?1. 为什么要有BMI这个东西?2. BMI可以选择哪些启动模式?三、BMI怎么用?1. 每种启动模式对应的BMI值2. BMI值的修改四、BMI值的构成

前言

最近在学习XMC1302这款单片机,这款单片机有一个其他单片机上不常见的功能,就是BMI(BOOT MODE INDEX)。本文将结合笔者的理解以及其他参考资料,对这项功能进行简要说明,方便大家理解。由于本人水平有限,所有内容仅供参考,如有不对之处请指出。(本文可能会随缘更新)


一、BMI是什么?

BMI,其中文名称为“引导模式索引”。该功能是XMC1系列单片机关于启动配置的一个功能,BMI只针对XMC1系列单片机,其他系列的单片机也有类似的功能,但叫法不一样,本文只讨论XMC1系列的BMI功能。在英飞凌官方的用户手册在有这样一句话:“引导模式索引是储存在Flash中的2字节值,它包含关于启动模式和器件的调试配置信息”。也就是说,BMI值其实是一个可以修改的参数,它被存放在Flash的0x10000E00地址中,用户可以通过修改BMI值来选择单片机的启动模式以及调试配置。(在0x10000E10地址中还存放着BMI的反相值,用于检查BMI的正确性)

二、BMI的作用?

1. 为什么要有BMI这个东西?

通过阅读英飞凌官方的另一个手册可以知道,其他的单片机大多都需要一些引脚来选择启动模式,英飞凌认为这种方案需要额外的引脚,简直LOW爆了,所以他们希望通过软件的方式去选择单片机的启动模式。有了BMI,用户可以通过软件或代码来更改单片机的启动模式,这样就不需要专门的BOOT引脚了,可以留给用户更多可以使用的引脚。

2. BMI可以选择哪些启动模式?

在XMC1xxx系列单片机中,共有5类12种启动模式可以选择。下面列出的是启动模式的5大类:

用户生产模式——在用户生产模式下,debug功能被禁止,除非代码留有后门,否则单片机将变成“一次性”的,这点需要注意。使能了调试功能的用户模式——开启调试功能才能用诸如J-LINK这种仿真器调试程序。使能了调试功能和复位后暂停的用户模式——复位后暂停简称HAR,单片机复位后CPU停机,目前没用过这种启动模式标准引导加载程序模式——单片机刚出厂时的启动模式,只能用串口下载程序,不能debug具有超时功能的引导加载程序(该模式暂时没用过,不确定其功能,随后知道了再补充)


三、BMI怎么用?

1. 每种启动模式对应的BMI值

BMI名叫启动模式索引,所谓索引其实就是目录,那么目录其实就是一个内容对应一个页码。同样的道理,BMI也是一种启动模式对应一个数值。其对应关系如下图所示:

2. BMI值的修改

刚拿到手的XMC1系列单片机的启动模式都是标准引导模式,上文中提到过,只能用串口下载hex文件,想要开启单片机的调试功能,需要用官方工具修改BMI的值来开启SWD接口,详细步骤可以参考该文档——XMC1302串口MEMTOOLS开启SWD接口

通过代码和官方工具都可以修改BMI的值,并且只有代码的方法可以给生产模式“留后门”,以便将BMI由生产模式还原为出厂时的默认值(也许也可以改成其他值)。由于我没有用代码改过BMI值,这里只是提一嘴,有这方面需求的读者可以认真阅读一下用户手册。至于官方工具,目前我只知道两个可以修改BMI值的官方工具。分别是DAVE4以及Memtool。

在DAVE4主界面中单机下图中框住的图标,可以修改BMI值

在Memtool中也可以修改BMI值,其步骤如下(XMC1302的详细步骤请参考上面的链接)

四、BMI值的构成

下面的图是我从数据手册上截的,希望通过这张表使大家对BMI的认识更加直观。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。