internal flash with FreeRTOS?

Hi I have a problem when trying to write to flash on a AT91SAM7X256. I have moved my flash-write functions to RAM. I think I have it setup correctly. The problem seems to be timing, because if I step through the flash write code, it works like a charm… but if I let it run full speed it crashes every time to the pabort! Thanks! regards

internal flash with FreeRTOS?

Is this a freertos question? There are no flash write functions in freertos.

internal flash with FreeRTOS?

Yes the question is for freeRTOS. I have project running on freeRTOS. I am using AT91SAM7X  and Rowley Crosswork. I am trying to use the internal flash to store/log data. My function seem to be running ok(write to flash) if I run it before RTOS vTaskStartScheduler(); and after i shift it into one of the task after scheduler start, I always end up in : dabort_handler:   b dabort_handler ………. Any idea how to write internal flash in RTOS? many thanks! regards HS

internal flash with FreeRTOS?

Hello @ All, I had the same problem. I made a funktion based on the code of the example project basic-internalflash-project. I tested the funktion in main before the scheduler starts and everything was fine. Then I moved it into a Task and nothing worked anymore.I discovered that two things are important. First you have to encapsulate your flash_write function with taskENTER_CRITICAL(); and taskEXIT_CRITICAL();. Second the system crashes if you use FLASHD_Unlock(AT91C_IFLASH, AT91C_IFLASH + AT91C_IFLASH_SIZE , 0, 0); and FLASHD_Lock(lastPageAddress, lastPageAddress + AT91C_IFLASH_PAGE_SIZE, 0, 0); to lock and unlock the flash pages. Dont ask me why this happens. But I found that no pages are locked so writing to flash should be no problem. Maybe anyone can explain this behavior.