Jul 10, 2020
12:29 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jul 10, 2020
12:29 AM
Hi,
I am using Autosar FEE & FLS drivers from Infenion for my bootloader . I have written a simple NVM by myself
Currently I am facing an issue with the FEE driver.
Given below is a snap shot of my NVM initialization. Here it reads some information.
static Bool stackIsBusy(void)
{
MemIf_StatusType status = Fee_GetStatus();
return ((status == MEMIF_BUSY) || (status == MEMIF_BUSY_INTERNAL));
}
IO_ErrorType NVM_init()
{
Fls_17_Dmu_Init(&Fls_17_Dmu_Config);
Fee_Init(&Fee_Config);
while (stackIsBusy())
{
Fls_17_Dmu_MainFunction();
Fee_MainFunction();
}
if (Fee_Read(Fee_SharedLogistics, 0, SNVM_ramBuffer, SNVM_BLOCK_SIZE) == E_OK)
{
do
{
Fls_17_Dmu_MainFunction();
Fee_MainFunction();
} while (stackIsBusy());
}
Here the above do while loop is stuck in the infinite loop since the stack status is always busy (MEMIF_BUSY).
When I look in to the code I can see that 'DFlashStatus' is evaluated as 'FEE_S0_S1_INVALID' due to this FEE always in a state called "FEE_MAIN_INITGC". Its not changing to 'FEE_MAIN_READ' (for FEE read ) or 'FEE_MAIN_WRITE' (for FEE write ).
Due to this FEE status always in 'MEMIF_BUSY'. Same issue for write operation also
Please tell me how t fix this issue. Is this a HW issue or configuration related issue or SW issue.
I am using Autosar FEE & FLS drivers from Infenion for my bootloader . I have written a simple NVM by myself
Currently I am facing an issue with the FEE driver.
Given below is a snap shot of my NVM initialization. Here it reads some information.
static Bool stackIsBusy(void)
{
MemIf_StatusType status = Fee_GetStatus();
return ((status == MEMIF_BUSY) || (status == MEMIF_BUSY_INTERNAL));
}
IO_ErrorType NVM_init()
{
Fls_17_Dmu_Init(&Fls_17_Dmu_Config);
Fee_Init(&Fee_Config);
while (stackIsBusy())
{
Fls_17_Dmu_MainFunction();
Fee_MainFunction();
}
if (Fee_Read(Fee_SharedLogistics, 0, SNVM_ramBuffer, SNVM_BLOCK_SIZE) == E_OK)
{
do
{
Fls_17_Dmu_MainFunction();
Fee_MainFunction();
} while (stackIsBusy());
}
Here the above do while loop is stuck in the infinite loop since the stack status is always busy (MEMIF_BUSY).
When I look in to the code I can see that 'DFlashStatus' is evaluated as 'FEE_S0_S1_INVALID' due to this FEE always in a state called "FEE_MAIN_INITGC". Its not changing to 'FEE_MAIN_READ' (for FEE read ) or 'FEE_MAIN_WRITE' (for FEE write ).
Due to this FEE status always in 'MEMIF_BUSY'. Same issue for write operation also
Please tell me how t fix this issue. Is this a HW issue or configuration related issue or SW issue.
0 Replies