At the University the lectures started, and as well all the bachelor diploma and industry projects. So I am running out of my TWR-MCF52259 boards as they are used by my students. No problem, as I have one remaining board in my shelf. I plugged the board into my machine, but YIKES! Look at this:
I don’t remember that I have implemented a Chinese version of the OSBDM/OSJTAG firmware? At least not intentionally? My Windows shows properly the P&E USB Multilink and another Tower board. But my TWR-MCF52259 wants to talk in Chinese to me? .
Well, this is strange, but at least the debugger in MCU10.2 properly presents a OSBDM/OSJTAG device.
But trying to debug it from my CodeWarrior MCU10.2 fails to connect. If you have read my post on Debugging Rules, then here is a case were Enable logging in above dialog provides more information. Inspecting the log in the Console View shows:
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : CWDBG, Entry : Connect, Value : 0, R) => DI_OK GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : STARTUP, Entry : SPECIFY_NETWORKCARD_ENABLED, Value : 0, R) => DI_OK INF: Could not contact P&E Hardware Interface. Check Power and Connections. INF: Could not contact P&E Hardware Interface. Check Power and Connections. ERR: Connect failed. GDI: => DI_ERR_FATAL GDI: The Debugger can not connect to the P&E BDC interface or targetted hardware board. GDI: DiGdiClose() GDI: => DI_OK
So the debugger cannot connect to the firmware of the OSBDM on the tower card. Yes, it enumerates correctly as OSBDM device on the USB bus, but the protocol does not work. Either the firmware is corrupted, or it is a very old version on that board. I think it is the later, as I have not touched that board for a very long time. In fact the label “REV X1″ on the board indicates me that this one might be my first tower board. So pretty old, not used for a while. And if the firmware is too old, then the debugger cannot automatically update the firmware. Ahrg!
The good news is: There is a OSBDM/OSJTAG firmware update and recovery utility available for download from http://www.pemicro.com/osbdm. This not only installs utilities around OSBDM/OSJTAG, it installs as well the drivers if that would be the problem.
Running the Firmware Information utility (
osbdm_fwinfo.exe) shows following:
So it shows indeed a ColdFire V2 firmware, but it unable to detect the firmware revision and type. I remember that the firmware only returns that kind of information after firmware version 19 or so (I don’t remember any more the exact revision). So this is definitely a very old firmware .
Next I’m running the OSBDM/OSJTAG Firmware Update utility (
I’ll select the hardware, the device and the architecture with the firmware and press ‘Update Firmware’. But what I get is an error dialog:
Ok, does not work that way. Because the firmware too old, my installed new drivers are not able to talk to the firmware. What now? I could go back and install old drivers, but that would be a pain. Luckily the tower boards include a connector to flash directly the firmware of the OSBDM S08JM60 device. Inspect your board schematic to find it. But you need to have a Multilink (or any other way to program the S08JM60), otherwise you are dead in the water. And you need to have the BDM header for the S08JM60 soldered, as the Freescale boards I have seen do not have it populated . Another good reason always to have a warmed up soldering iron within your reach.
Having the header populated and the Multilink attached, it is time to launch the OSBDM Firmware Recovery Utility (
Here you can select the firmware: make sure that you select the right one for your target board. For the ColdFire V2/3/4 there are two available: an embedded one and a non-embedded one. Make sure you select the embedded (osbdm-jm60_cfv234_emb_build30_rev21.s19) one for the ColdFire V2! Pressed ‘Update Firmware’, and that worked fine.
Running again the Firmware Info Utility, and now it shows proper firmware information:
Checking the device manager shows my second OSBDM board properly as well: no Chinese any more
From now on, CodeWarrior was able to debug my board with OSBDM again. Uffff!!!!