在 Atmel SAMD21J18A 微控制器中查找剩余的闪存大小?

Find left over flash memory size in Atmel SAMD21J18A microcontroller?

我正在从事一个 IOT 项目,我使用 Atmel SAMD21J18A 芯片将数据发送到远程服务器。我想包括一个功能,我可以在 运行 时间发送用过的闪存和剩余的闪存大小。是否有保存这些数据的寄存器?我查看了数据表但找不到答案。

应该可以修改您的链接器脚本以创建一个符号,其值等于链接器分配的闪存的末尾(如果它还没有的话)。然后,您可以在代码中将该符号声明为 extern 并使用其值。例如:

extern uint32_t END_OF_LINK_ROM ; // Linker generated symbol

如何生成链接器符号本身将因工具链而异。如果您的链接器没有在 ROM 的开头定位代码,您可能还需要一个符号作为开头。您需要查阅您的链接器文档并考虑您的内存映射。