BME作为KL25Z的另一大卖点它究竟有什么特点呢?
BME是Bit Manipula
tion Engine的简称,即位操作模块,它是一个硬件模块,介于外设和内核之间,能够实现具体的位操作,如普通的位操作XOR, AND,OR,位插入BFI等,还能够实现单bit清零,单bit置位,以及提取无符号位等操作。正因为使用了硬件模块去操作,所以与普通的C代码操作相比,其生成的汇编代码减少了很多,从而减少了整个代码量。
BME例程2,是继例程1之后,采用
ARM内核的systick作为时间基准,测试使用BME方式配置LPTMR触发ADC采样所消耗的systick计数个数,以及使用普通C代码配置LPTMR触发ADC采样所消耗的systick计数个数之间的差本文档结合官方的BME例程2,讲解了BME的功能,例程代码,流程图以及运行结果。
例程功能
飞思卡尔KL25Z产品BME例程2采用ARM内核的systick作为时间基准,测试使用BME方式配置
LPTMR触发ADC采样所消耗的systick计数个数,以及使用普通C代码配置LPTMR触发ADC采样所
消耗的systick计数个数之间的差别。并将各自操作所耗的systick的计数个数通过串口打印出
来。两种配置方式的转换是使用是否从低功耗中唤醒的方式来转换。结果发现,使用硬件模块BME
对外设进行位操作,减少了C代码的指令大小,提高了指令执行效率。
运行平台
ü TWR-KL25Z48M
ü TWR-SER
ü FRDM-KL25Z
ü Keil MDK /IAR ARM IDE