打印
[技术问答]

在进入省电模式之前,用户需要根据外设的具体应用配置IO管脚。如IO管脚设定功能为PWM...

[复制链接]
632|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
primojones|  楼主 | 2024-5-26 15:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Bit-banding是Cortex®-M4内核所支持的功能,所有的Cortex®-M4系列,如M451系列、NUC442/472系列和NUC505系列,都支持Bit-banding功能。
Bit-banding将一块较小存储器(bit-band region)中的位(bit)映射到一块较大存储器(alias region)中的字(word),如下图所示;当需要修改位的时候,用户只需修改对应字的内容即可完成位的设置。
我们可以通过利用bit-banding功能将SRAM或外设寄存器映射到各自对应的区域(alias region),通过修改alias region中字的内容,就能够完成对SRAM或外设寄存器的设定,无需复杂的建立过程,从而增加位设置的效率。


Bit-banding的位地址计算公式如下:
bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4)
bit_band_base是alias region的起始地址,byte_offset是设置位的字偏移,
bit_number是设置位的位偏移,bit_word_addr是对应alias region的地址。
以上图为例:
Bit-band region的 0x200F_FFFF[7],对应的alias region为
bit_word_addr = 0x2200_0000 + (0XF_FFFF x32) + (7 x 4)
       = 0x23FF_FFFC

注1: 通过bit-banding设置外设寄存器的时候,需要先使能对应的外设时钟源。
注2:通过bit-banding设置外设寄存器的时候,如果要设置需要解锁的位,用户需要先解锁,否则操作不会成功。

虽然Cortex®-M0内核并不支持Bit-banding功能,但是NuMicro®家族的M0系列都支持寄存器Pin Data Input/Output,用户可以通过设定该寄存器来控制每一个GPIO的状态。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

1145

帖子

0

粉丝