通常我们以
的形式处理微控制器中的寄存器#define REG_1 *((uword volatile far *)(0xBEEFFF))
REG_1 = 0x12345678;
我有四个相似的通道(例如UART通道)具有相同的寄存器组,但它们都有不同的地址。 我希望能够以紧凑的方式找到任何频道的任何寄存器的地址。
问题:是否可以应用以下内容:
#define CHANNEL_0_offset 0xBEEF00
#define CHANNEL_1_offset 0xFACE00
#define REG_1 0x0000AB
*((uword volatile far *)(CHANNEL_0_offset+REG_1)) = 0x12345678;
*((uword volatile far *)(CHANNEL_1_offset+REG_1)) = 0x87654321;
···
谢谢