5. Test
Test程序中,先Flash_Write_NoBuffer将Data全部写入Flash,然后更改几个下次要写入的数值,只写入更改的数据,这样FlashBufferWrite就会仅更新更改的数值,其他数值不变(如果不使用BufferWrite,Flash同一Page其他数据都会被Erase)
注意Wite传入参数如果是U8的需要强制转换成U32
- void FlashTest()
- {
- U8BIT Data_W[64] = {0xFA,0xFA,0xFE,0xFE,0xFA,0xFA,0xFE,0xFE,0xFA,0xFA,0xFE,0xFE,0xFA,0xFA,0xFE,0xFE,0xFA,0xFA,0xFE,0xFE,0xFA,0xFA,0xFE,0xFE};
- U8BIT Data_R[64] = {0};
- U32BIT FLASH_DATAZONE_BASE_ADDR = 0x08028000; //Address for test
- Flash_Read_Byte(FLASH_DATAZONE_BASE_ADDR, Data_R,sizeof(Data_R));
- Flash_Write_NoBuffer(FLASH_DATAZONE_BASE_ADDR,(U32BIT *)&Data_W[0],sizeof(Data_W));
- Flash_Read_Byte(FLASH_DATAZONE_BASE_ADDR, Data_R,sizeof(Data_R));
- Data_W[0] = 0;
- Data_W[1] = 1;
- //Merge new data and write, ohter data will contained
- Flash_Write_WithBuffer(FLASH_DATAZONE_BASE_ADDR,(U32BIT *)&Data_W[0],4);
-
- Flash_Read_Byte(FLASH_DATAZONE_BASE_ADDR, Data_R,sizeof(Data_R));
- }
|