よくある質問
- M051 ベースシリーズ(95)
- M0518シリーズ(97)
- M0519シリーズ(43)
- M0564 シリーズ(1)
- ミニ 51 ベースシリーズ(90)
- ナノ 100/102 ベースシリーズ(101)
- Nano103 ベースシリーズ(10)
- ナノ 110/112 LCD シリーズ(100)
- ナノ 120 USB シリーズ(111)
- ナノ 130 アドバンストシリーズ(110)
- NUC029 シリーズ(94)
- NUC100/200 アドバンストシリーズ(102)
- NUC120/122/123/220 USB シリーズ(116)
- NUC121/125シリーズ(1)
- NUC126 USB シリーズ(2)
- NUC130/230 CAN シリーズ(103)
- NUC131/NUC1311 CAN シリーズ(98)
- NUC140/240 コネクティビティシリーズ(114)
常見問答
Bit-banding的功能是什麼?應該如何使用? 日期:2015-11-02
Bit-banding是Cortex®-M4核心支援的功能,NuMicro®家族的M4系列,如M451系列、NUC442/472系列和NUC505系列,都支援bit-Banding功能。
Bit-banding將一塊較小記憶體(bit-band region)中的位元對應到一塊較大記憶體(alias region)中的字組,如下圖所示;當需要修改位元的時候,只需要修改對應到的字組,就可以達成對位元設定的動作。

我們可以利用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
Note1: 透過bit-banding設定外設暫存器的時候,需要先致能相對應的外設時鐘源。
Note2: 透過bit-banding設定外設暫存器的時候,如果要設定需要解鎖的位元,需要先進行解鎖,否則操作不會成功。
雖然Cortex®-M0核心並不支援bit-banding功能,但是NuMicro®家族的M0系列在GPIO都有提供暫存器Pin Data Input/Output,使用者可以設定這個暫存器來控制每一個GPIO的狀態。
| 產品: | 微控制器 ,Arm Cortex-M0 微控制器 ,M051 系列 ,M0518 系列 ,M0519 系列 ,Mini51 系列 ,Nano100 / 102 系列 ,Nano110 / 112 LCD 系列 ,Nano120 USB 系列 ,Nano130 USB+LCD 系列 ,NUC029 系列 ,NUC100 / 200 系列 ,NUC120 / 122 / 123 / 220 USB 系列 ,NUC130 / 230 CAN 系列 ,NUC131/NUC1311 CAN 系列 ,NUC140 / 240 USB+CAN 系列 ,Arm Cortex-M4 微控制器 ,M451 Base 系列 ,M451M 系列 ,M452 USB 系列 ,M453 CAN 系列 ,NUC442 / 472 系列 ,NUC505 系列 |
|---|---|
| 應用: | |
| 功能: | Peripherals,ARM,Cortex-M4,I/O,GPIO |