1.介绍
对于芯片来说,Flash是非常重要的,这一篇先来讲一下Flash的使用,官方已经给出Demo了,所以我们只要知道它是如何工作的就可以使用了,性能方面也是可以进行测试的,不过这一篇先不讲。
2.测试
首先打开Flash读写例程,使用的例程如图所示。
使用Keil打开例程之后,可以看到Flash写入的地址为【0x80000000+1024*522】,分别创建了Flash的读Buffer和写Buffer,最后在主程序中运行读和写Flash过程。
为了能够看到,什么时候进行的读写,修改了一下main里面的程序,如下所示。
int main(void)
{
Delay_init();
UART_Print_Init(115200);
AT32_LEDn_Init(LED2);
AT32_LEDn_Init(LED3);
printf("Flash Demo Start!\r\n");
//Fill BufferWrite data to test
for(Index=0;Index<TEST_BUFEER_SIZE;Index++)
{
BufferWrite[Index]=Index;
}
FLASH_Write(TEST_FLASH_ADDRESS_START,BufferWrite,TEST_BUFEER_SIZE); //Write data to flash
printf("Write Success!\r\n");
FLASH_Read(TEST_FLASH_ADDRESS_START,BufferRead,TEST_BUFEER_SIZE); //read data from flash
printf("Read Success!\r\n");
if(Buffercmp(BufferWrite,BufferRead,TEST_BUFEER_SIZE)==PASSED) //Compare the buffer
{
AT32_LEDn_ON(LED2);
AT32_LEDn_OFF(LED3);
}
else
{
AT32_LEDn_OFF(LED2);
AT32_LEDn_ON(LED3);
}
while(1)
{
}
}
然后接上串口,板子上的串口发送为PA9,将串口模块的RX接到板子上的PA9即可,最后运行程序,串口上打印的内容如下图,好像读取时速度挺快的,串口都没有识别出来是新的一条数据。
接下来调试看一下Flash的存储状态,首先运行程序到while(1),然后查看【0x80000000+1024*522】地址上的内容,可以看到和写入的内容是一样的,从0开始存储数据。
然后看一下接收后的Buffer内容是否一致,可以看到接收的Buffer中的内容和发送Buffer的内容是一致的,说明读取也是正常的。
3.总结
AT-START-F403A的Flash读写还是很好用的,但是不知道一次最多可以读写多少数据,下一篇我们就来测试一下。
是啊,不过有些封装起来是为了做存储管理系统,我就遇到有。