This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Problem executing F28335 Flash API

For my DSP/BIOS RAM based project, I was succcessfully able to execute Flash APIs (Flash_Erase, Flash_Program and Flash_Verify). For the same project, now Flash based the call to Flash APIs does not work. It does not step out of the Flash_Erase/Flash_program API function. As mentioned in TI doc, these Flash APIs are copied into internal secure RAM for execution. The function which calls these APIs is also executed from internal RAM. All Passwords locations are set to 0xFFFFs and CSM all 0s. The Flash code occupies space less than half the flash size i.e sectors H,G,F. I tried erasing sector B and C which did not work.

What could be the issue?

 

  • Mona Gandhi said:
    For my DSP/BIOS RAM based project, I was succcessfully able to execute Flash APIs (Flash_Erase, Flash_Program and Flash_Verify). For the same project, now Flash based the call to Flash APIs does not work. It does not step out of the Flash_Erase/Flash_program API function. As mentioned in TI doc, these Flash APIs are copied into internal secure RAM for execution. The function which calls these APIs is also executed from internal RAM. All Passwords locations are set to 0xFFFFs and CSM all 0s. The Flash code occupies space less than half the flash size i.e sectors H,G,F. I tried erasing sector B and C which did not work.

    Mona,

    First thing I would check is that any interrupt that could be serviced during the function call is also in RAM.  If an interrupt is taken, and the service routine is in flash or OTP, the processor won't be able to execute it.   The alternative (or a steup in debugging this) is to disable all interrupts while you make the function call.

    -Lori

  • Lori,

    Enclosing all Flash API calls within DINT and EINT worked.

    Thanks and Happy New Year !!

    -Mona.