235689412 发表于 2020-5-12 15:38:01

关于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))


235689412 发表于 2020-5-12 15:52:46

是不是为了区分PIO范围?看配置工具也区分了PIO范围,是这个意思吧。


reader 发表于 2020-5-13 07:34:01

我是小白 发表于 2020-5-12 15:52
是不是为了区分PIO范围?看配置工具也区分了PIO范围,是这个意思吧。

猜测bank作用在于分组,对应到寄存器方便配置,假设in/out由一个bit控制,32个PIO组合成32-bit放在同一个寄存器管理

EdwardLee 发表于 2020-5-13 22:11:22

按照我的理解是,bank对应着内部总线的宽度, 总线一次访问I/0数量就是1个bank。
页: [1]
查看完整版本: 关于pio的bank怎么理解?