我正在尝试保留一些 sram 字节,其中地址必须在加载时知道,以便它可以安装到 PROGSPACE 中。到现在为止,我通过将地址设置为(0x1F6),然后在我做的程序上设置地址,在 arduino nano 板上通过一个棘手的分配测试了我的代码
volatile byte shifty_data[3];
确保它不会在堆中被覆盖......代码工作正常,但我对此不满意,因为它与其他内核不兼容,并且可能与环境变化不兼容。到目前为止,我已经考虑了 malloc __heap_start 的更改(没有成功,因为它不是恒定的,并且我认为在加载时地址未知),我还查看了 avr/io.h,特别是通过 RAMSTART 在 iom328p.h定义,这可能有效,但是......它在systemn上似乎太低了,因为我想在它上面使用硬件SPI......而且它可能是在更高级别执行此操作的更好方法,最好是在arduino文件中。有任何想法吗?