DSPRelated.com
Forums

RE: CodeWarrior 4 Upgrading

Started by Victor Miramontes September 30, 2002
I, agree with Sanit. I too got the DSP board with free CW4.0 and have had
to deal with many reliability issues with respect to code generation and
especially debugging on CW4.0. I think that if there are serious bugs with a
particular version of any program, a patch should be created to address
those particular issue. Any new version of CW should not only include those
bug fixes but any other innovations/enhancements that help make the product
better than the previous version. I am not of the opinion that all 4.0 users
get a free upgrade to 5.0 but at the very least a free fix to the bugs which
plague CW4.0. If not a software patch then file updates to correct the
problems or some information on suggested workarounds to fix these issues.
After all if we are going to be doing Beta testing for Metrowerks, I think
at the very least Metrowerks can provide us with the means resolve these
serious problems in a cost effective and equitable manner. It is very
unproductive and unrewarding when much of your time is spent fixing the
tools you need to do your work.

Victor Miramontes
Principal Engineer
Advanced Mobility Systems, LLC
-----Original Message-----
From: Santi Corera [mailto:]
Sent: Monday, September 30, 2002 10:56 AM
To: ; MW Ron
Subject: Re: [motoroladsp] CodeWarrior 4 Upgrading Of course, you are right, but you forget that, in the evaluation module
offer was included Code Warrior 4.0, and it was said to be an
environment to
develop in assembler and C, so I feel deceived with this product.

----- Original Message -----
From: "MW Ron" <>
To: <>
Sent: Monday, September 30, 2002 5:08 PM
Subject: [motoroladsp] CodeWarrior 4 Upgrading > Santi Corera wrote:
>
> > I also have purchased this version of Code Warrior with an
evaluation
board
> > and I have found it is not possible to work in C reliaby.
> > I think Metrowerks must provide the patches to solve the bugs in
this
product.
> > The user would be able to choose upgrading to version 5.0.
> > Sorry for my bad english.
>
> Many people that have CodeWarrior for DSP 4 did not pay for the
CodeWarrior
> tools as they came free as a promotion with an evaluation board.
Obviously
> there is no free upgrade for those customers.
>
> We offer a very generous discount for people that had paid for support
of
> release 4. This is a pretty heavy discount of 70% off.
>
> In addition to bug fixes there was many new features in 5.0 including:
> A new IDE (4.2.6)
> Full functioning inline assembler
> Faster compiled code
> Better EVM examples and stationary
> Better allocation of memory
> Better startup code
> Better GUi for seting hardware Breakpoints
> More efficient linker
>
> Also they new veriosn works with the latest SDK, which has gone on to
add
> new processor support.
>
> This is quite a bit of value for the upgrade price, so I don't feel
anyone
> is buying bug fixes when they upgrade to CW 5.
>
> While I agree that a customer should not have to pay to get a bug
fixed.
> This should only be true if the bug is serious and it is reported on
the
> latest version.
>
> I believe that we have been very reasonable and fair with our
customers
> regarding our upgrades. We are continuing to provide patches for the
current
> tools and for those that had our older tools we have been generous in
our
> discounts to allow them to upgrade.
>
> Thanks for reading this far. If you have CW 4 and are unsure if you
qualify
> for the discount or not write me an e-mail and let me know your
location,
> and I'll pass it on to the appropriate sales desk.
>
> Ron > --
> Do what you do best and let Metrowerks do the rest !!
> http://www.metrowerks.com/MW/Services/SSG/default.htm
>
> Metrowerks, maker of CodeWarrior - "Software Starts Here"
> Ron Liechty - - http://www.metrowerks.com > _____________________________________
> Note: If you do a simple "reply" with your email client, only the
author
of this message will receive your answer. You need to do a "reply all"
if
you want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
>
> More Groups: http://www.dsprelated.com/groups.php3 > ">http://docs.yahoo.com/info/terms/


_____________________________________
Note: If you do a simple "reply" with your email client, only the author
of this message will receive your answer. You need to do a "reply all" if
you want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/motoroladsp

More Groups: http://www.dsprelated.com/groups.php3





> Many people that have CodeWarrior for DSP 4 did not pay for the
CodeWarrior
> tools as they came free as a promotion with an evaluation board.
Obviously
> there is no free upgrade for those customers.

There seems to be some confusion here. We got the eval package through our
distributor, and they told us that this was a good deal because we get (and
I quote) "...a years support & free upgrades for a year".

Now a Metrowerks representative is contradicting that.

Of course, I don't know who is at fault here, but I do not like what I am
hearing.

It now looks like we are obliged to pay the full price just to be able to
create production intent code. Whatever else, this is not a good public
relations exercise by Metrowerks/Motorola.

Steve.

Steve Chaplin
Principal Engineer
Zero 88 Lighting Ltd. intY has scanned this email for all known viruses (www.inty.com)



Santi Corera wrote:

> Of course, you are right, but you forget that, in the evaluation module
> offer was included Code Warrior 4.0, and it was said to be an environment to
> develop in assembler and C, so I feel deceived with this product.

I understand your concerns and I thought we had cleared all of this up last
February. All I can say is to write to me and give me your details and we
will treat these on a case by case basis.

Ron

>> Many people that have CodeWarrior for DSP 4 did not pay for the
>> CodeWarrior
>> tools as they came free as a promotion with an evaluation board.
>> Obviously
>> there is no free upgrade for those customers.
>>
>> We offer a very generous discount for people that had paid for support of
>> release 4. This is a pretty heavy discount of 70% off.

--
Do what you do best and let Metrowerks do the rest !!
http://www.metrowerks.com/MW/Services/SSG/default.htm

Metrowerks, maker of CodeWarrior - "Software Starts Here"
Ron Liechty - - http://www.metrowerks.com



Of course, you are right, but you forget that, in the evaluation module
offer was included Code Warrior 4.0, and it was said to be an environment to
develop in assembler and C, so I feel deceived with this product.

----- Original Message -----
From: "MW Ron" <>
To: <>
Sent: Monday, September 30, 2002 5:08 PM
Subject: [motoroladsp] CodeWarrior 4 Upgrading > Santi Corera wrote:
>
> > I also have purchased this version of Code Warrior with an evaluation
board
> > and I have found it is not possible to work in C reliaby.
> > I think Metrowerks must provide the patches to solve the bugs in this
product.
> > The user would be able to choose upgrading to version 5.0.
> > Sorry for my bad english.
>
> Many people that have CodeWarrior for DSP 4 did not pay for the
CodeWarrior
> tools as they came free as a promotion with an evaluation board.
Obviously
> there is no free upgrade for those customers.
>
> We offer a very generous discount for people that had paid for support of
> release 4. This is a pretty heavy discount of 70% off.
>
> In addition to bug fixes there was many new features in 5.0 including:
> A new IDE (4.2.6)
> Full functioning inline assembler
> Faster compiled code
> Better EVM examples and stationary
> Better allocation of memory
> Better startup code
> Better GUi for seting hardware Breakpoints
> More efficient linker
>
> Also they new veriosn works with the latest SDK, which has gone on to add
> new processor support.
>
> This is quite a bit of value for the upgrade price, so I don't feel anyone
> is buying bug fixes when they upgrade to CW 5.
>
> While I agree that a customer should not have to pay to get a bug fixed.
> This should only be true if the bug is serious and it is reported on the
> latest version.
>
> I believe that we have been very reasonable and fair with our customers
> regarding our upgrades. We are continuing to provide patches for the
current
> tools and for those that had our older tools we have been generous in our
> discounts to allow them to upgrade.
>
> Thanks for reading this far. If you have CW 4 and are unsure if you
qualify
> for the discount or not write me an e-mail and let me know your location,
> and I'll pass it on to the appropriate sales desk.
>
> Ron > --
> Do what you do best and let Metrowerks do the rest !!
> http://www.metrowerks.com/MW/Services/SSG/default.htm
>
> Metrowerks, maker of CodeWarrior - "Software Starts Here"
> Ron Liechty - - http://www.metrowerks.com > _____________________________________
> Note: If you do a simple "reply" with your email client, only the author
of this message will receive your answer. You need to do a "reply all" if
you want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
>
> More Groups: http://www.dsprelated.com/groups.php3 > ">http://docs.yahoo.com/info/terms/ >



Victor Miramontes wrote:

You may have a valid complaint and a legitimate argument. I will be happy to
work with you to resolve any issues in a fair and equitable way.

> I, agree with Sanit. I too got the DSP board with free CW4.0 and have had
> to deal with many reliability issues with respect to code generation and
> especially debugging on CW4.0. I think that if there are serious bugs with a
> particular version of any program, a patch should be created to address
> those particular issue. Any new version of CW should not only include those
> bug fixes but any other innovations/enhancements that help make the product
> better than the previous version. I am not of the opinion that all 4.0 users
> get a free upgrade to 5.0 but at the very least a free fix to the bugs which
> plague CW4.0. If not a software patch then file updates to correct the
> problems or some information on suggested workarounds to fix these issues.
> After all if we are going to be doing Beta testing for Metrowerks, I think
> at the very least Metrowerks can provide us with the means resolve these
> serious problems in a cost effective and equitable manner. It is very
> unproductive and unrewarding when much of your time is spent fixing the
> tools you need to do your work.

At some point there has to be a statute of limitations. Finding a problem
that requires such draconian measures 7 or 8 months after a new version is
going to be viewed skeptically. There may be valid reasons, but it is
really hard to say that a product is unproductive if you've been using it
for a year. That is why we need to judge this on a case by case basis.

I'm sure that we will do what is fair for all concerned.

Ron


Hi,

Upgrade from Codewarrior 4 to 5?
I did it, but I returned to version 4.0.2, due to the following new
bug in version 5:

*********** C-listing

#define GPIOD_BASE 0x13E0 // Table 3-36 for DSP56F807
#define GPIO_D_DR *(WORD *) (0x1+GPIOD_BASE)
GPIO_D_DR |= 0x02; // set GPIO-D1 to 1

*********** Assembly listing Codewarrior version 4.0.2

orc #2,X:13e1

*********** Assembly listing Codewarrior version 5

movei #5089,R0
nop
move X:(R0),X0
orc #2,X0 ; <=== What happens
if here an interrupt occurs?
move X0,X:(R0)

The problem of this bug is not the additional memory nor the
additional execution time,
but the problem is if during the main program an interrupt function
occurs, which sets f.e. GPIO-D7.
In this case the main program resets the GPIO-D7 value, just set by
the interrupt function.
In this way you get software bugs, which are difficult to reproduce
and difficult to find!

This is only one bug of my Codewarrior bug collection (most of them
have not been solved in version 5). I have sent them to Metrowerks,
but only very few have been answered (some after half a year). I have
14 years experience in developing embedded software, but I have never
used a compiler with so many bugs as Codewarrior. We paid the full
price for Codewarrior version 4 and my supplier understood that I was
not willing to pay a cent for version 5, so I got the upgrade to
version 5 for free. However now I use version 4.0.2 for compilation
and version 5 for debugging

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31- 318 - 676305



Victor hits the nail right on the head. What if you purchased a new car with
the break system not quite right. I was lucky to
have a friend who went through the learning curve help me.
I went through a good month of unhappy customer. fc

-----Original Message-----
From: Victor Miramontes [mailto:]
Sent: Monday, September 30, 2002 4:33 AM
To: ; Santi Corera; ; MW Ron
Subject: RE: [motoroladsp] CodeWarrior 4 Upgrading I, agree with Sanit. I too got the DSP board with free CW4.0 and have had
to deal with many reliability issues with respect to code generation and
especially debugging on CW4.0. I think that if there are serious bugs with a
particular version of any program, a patch should be created to address
those particular issue. Any new version of CW should not only include those
bug fixes but any other innovations/enhancements that help make the product
better than the previous version. I am not of the opinion that all 4.0 users
get a free upgrade to 5.0 but at the very least a free fix to the bugs which
plague CW4.0. If not a software patch then file updates to correct the
problems or some information on suggested workarounds to fix these issues.
After all if we are going to be doing Beta testing for Metrowerks, I think
at the very least Metrowerks can provide us with the means resolve these
serious problems in a cost effective and equitable manner. It is very
unproductive and unrewarding when much of your time is spent fixing the
tools you need to do your work.

Victor Miramontes
Principal Engineer
Advanced Mobility Systems, LLC
-----Original Message-----
From: Santi Corera [mailto:]
Sent: Monday, September 30, 2002 10:56 AM
To: ; MW Ron
Subject: Re: [motoroladsp] CodeWarrior 4 Upgrading Of course, you are right, but you forget that, in the evaluation module
offer was included Code Warrior 4.0, and it was said to be an
environment to
develop in assembler and C, so I feel deceived with this product.

----- Original Message -----
From: "MW Ron" <>
To: <>
Sent: Monday, September 30, 2002 5:08 PM
Subject: [motoroladsp] CodeWarrior 4 Upgrading > Santi Corera wrote:
>
> > I also have purchased this version of Code Warrior with an
evaluation
board
> > and I have found it is not possible to work in C reliaby.
> > I think Metrowerks must provide the patches to solve the bugs in
this
product.
> > The user would be able to choose upgrading to version 5.0.
> > Sorry for my bad english.
>
> Many people that have CodeWarrior for DSP 4 did not pay for the
CodeWarrior
> tools as they came free as a promotion with an evaluation board.
Obviously
> there is no free upgrade for those customers.
>
> We offer a very generous discount for people that had paid for support
of
> release 4. This is a pretty heavy discount of 70% off.
>
> In addition to bug fixes there was many new features in 5.0 including:
> A new IDE (4.2.6)
> Full functioning inline assembler
> Faster compiled code
> Better EVM examples and stationary
> Better allocation of memory
> Better startup code
> Better GUi for seting hardware Breakpoints
> More efficient linker
>
> Also they new veriosn works with the latest SDK, which has gone on to
add
> new processor support.
>
> This is quite a bit of value for the upgrade price, so I don't feel
anyone
> is buying bug fixes when they upgrade to CW 5.
>
> While I agree that a customer should not have to pay to get a bug
fixed.
> This should only be true if the bug is serious and it is reported on
the
> latest version.
>
> I believe that we have been very reasonable and fair with our
customers
> regarding our upgrades. We are continuing to provide patches for the
current
> tools and for those that had our older tools we have been generous in
our
> discounts to allow them to upgrade.
>
> Thanks for reading this far. If you have CW 4 and are unsure if you
qualify
> for the discount or not write me an e-mail and let me know your
location,
> and I'll pass it on to the appropriate sales desk.
>
> Ron > --
> Do what you do best and let Metrowerks do the rest !!
> http://www.metrowerks.com/MW/Services/SSG/default.htm
>
> Metrowerks, maker of CodeWarrior - "Software Starts Here"
> Ron Liechty - - http://www.metrowerks.com > _____________________________________
> Note: If you do a simple "reply" with your email client, only the
author
of this message will receive your answer. You need to do a "reply all"
if
you want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
>
> More Groups: http://www.dsprelated.com/groups.php3 > ">http://docs.yahoo.com/info/terms/


_____________________________________
Note: If you do a simple "reply" with your email client, only the author
of this message will receive your answer. You need to do a "reply all" if
you want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/motoroladsp

More Groups: http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/


While I agree that CodeWarrior 5 produces poorer code than 4.0.2 in this
example, when changing data in any shared resource (like a GPIO port or globally
shared memory), one should never assume that the compiler will generate code
that performs the operation atomically (ie as one indivisible operation). This
is particularly important when you are using a RealTime Operating System (RTOS)
(we use the DSPOS RTOS in all our applications).

The generally accepted way of coding to prevent this sort of problem with a
shared resource is shown by the following example from one of our programs:

#define Sci0_Tx_Connect( ) \
{ \
register WORD interrupt; \
interrupt = Disable_Int(); \
g_p_dspregs->pwma.pmout &= ~SCI0_TX_ENABLE_BIT; \
Enable_Int(interrupt); \
}

#define Sci0_Tx_Disconnect( ) \
{ \
register WORD interrupt; \
interrupt = Disable_Int(); \
g_p_dspregs->pwma.pmout |= SCI0_TX_ENABLE_BIT; \
Enable_Int(interrupt); \
}

The functions Disable_Int() and Enable_Int() are provided by the DSPOS library.
In this example, we are using one output on PWMA to control the Transmit Enable
pin of an RS-485 transceiver for the SCI0 serial port.

In any case, as I mentioned before, the very serious bugs that exist in
CodeWarrior 4.x and earlier mean that you are taking a big risk of having your
program crash in an unpredictable manner. We stumbled upon the "local variable
bug inside a function" almost by accident. It was discovered when we were
tracking down a completely different CodeWarrior bug. Our software could easily
have been sent out with this "time bomb" embedded in it.

For the above reasons, anyone with an older version of CodeWarrior should
upgrade to version 5.0 with the 5.0.2 patch.

I agree with you, that in my 26+ years experience I have never seen a compiler
as buggy as CodeWarrior. While no product this complex is ever "perfect", the
bugs we keep finding go way beyond what is acceptable. The Metrowerks compiler
writers apparently don't even understand basic ANSI C concepts like the meaning
of the keywords "volatile" or "const". This is not exotic, high-level stuff,
it's basically kindergarten-level C programming. You might expect these sorts
of problems in Version 1.0 of some product, but they should not exist in a
"mature" product like Version 5.0 (which we recently had to buy to get some
other bugs fixed). They even deliberately introduced a bug into Version 5.0
(Compiler/linker puts const data into X RAM) that contravenes the ANSI C
standard meaning of "const". They refused to fix this bug (they think it's
actually a "new, improved feature"), but gave us a work-around that cost me
weeks of work to change every build target of every project we have here.

I'm sure we'll never know how much all this extra time and effort has cost our
company (both in direct development costs and lost sales due to delayed product
launches), but I'm sure it's well over $100,000. Forcing us to pay for an
upgrade rather than issuing patches to version 4.x is just adding insult to
injury. Maybe that's the price you have to pay to design in leading-edge
devices ... Regards,

Art Johnson
Senior Systems Analyst
PMC Prime Mover Controls Inc.
3600 Gilmore Way
Burnaby, B.C., Canada
V5G 4R8
Phone: 604 433-4644
FAX: 604 433-5570
Email:
http://www.pmc-controls.com
-----Original Message-----
From: wdhaan [mailto:]
Sent: Tuesday, October 01, 2002 12:55 AM
To:
Subject: [motoroladsp] Re: CodeWarrior 4 Upgrading Hi,

Upgrade from Codewarrior 4 to 5?
I did it, but I returned to version 4.0.2, due to the following new
bug in version 5:

*********** C-listing

#define GPIOD_BASE 0x13E0 // Table 3-36 for DSP56F807
#define GPIO_D_DR *(WORD *) (0x1+GPIOD_BASE)
GPIO_D_DR |= 0x02; // set GPIO-D1 to 1

*********** Assembly listing Codewarrior version 4.0.2

orc #2,X:13e1

*********** Assembly listing Codewarrior version 5

movei #5089,R0
nop
move X:(R0),X0
orc #2,X0 ; <=== What happens
if here an interrupt occurs?
move X0,X:(R0)

The problem of this bug is not the additional memory nor the
additional execution time,
but the problem is if during the main program an interrupt function
occurs, which sets f.e. GPIO-D7.
In this case the main program resets the GPIO-D7 value, just set by
the interrupt function.
In this way you get software bugs, which are difficult to reproduce
and difficult to find!

This is only one bug of my Codewarrior bug collection (most of them
have not been solved in version 5). I have sent them to Metrowerks,
but only very few have been answered (some after half a year). I have
14 years experience in developing embedded software, but I have never
used a compiler with so many bugs as Codewarrior. We paid the full
price for Codewarrior version 4 and my supplier understood that I was
not willing to pay a cent for version 5, so I got the upgrade to
version 5 for free. However now I use version 4.0.2 for compilation
and version 5 for debugging

Kind regards, Wim de Haan Exendis B.V.
W.J. de Haan
P.O.box 56, 6710 BB Ede
Keesomstraat 4, 6716 AB Ede
The Netherlands.
Tel: +31- 318 - 676305

_____________________________________
Note: If you do a simple "reply" with your email client, only the author of this
message will receive your answer. You need to do a "reply all" if you want your
answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/motoroladsp

More Groups: http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/


Hi Wim,

Another option is to use a Macro.

Creation:

#define SET_PORT_LINE(a,b) asm(bfset a, x:b)
#define CLEAR_PORT_LINE(a,b) asm(bfclr a, x:b) Usage:

SET_PORT_LINE(#2, $13e1)
CLEAR_PORT_LINE(#2, $13e1)

Regards
Greg

----------------
Greg Coonley
DSP OS, Inc.
327 Dahlonega Rd Suite 1801-A
Cumming, GA 30040
Phone: 678-208-2250 ext 304
Fax: 678-208-2254
e-mail:
URL: www.dspos.com
----------------

--- In motoroladsp@y..., "wdhaan" <w.d.haan@e...> wrote:
> Hi,
>
> Upgrade from Codewarrior 4 to 5?
> I did it, but I returned to version 4.0.2, due to the following new
> bug in version 5:
>
> *********** C-listing
>
> #define GPIOD_BASE 0x13E0 // Table 3-36 for DSP56F807
> #define GPIO_D_DR *(WORD *) (0x1+GPIOD_BASE)
> GPIO_D_DR |= 0x02; // set GPIO-D1 to 1
>
> *********** Assembly listing Codewarrior version 4.0.2
>
> orc #2,X:13e1
>
> *********** Assembly listing Codewarrior version 5
>
> movei #5089,R0
> nop
> move X:(R0),X0
> orc #2,X0 ; <=== What happens
> if here an interrupt occurs?
> move X0,X:(R0)
>
> The problem of this bug is not the additional memory nor the
> additional execution time,
> but the problem is if during the main program an interrupt function
> occurs, which sets f.e. GPIO-D7.
> In this case the main program resets the GPIO-D7 value, just set by
> the interrupt function.
> In this way you get software bugs, which are difficult to reproduce
> and difficult to find!
>
> This is only one bug of my Codewarrior bug collection (most of them
> have not been solved in version 5). I have sent them to Metrowerks,
> but only very few have been answered (some after half a year). I
have
> 14 years experience in developing embedded software, but I have
never
> used a compiler with so many bugs as Codewarrior. We paid the full
> price for Codewarrior version 4 and my supplier understood that I
was
> not willing to pay a cent for version 5, so I got the upgrade to
> version 5 for free. However now I use version 4.0.2 for compilation
> and version 5 for debugging
>
> Kind regards, > Wim de Haan > Exendis B.V.
> W.J. de Haan
> P.O.box 56, 6710 BB Ede
> Keesomstraat 4, 6716 AB Ede
> The Netherlands.
> Tel: +31- 318 - 676305