I tried to use USBDM to program the FXTH87xx . But in the list of chips in Flash Programmer this MCU is absent. So, I insert this in the hcs08_devices.xml:
<!ENTITY HCS08-alt-load-flash SYSTEM "HCS08/FXTH87xx11_Starter_Project_CW10.abs.s19">
<device family="HCS08" name="FXTH87xx11">
<memoryRange start="0x000090" end="0x00028F" />
<memory registerAddress="0x1820" type="flash" securityAddress="0xFFB0">
<memoryRange start="0x00C000" end="0x00DFBF" />
<sdid value="0x002C" />
<flashProgramRef ref="HCS08-alt-load-flash" />
I'm not sure thay I use right values especially securityEntryRef section. But now flash Programmer detect my chip. But when I click Program Flash, on EraseMass status pop up error:
Hope someone can help me.
Solved! Go to Solution.
Could you change the end address in the XML file to 0xDFFF as it appears that there is a pseudo-vector table to be programmed as well. Also remove the references to security - in other words use the following:
<device family="HCS08" name="FXTH87xx11-Partial-Erase"> <memory type="ram"> <memoryRange start="0x000090" end="0x28F" /> </memory> <memory registerAddress="0x1820" type="flash"> <memoryRange start="0x00C000" end="0xDFFF" /> </memory> <sdid value="0x002C" /> <flashProgramRef ref="HCS08-alt-load-flash-program" /> <note>Untested</note> </device>
Make sure you select EraseSelective when programming.
Yes, I am running on the CW10.6 version and did all the necessary updates. so I get the FXTH870000.xml already set up.
I am able to flash it and also the debug runs smoothly up to this point:
I am not very good with code but from what I understand it tries to jump to a subroutine at this address (0xE003). Checking the data sheet for the memory map that is the firmware jump table which looks empty or not accessible:
Could it be that the firmware was not properly flashed or a step in the programming that I am missing?
I have just flashed the existing .s19 file from the starter project and ran the debug with this configuration:
It looks like you corrupted the firmware jump tables in your flash; these, along with user vectors, are stored in unprotected areas. When you do flash programming I suggest restricting write access so that these areas are not overwritten.
You can restore user vectors and firmware jump tables... if you know how to do it. If not, try programming a new chip.
This is pretty much all I am able to set up before flashing the device.
What settings should I be using not to interfere with the existing firmware?
Good stuff Pgo; I hope that will get Sunrme sorted.
Btw nice sample; looks like you need to clean the solder flux with isopropyl alcohol though. Sometimes leftover flux can get to a state where it shorts pins.
Yes it was a recycled board and was the victim of using solder-wick to remove move the connector.
I've changed the picture to post cleaning - still not a work of art but it's been a long time since I did aerial wiring.