Codewarrior 10.x Startup Proceedure

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

Codewarrior 10.x Startup Proceedure

1,044 Views
R_R_Ritchey
Contributor II

Hi, I am moving a project from CW 6.3 to CW 10.6.   This project has a bootloader.  At this point in debug I am loading the bootloader binary in the .lcf file.  I have this working after some issues.  But what I am seeing now is very curious.  When I start debugging normally it seems the bootloader code is bypassed.  The bootloader code sets a couple LEDs on the board and they do not light up.  The bootloader is definitely there as I can power up the board without the debug cable attached and the LEDs come on.  I have also found that, after the debugger is started, I can reset the unit and the bootloader will execute.

 

So, my question is, why is the bootloader being bypassed when I enter the debugger for the first time.  This works fine on CW 6.3 with the same PE Micro Multilink interface.

 

Thanks for any insights here. 

Labels (1)
0 Kudos
7 Replies

635 Views
stanish
NXP Employee
NXP Employee

Hello Robert,

I suspect this is caused by the fact the CW MCU 10.6 debugger automatically sets PC at the application entry point after the flash is programmed.

I haven't found any other workaround than perform the target reset after download.

Regards,

Stan

0 Kudos

635 Views
R_R_Ritchey
Contributor II

Same here.  They seem to have broken so many things going from CW 6.3 to CW 10.6 its frustration.  I am looking around at other options now where I had no intention of doing this before.  Just found out that the compiler for Coldfire in 10.6 is horrible.  With both the 6.3 and 10.6 set at optimization level 1 the 6.3 compiler generates one of my routines at 0xB0 bytes and the 10.6 generates 0x104 bytes.  Drove me right out of a 32K part.  Going to be using 6.3 under XP emulation on Windows 7 for a long time and avoiding all CW 10.x products.

0 Kudos

635 Views
trytohelp
NXP Employee
NXP Employee

Hi Robert,

For sure the compiler using on MCU V6.3 and on MCU V10.6 are not the same.

The MCU V10.6 is using the 6.0.0.3024 version and the MCU V6.3 the 6.0.0.1003.

The V6.0.0.3024 solves several bugs (around 62 issues) vs to the 6.0.0.1003.

The MCU V6.3 was released end of 2009 whereas the MCU V10.6 only 2 months ago.

It's possible than some optimizations introduced issues which were solved and so the code could increase ...

      or an optimization included in level 1 (by mistake) was moved to level 2 or higher level.

To compare the code size I recommend you to check at level 4 for both version.

List of issues which could be linked to code increase:

MTWX40806 - wrong peephole optimization in CF compiler - peephole eliminating

    an instruction further used

MTWX40004 - wrongly applying "tail call optimization" when using inlined pure

    assembly functions

MTWX39207 - issue exposed when IPA optimization is enabled

MTWX29741 - code generation bug when optimization was turn up (from level 1

    to level 2) on a switch/case statement

MTWX39705 - optimization issue - branch tail merging wrong functionality

    for 64-bits operations

MTWX39078 - optimization issue - error caused by a wrong instruction removal

Have a great day,
Pascal Irrle

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

635 Views
R_R_Ritchey
Contributor II

I have just been comparing at level 1 because everything I have read said going higher would result in a greater difficulty of debugging.  That said, if both of these are set at level 1 I don't see why I should see such a huge difference of and an increase of 47% (0xB0 vs 0x104 code size, increase is typical across functions) in code size.  Irregardless of what bugs were fixed I don't see the reason for this.

0 Kudos

635 Views
trytohelp
NXP Employee
NXP Employee

Hi Robert,

I was in vacation the 2 last weeks.

Just see you've contacted colleague through Service Request.

According to the activities it seems the problem/question were answered.

In all case I recommend you to continue through the SR for this question.


Have a great day,
Pascal Irrle

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

635 Views
Ben
Senior Contributor I

Robert, which chip are you using? I have similar problem while moving from CW8 (for 56800) to CW 10.6. It looks that the bootloader address is running but is not working good and does not activate GPIO .

0 Kudos

635 Views
R_R_Ritchey
Contributor II

Hi, Sorry for the delayed reply.  For some reason I am not getting notifications of posts.  I am running an MCF51JM32.  Using PE-Micro Multilink.  I tried all the startup options and they all acted the same.

0 Kudos