您好:
由于Ram空间不够用了,有一个超大数组需要存储,并在程序运行时查询数组,现在想把数组定义在Flash里,有没有可能实现?有以下问题请教各位大神:
1、如何将数组定义在FLash里存储,const定义数组后用#pragma DATA_SECTION()定义在FLash里的方法可行吗?
2、如果数组定义在Flash里了,能不能直接用?还是用指针读取?
Susan Yang:1 可以的,另外您需要在cmd文件内分配一段内存区给数组用
2 大数组存放到Flash的话,定义时需要指定存放到Flash里,然后通过FlashAPI来改变它的值。
需要改变时,先关闭中断,然后调用FlashAPI擦除,然后写入您需要的值。
您好:
由于Ram空间不够用了,有一个超大数组需要存储,并在程序运行时查询数组,现在想把数组定义在Flash里,有没有可能实现?有以下问题请教各位大神:
1、如何将数组定义在FLash里存储,const定义数组后用#pragma DATA_SECTION()定义在FLash里的方法可行吗?
2、如果数组定义在Flash里了,能不能直接用?还是用指针读取?
mangui zhang:
从你的描述看不是要使用MCU内部的flash,是xintf接口外扩了flash吗?
如果是需要工程进行对flash擦除和写入你想要的数据,然后需要的功能直接对基地址+偏移地址进行读取