关于pio的bank怎么理解?
mask和dir好理解,bank怎么理解?为啥是PIO/32,搞不懂。这里看到 PIOS_PER_BANK=32
static bool sport_health_set_i2c_pio(uint16 pio, pin_function_id func)
{
uint32 status;
uint16 bank = PBANK(pio);
uint32 mask = POFFM(pio);
/** Helper macro for calculating the PIO bank */
#define PBANK(pio) ((uint16)((pio) / PIOS_PER_BANK))
/** Helper macro for calculating the PIO offset within the bank */
#define POFF(pio) ((pio) % PIOS_PER_BANK)
/** Helper macro for calculating the PIO offset mask */
#define POFFM(pio) (1U << POFF(pio))
是不是为了区分PIO范围?看配置工具也区分了PIO范围,是这个意思吧。
我是小白 发表于 2020-5-12 15:52
是不是为了区分PIO范围?看配置工具也区分了PIO范围,是这个意思吧。
猜测bank作用在于分组,对应到寄存器方便配置,假设in/out由一个bit控制,32个PIO组合成32-bit放在同一个寄存器管理 按照我的理解是,bank对应着内部总线的宽度, 总线一次访问I/0数量就是1个bank。
页:
[1]