Flash Memory – 使用超过4K的Flash Memory
范例说明
Flash Memory API预设使用4K大小的memory,对大部份的应用应该已经足够,但如果遇到需要用到超过4K的情况,可以指定特定的位置与大小来使用。
首先打开范例 “File” -> “Examples” -> “AmebaFlashMemory” -> “ReadWriteOneWord”
这个范例里会声明Flash起始位置为0xFC000, 大小为0x4000。 (预设起始位置为0xFF000,大小为0x1000)
然后根据offset对特定位置做读写。范例里使用offset 0x3F00,即Flash位置0xFC000 + 0x3F00 = 0xFFF00。第一次读出来将值设定成0,之后每次开机都加1。
程式码说明
之前的Flash API可以直接使用,但预设起始位置为0xFF000,大小为0x1000,如果要使用别的设定,则要呼叫begin(),范例里第一个参数是起始位置,第二个参数是大小。
FlashMemory.begin(0xFC000, 0x4000);
要读出这个区块的值,使用readWord(),范例里读出offset 0x3F00的地方,也就是0xFC000 + 0x3F00 = 0xFFF00的位置,读出来的大小为32-bit,放在回传值里
value = FlashMemory.readWord(0x3F00);
写入则使用writeWord(),第一个参数是offset,第二个参数是要写入的值。
FlashMemory.writeWord(0x3F0C, value);
Copyrights ©瑞晟微电子(苏州)有限公司 2021. All rights reserved. 使用条款