Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

F28069 FLASH API: Flash_Erase never returns

$
0
0

I'm working with the Boot ROM-resident FLASH API on a TMS320F28069. I verified that Flash_CPUScaleFactor and other defines are set correctly using Flash2806x_ToggleTest(), whose output frequency was right on at 10KHz. The FLASH API functions are linked directly into the BOOT ROM address space; the map file indicates:

003ffebb _Flash2806x_Program
003ffebd _Flash2806x_Erase
003ffef3 _Flash2806x_APIVersionHex

Speaking of APIVersionHex: it comes back with 0x0100, so the fundamental linker configuration appears to be OK. I am linking in the "2806x_BootROM_API_TABLE_Symbols_fpu32.lib" version of the library, and the compiler is configured with "--float_support=fpu32".

After performing the same initialization, I call Flash2806x_Erase(SECTORH, &EraseStatus); (with EraseStatus declared as FLASH_ST type) but the function doesn't return within several minutes of waiting. After pausing, the debugger reports that the CPU is stuck in an infinite loop at 0x3FF788, which the disassembler shows as "SB 0, UNC" and which appears to be part of the Bootloader Functions segment of BOOT ROM.

Interestingly, once the debugger is paused, the Memory Browser shows the entire contents of the FLASH memory (including the CSM locations!) as 0x0000. Neither the WDFLAG or MCLKSTS bits are set. After a reset and restart (without reloading) the previous contents of FLASH are again shown correctly in the Memory Browser.

Can someone point me at what I'm doing wrong here?

Thanks,
Dave 


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>