Other Parts Discussed in Thread: HALCOGEN
Tool/software: TI C/C++ Compiler
Hello:
I want to program the flash whose address is from 0x000FE000 to 0x000FE3E8.At the first step ,I test the bank0 ,sector0,but I find the error appearing when I operate the flash acrrording to the step as like eeprom as the ooperation.I open the memory Broser whose dispay is not matching with my writing buffer.
The main function is follow:
int main()
{
Fapi_initializeFlashBanks(GCLK_FREQ);
Fapi_setActiveFlashBank(Fapi_FlashBank0);
Fapi_enableMainBankSectors(0);//0x0000_0000-0x0000_3FFF sector0
Fapi_FLASH_save(0x00000000,API_flash_save_data,16);
Fapi_FLASH_read(0x00000000,API_flash_read_data,16);
while(1);
}
uint8 Fapi_FLASH_save(uint32_t *Flash_Start_Adress, uint32_t *Datas_Start_Adress,uint8_t Datas_SizeInBytes)
{
register uint32_t ESA=Flash_Start_Adress;
register uint32_t DSA=Datas_Start_Adress;
register uint8_t DSB=Datas_SizeInBytes;
while(Datas_SizeInBytes>0)
{
if(Fapi_Status_FsmReady == Fapi_checkFsmForReady())
break;
}
Fapi_issueProgrammingCommand((uint32_t*)ESA, (uint8_t*)DSA, DSB, 0, 0, Fapi_AutoEccGeneration);
// Fapi_doVerifyByByte((uint8_t*)ESA,(uint32_t)DSB,uint32_t DSA,Fapi_Status_Success);
}
uint8 Fapi_FLASH_read(uint32_t *Flash_Start_Adress, uint32_t *Datas_Start_Adress,uint8_t Datas_SizeInBytes)
{
register uint32_t ESA=Flash_Start_Adress;
register uint32_t DSA=Datas_Start_Adress;
register uint8_t DSB=Datas_SizeInBytes;
while(1)
{
if(Fapi_Status_FsmReady == Fapi_checkFsmForReady())
break;
}
Fapi_doMarginReadByByte((uint32_t*)ESA, (uint8_t*)DSA,(uint8_t)DSB,Fapi_NormalRead);
}