寻址微控制器中的寄存器

时间:2014-11-24 12:16:57

标签: c

通常我们以

的形式处理微控制器中的寄存器
#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;

···

谢谢

0 个答案:

没有答案