我想使用 avr-gcc 将全局变量绑定到未使用的 I/O 寄存器(例如 PORTB),以减少代码大小。我在 AVR 的应用笔记AVR035(第 14 页)中学到了这个技巧。
在应用笔记中,他们使用 IAR 编译器并将变量绑定到 I/O 寄存器,如下所示:
__no_init volatile uint8_t counter@0x35;
使用 avr-gcc,我可以使用以下行将变量绑定到标准寄存器(在本例中为 r3):
register uint8_t counter asm("r3");
但是,这不适用于 I/O 寄存器。有没有办法对 I/O 寄存器执行此操作?