USBDM - Version 4.10.2 (RS08/HCS08/HCS12/CFV1/Kinetis BDM)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

USBDM - Version 4.10.2 (RS08/HCS08/HCS12/CFV1/Kinetis BDM)

8,675 Views
pgo
Senior Contributor V

Dear All,

USBDM has been updated to V4.10.2

Please post any queries on this version in a separate thread - I really can't cope with this new-fangled setup!

Documentation available at: SourceForge

Applications available at: SourceForge

Source code is available at: GitHub eventually.

bye

Note

  • Please note that these design are different from the Freescale OSBDM-JM60 design which was proceeding independently while I was doing the above designs.

History

V4.10.2 (October 2012) -

This is intended as a interim release to support Codewarrior 10.3 Beta.

It has not been extensively tested.

Use only if you wish to experiment with CW10.3 or one of the following changes is of interest.

  •   Updated installer for Codewarrior 10.3 Beta
  •   Changed to shared DLLs build for wxWidgets
  •   Support added for Kinetis KLxx devices
  •   Updated libusbx version (& changed to static linkage)
  •    Bug Fixes
    • Firmware fixes for an output glitch on USBDM_JMxx_CLD & CLC.
    • Kinetis & CFV1 targets now correctly support RAM only targets (again)


V4.10.0 (September 2012) -

  • Improved Kinetis ARM-JTAG interface speed.
  • Added support for Kinetis ARM-SWD interfaces (requires different hardware). ARM-SWD is much faster than ARM-JTAG. For reference, programming a file to Kinetis flash using Codewarrior 10.2:
OSJTAG (build30_rev21)Tower K-401m 20s53s   
USBDM-JTAG (4.10.0)Tower K-4047s23s
USBDM-SWD (4.10.0)USBDM-SWD21s 17s

  • ARM interfaces (JTAG & SWD) are now provided by USBDM interface DLL. This means that the ARM API is now uniform with the RS08, HCS08, HCS12 and CFV1 interfaces. A compatibility DLL is provided for legacy use.
  • Simple ARM-SWD interface hardware designs are provided.
  • Bug fixes
    • Alignment error in programming code for some S12 targets
    • Corrected load addresses for ELF files for HCS08/HCS12



31 Replies

570 Views
pgo
Senior Contributor V

Dear Tao,

Could you try the attached replacement file and see if it fixes the problem?

You will need to unzip and copy to:

C:\Program Files\Freescale\CW MCU v10.3\MCU\bin\plugins\support\ARM\gdi

or the equivalent on your system.


bye

0 Kudos

570 Views
TOMXUE
Contributor II

Dear pgo:

It is working !

After I replace the original dll with your new file, in Codewarrior 10.3beta or 10.2, download and verify is woking very well.

Thanks for your great work and quickly response.

And when I do more test, I found a new error, maybe not really error:

With Codewarrior 10.2 or 10.3beta, for my application in the last post, I use the system tick and I2S.

The system tick irq service will toggle a GPIO with LED, and the i2s_test command will play a 3 minutes

wave file to external codec SGTL5000.

With the USBDM Version 4.9.4b, after download and verify using codewarrior 10.2 or 10.3, when I press

"RUN" in the debug window, the system is running and I get information in one UART and find the LED is toggling

and wave file is playing well.

But with USBDM Version 4.10.2 after download and verify OK, when I do the same run function in debug window,

the uart is working well, I can get information in console program such as Putty, but the system tick irq not work,

and the i2s playing a noise voice, not a voice that I put in a header file.

So, I guess is there something a little different with version 4.9.4b and 4.10.2 after downoload ?

For some simple code project, this error can not be found, such as hello world and just a simple led toggle with delay.

Many thanks,

Tao

0 Kudos

570 Views
TOMXUE
Contributor II

Dear pgo:

I received an email with your reply, but I can not find it in the community, the community maybe delete your reply.

I do the test followed by your suggest.

1, I program the board with stand-alone programmer's Load and Go option,

the program not run anything, but when I press the external reset button, the program run well.

2, If I use the Program only option to program the S19 to board, the external reset button can not

let the program run. But if I power-off and power-on the board, the program is running.

In the email, I can not get the attached file in your post, would you please post it again?

Many thanks,

Tao

0 Kudos

570 Views
pgo
Senior Contributor V

Dear Tao,

Sorry my fault - I made a mistake with the attached file and I didn't have time to find the correct one so I deleted the post but I forgot that this system emails all and sundry!

So it's repeated below with the attachment:

I'm a bit unclear when the problem occurs.

If you run the program stand-alone after programming the device does it work correctly?  Could you try the following:

  •     Use the stand-alone programmer and the Load and Go programming option.  Does the program run correctly?
  •     Does the program run correctly after an external reset e.g. using a reset button?

From your description I would expect both of the above to work but there to be problems when running under the debugger in Codewarrior.

If this is the case then I will check the polling code used by the debugger to monitor the target execution and see if I can identify a problem.  There was one issue I have already fixed related to this but I'm unsure if it has any bearing on your problem.  I have attached the DLL containing this fix if you would like to try it.

bye


0 Kudos

570 Views
TOMXUE
Contributor II

Dear pgo:

I put your attached files usbdm.4.dll and usbdm-debug.4.dll in the directory of

C:\Program Files\pgo\USBDM 4.10.2 and run the flash programmer for arm like the following:

flash programmer arm 4.10.3.jpg

And then I select the S19 file and run Load and Go function:

flash programmer arm 4.10.3 2.jpga

Then the programmer start to program the K10 chip, it is faster than version 4.9.4b.

For USBDM version 4.9.4b, the download and verify speed is about 5KBytes/Second,

and for 4.10.2, the speed is about 8KBytes/Second.

After program, look like the following:

load go complete.jpg

But the program is not running, when I press the external reset button, the program is running.

And the version 4.9.4b is same, but Codewarrior 10.2 or 10.3beta can let the program running with

4.9.4b.

Is there something I did wrong?

Many thanks,

Tao

0 Kudos

570 Views
pgo
Senior Contributor V

Hi Tao,

I'm sorry we are talking a bit at cross purposes.  I hoped the gdi.zip updates would improve the problem with the uneven running with Codewarrior.  Could you copy these to the Codewarrior directory as with the earlier file?  I don't have any way to investigate the problem you outlined without the right hardware so it would be good if you could see if there is any improvement.

I have a copy of your program and I can use that to find the Load & Go problem since it doesn't matter if the program actually has the correct hardware attached.  I also don't see it's as important a problem as the Codewarrior one.

Thanks

0 Kudos

570 Views
TOMXUE
Contributor II

Dear pgo:

I try to find the reason for USB Active LED not flash in the firmware of 4.10.2 I have installed,

and I use the source of USBDM_Firmware_V4_10(12_09_12).

When I use the build option of USBDM_SWD_SER_JS16CWJ

In the ICP.c and main.c filse, the register of SOPT1 is write twice as the following:

In ICP.c

void myStartup(void) {

#if !defined(SOPT1_BKGDPE_MASK) //|| defined(DISABLE_BKGD)

#undef SOPT1_BKGDPE_MASK

#define SOPT1_BKGDPE_MASK (0) // Only exists on some CPUs or BKGD pin in use as GPIO

#endif

   //SOPT1 = SOPT1_STOPE_MASK|SOPT1_BKGDPE_MASK; // Disable COP, enable STOP instr. & BKGD pin

In main.c

#if !defined(SOPT1_BKGDPE_MASK) || defined(DISABLE_BKGD)

#undef SOPT1_BKGDPE_MASK

#define SOPT1_BKGDPE_MASK (0) // Only exists on some CPUs or BKGD pin in use as GPIO

#endif

   SOPT1 = SOPT1_STOPE_MASK|SOPT1_BKGDPE_MASK; // Disable COP, enable STOP instr. & BKGD pin?

So I guess you want to initialize the BKGD pin as LED function in main, not in ICP.

But this pin is a little different to others, in the manual of JS16, page 74, the descriptions of this bit is the following:

BKGDDPE.jpg

So the bit of BKGDPE is write-once bit, so I

change SOPT1 = SOPT1_STOPE_MASK|SOPT1_BKGDPE_MASK;

to SOPT1 = SOPT1_STOPE_MASK;

in ICP.c and generate the new USBDM_SWD_SER_JS16CWJ_V4.sx.

Then I use the USBDM Firmware Updater to

update the new firmware generated. But the USB Active LED still not work.

I copy the USBDM_SWD_SER_JS16CWJ_V4.sx to the folder of

C:\Program Files\pgo\USBDM 4.10.2\FlashImages\JS16

Overwrite the original one, and then put the BLS pin of JS16 to low level.

I use JS16 Firset Level Bootloader to update the whole firmware to USBDM.

Then the USB Active LED work very well.

So maybe the USBDM_SWD_SER_JS16CWJ_V4.sx file should be updated with

new generated.

Many thanks,

Tao

0 Kudos

570 Views
pgo
Senior Contributor V

Hi Xao,

Sorry for not replying earlier.

I had enabled the BKGD pin for debugging (the reason for the bit that was commented out) but forgot to restore it.

DISABLE_BKGD is defined for targets that use the BKGD pin for something else - In this case the LED as you discovered.

I'll make sure it's OK in the next release.

bye

0 Kudos

570 Views
TOMXUE
Contributor II

Dear pgo:

Sorry for my confuse.

OK, I put the two files in the correspond Codewarrior folder, and test the application.

After download, the debugger is not stop at main entry, it will run directly.

With the original version of 4.10.2, it will stop at the entry of main.

I will do more test this night.

Many thanks,

Tao

0 Kudos

570 Views
TOMXUE
Contributor II

Dear pgo:

BTW, when I change the USBMD_SWD's speed from 500KHz to 12MHz,

the stand-alone programmer's speed is about 18KBytes/Second

to program K10 with USBDM_SWD.

Many thanks,

Tao

0 Kudos

570 Views
TOMXUE
Contributor II

Dear pgo:

Sorry for delay of my test.

I have do the USBDM_JTAG and USBDM_SWD with firmware version V4.10.2,

the USBDM_JTAG look like the recently discuss we did, but the USBDM_SWD

has nothing error compare to USBDM_JTAG.

The USBDM_JTAG and put the code automatic run after Load and Go command in

stand-alone programmer, and all of function is good after download and run in Codewarrior

10.3beta. It seems NOT any problem so far.

And the speed is about 12KBytes/Second in my computer with stand-alone programer,

the USBDM_JTAG is about 8KBytes/Second, and the firmware 4.9.4b is about 5KBytes/Second.

It's so great, and thanks for your excellent work on this.

A little problem for me is the USB active LED connect to PTB2 (pin6 of MC(S08JS16CWJ) seems

not flash or on anyway. I monitor status of this pin in oscilloscope and can not detect low level when

I program the K10 with stand-alone programmer.

So, is there some setting needed for this USB active led?

Many thanks,

Tao

0 Kudos