We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hallo. I have this problem with primary flash programming (IAP procedure). When i erase the flash and start programming it, when i am finished, in about random time some breakpoint in code occures (which cannot occure logically in any way) , and the meory i see is filled with 0x67,0x27 bytes - entire memory. Flash document show this as error flag on - erase timeout occured. But if i do step by step - the erasure and programming occurs correctly. And after it gets finished - in some timeout (5 min?) , the same scenario occures... Perphaps anyone could have a guess? Thank you.
This is the "AMD-style" parallel flash interface. It's used on many parts from companies other than AMD.
the meory i see is filled with 0x67,0x27 bytes
This is a status indication from the flash. Bit 6 toggles as long as the flash operation is in progress. You have to wait until it stops toggling before you can send other flash commands or read the flash. (In general; some flash parts have extended features to let you read one sector while another erases, and so on. But usually you have to wait.) See the "Toggle Bit I" algorithm in your flash data sheet.
A debugger generally tries to read memory whenever you stop it. So, if you put a breakpoint in your code right after the flash program command, the debugger will take over and the window open to the flash address will promptly read, getting back the toggling status bits instead of flash data. Either don't put breakpoints in this code, or make sure the debugger isn't trying to read flash addresses when you hit your breakpoint.
Yes, of course. But again, i wait until the bit stops toggling, i erase/write , whatever is needed , and the application is ok. But then,in about 3-4 minutes,the application breaks on breakpoint, that it CANNOT arrive logically to(only by flow in memory,or smth).