是否可以创建一个不跨越 256 字节边界的数组?也就是说,各个数组项的地址仅在低字节中有所不同。这比保持数组对齐到 256 字节的要求更弱。我能想到的唯一解决方案是与 对齐next_power_of_two(sizeof(array))
,但我不确定以这种方式出现的差距。
它是用于 AVR 微控制器的库,这将在中断处理程序中为我节省一些宝贵的指令。在库使用的大约 80 个字节的总静态内存中,应该具有此属性的数组是 54 个字节长。我正在寻找一种不会增加内存需求的方法。
我正在使用 avr-as gnu 汇编器和 avr-ld 链接器。
示例:如果数组从地址 0x00f0 开始,则在遍历数组时,高位字将从 0x00 变为 0x01。
我真的不在乎它是从地址 0x0100 还是从 0x0101 开始,只要它不越界。