DSPRelated.com
Forums

RE: Development tools for MCF5307

Started by Art Johnson December 3, 2002
We have had the identical problems with CodeWarrior for DSP56800. We estimate
that due to the bugs in CodeWarrior alone, our new product launches have been
delayed by over 5 months, at a total cost to us of well over $100,000.

In this regard, I have attached an email I sent to one of the other DSP56800
developers on the motoroladsp discussion group. From that email, here is my
opinion of CodeWarrior:

"I have been developing software for more than 26 years, and in that time I have
used hundreds of software products. In my opinion, if there was a race to find
the WORST software product in the whole universe, CodeWarrior would be in first
place, by a huge margin. It would be so far ahead of whoever's in second place
that you couldn't see them with the Hubble Space Telescope!!!
- using the best far-field lens
- and a month-long exposure
- with all of NASA's, JPL's, NSA's, and DOD's supercomputers running image
enhancement software"

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: Tom Burrell [mailto:]
Sent: Tuesday, December 03, 2002 1:27 PM
To: 'Coldfire CPU Discussion List'
Subject: RE: Development tools for MCF5307 Mark,
I am glad I am not the only one to have trouble with metrowerks.
Tom

-----Original Message-----
From: Mark Roush [mailto:]
Sent: Tuesday, December 03, 2002 2:12 PM
To: 'Coldfire CPU Discussion List'
Subject: RE: Development tools for MCF5307 Fernando,
Using Wind River Diab C compiler and Single Step Debugger with P&E Micro
BDM, all on MCF5272. 5307 is also supported. All are excellent tools and
not buggy. I have used Diab / single step on previous projects for several
years on 68K designs. I also recomend getting P&E micros low level debugger
and FlASH burner if you have a new design as they work better with buggy
hardware.

I started with Metrowerks this time around but it was so buggy as to be
laughable so I sent it back and got good old Wind River again.

Best luck,
Mark

-----Original Message-----
From: Fernando Xavier [mailto:]
Sent: Tuesday, December 03, 2002 9:12 AM
To: '
Subject: Development tools for MCF5307 Hi developers,
Can anyone help me with the developments tools available for MCF5307? Is
seems that CodeWarrior from Metrowerks is not including the C compiler and
linker, is that true? Which compiler and linker are you using? And about BDM
interface?

Regards
Fernando Xavier
----
---------------------
EFACEC Sistemas de Electronica SA
Automao de Sistemas de Energia e Telecontrolo
Divis de Desenvolvimento e Gest de Produto
Departamento SCADA / DMS
----
---------------------
Apartado 3078
4470-907 MOREIRA MAIA
PORTUGAL
Phone: +351 22 9403393
Fax: +351 22 9485428
Prof. Email:
Partic.. Email:
Web: www.efacec.pt

________________________________________________________________________
ColdFire Discussion List
See: <http://www.WildRice.com/ColdFire/
________________________________________________________________________
ColdFire Discussion List
See: <http://www.WildRice.com/ColdFire/ ---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.408 / Virus Database: 230 - Release Date: 10/24/2002
________________________________________________________________________
ColdFire Discussion List
See: <http://www.WildRice.com/ColdFire/



From:  "Art Johnson" <>
Date:  Fri Oct 11, 2002  1:40 pm
Subject:  RE: install static NORMAL_ISR_XX in SDK
To:  "Corey, Rick" <>

Hi Rick,

It's a pleasure for me as well, to have these discussions.

I don't think it would be helpful to share details of the relative priorities of
the bugs that need to be fixed. As you say, everyone would have a different
opinion and so it could actually slow down progress on the bug fixes.

I do think that it should be obvious to Metrowerks, that bugs causing total
program crashes should be put above all other bug fixes. This is just common
sense.

In this regard, the 'do' instruction bug that I found recently is in this
category. I tried to show Metrowerks the seriousness of this in 3 paragraphs of
my bug report:

============================
"This Bug is a real "Show Stopper" for us. Since it is responsible for total
system crashes and is likely to happen at any time in any of our products, we
cannot ship anything until we receive a fix or work around for this Bug.
Obviously, this Bug can cause the same failures in any other company's software
as well.

The DSP56800 family of devices are often used in critical safety or control
systems, where a program crash could be responsible for property damage,
personal injury, or even death.

I feel very strongly that this Bug should be addressed immediately, and it
should be given a higher priority than any other Bug or feature enhancement that
Metrowerks is currently working on. If it is necessary for you to go higher up
the chain of command at Metrowerks to raise the priority of this Bug, please do
so."
============================

This did not have the desired effect, so my manager here started going through
"other channels". This DID have the desired effect!

We were visited yesterday afternoon by our local Motorola rep who brought along
John R. Deck, the Western US Regional Sales Manager at Metrowerks. We went over
all the problems we are having (basically everything that's been said on the
discussion group), and I summed up my feelings about CodeWarrior as follows:

"I have been developing software for more than 26 years, and in that time I have
used hundreds of software products. In my opinion, if there was a race to find
the WORST software product in the whole universe, CodeWarrior would be in first
place, by a huge margin. It would be so far ahead of whoever's in second place
that you couldn't see them with the Hubble Space Telescope!!!
- using the best far-field lens
- and a month-long exposure
- with all of NASA's, JPL's, NSA's, and DOD's supercomputers running image
enhancement software"

I have no doubt he clearly understood our message. He promised that things will
be moving ahead briskly and efficiently with this critical Bug Report.

Anyway, I have to get back to work now, so have a great weekend (even though you
have to work)!

Best regards,
Art -----Original Message-----
From: Corey, Rick [mailto:]
Sent: Friday, October 11, 2002 5:29 AM
To: Art Johnson
Subject: RE: install static NORMAL_ISR_XX in SDK Hi Art,

What a pleasure to read your email! The perspective was very helpful, and I
do agree: how *could* it get any better? I happen to have heavy rain and
two days of code-work this weekend, but still, if the tools are working well
enough to make progress, and our cute little boards still haven't smoked,
and more and more of my code is working, I am whistling while I work.

(Our managers seem almost frightened to see the most-nerdy developers
cheerful and finally upbeat, when they only see a deadline missed and more
slippage in our future. However, we know that progress comes from pain, and
that we may even be past the worst of the pain!)

Ron at Metrowerks has sent me several very thoughtful and reasonable Emails
explaining their constraints and intentions, and I feel better about them,
too. Perhaps the only true underlying difference is what constitutes "fast
enough", and what can be done to appease the ravening pack of wolves (my
phrase) while total perfection of the toolset is pursued as fast as
resources permit.

What do you think: would sharing details of what order they hope to address
issues help or hurt? I thought that many folks who saw their own pet peeve
below the top 10% might become even more indignant. Also, I would dread the
response (or even my own response) of someone who saw his claim of a
compiler bug relegated to the status of "*perceived* compiler bug". I'm
just glad not to be in the position of a Metrowerks manager facing 450
demanding developers on a daily basis!

Have a great few days in your garden! The field of corn next door to me is
all brown and withered, and we just figured out what that huge patch of
weeds is. Nightshade! I'm glad I didn't nibble on the flowers.

It's been great getting to know you. And feel free to call me a newbie!
There is always so much to learn that we are *all* perennial newbies in
this industry. All is relative.

Rick Corey -----Original Message-----
From: Art Johnson [mailto:]
Sent: Thursday, October 10, 2002 6:35 PM
To: Corey, Rick;
Subject: RE: install static NORMAL_ISR_XX in SDK Hi Rick,

I'm always glad to be of help.

When I started working with the DSP56800 family in May of last year, I had
the same problems that you and other members of this group are having. I
would ask questions and _sometimes_ I would get complete (and correct)
answers, but also I would often get minimal answers, incorrect answers, or
no answers at all (I didn't know about this group back then).

So, I had to dig in and basically learn everything myself, often by trial
and error, including things that did _not_ work according to the manuals,
data sheets, and tech support people that I talked to.

When I first joined this group near the end of July this year, I was
basically passive, expecting that most questions asked by members would get
prompt, complete, and detailed answers. When I saw this was not happening,
I decided to do as much as I could to help. I just thought of all the grief
and frustration I went through over many months, and how much I would have
appreciated some truly helpful answers.
<<< OK, OK, end of self-pity section! >>>

On the subject of "beginner questions", I received an email that a young
developer in India sent me directly, as he was too afraid to ask his
questions on the group. Here's part of my answer to him:
'The only other thing I can suggest is to post a message to the motoroladsp
yahoo group to see if any other members can help you. Don't be afraid just
because you are a "newbie", every one of us was a newbie at one time.'
<Please, no insult intended, I am NOT calling you a newbie!!!>

On a brighter note, I do think the 56800 family is an excellent group of
products, Metrowerks is working hard to fix the bugs in CodeWarrior, and
here at PMC we're getting very close to finishing our work on several
exciting new products using the 56F807 chip. It's also a beautiful, sunny
fall day here in Vancouver, the weekend is close at hand, and I have a
week's vacation next week to work (or actually play) in my garden. Does it
get any better than that?
<rhetorical question>

Best regards,
Art Johnson

PS: The reason you got my answer so fast is that I cheated! As a Moderator
of this group I get to see the members' messages before they are posted to
the group, so I started my reply just after approving your message to go to
the group. So, my answer was sent _before_ your message made it onto the
group (there is some delay at Yahoo, most likely due to the huge number of
messages they have to process). So, I have to admit it, I'm a cheater! :-)

-----Original Message-----
From: Corey, Rick [mailto:]
Sent: Thursday, October 10, 2002 1:13 PM
To: Art Johnson;
Subject: RE: install static NORMAL_ISR_XX in SDK Thanks, Art!

That works. I put my prototypes into both appconfigs, RAM and FLASH.

Page 7-12 of the Programmer's Guide seemed to imply that I should have
added:
#define NORMAL_ISR_14 FISR_CAN_Transmit

However, it only compiled after I got the "F" out.

If you had a nickel for every time you saved someone days of frustration,
you would already be a multi-millionaire.

Thanks again.

Rick Corey

P.S. Daniel Malik promptly reproduced my "#pragma interrupt saveall warn
RTS/RTI" bug and reported it to Metrowerks, so now maybe they will
acknowledge it. After more thought and re-reading Chapter 7 of the
Programmer's Guide a few more times, I think more strongly that the "inline"
and "#pragma interrupt called" factors may be as relevant as the
"auto-inline" and "deferred inline" checkboxes. -----Original Message-----
From: Art Johnson [mailto:]
Sent: Thursday, October 10, 2002 3:29 PM
To: Corey, Rick;
Subject: RE: install static NORMAL_ISR_XX in SDK You have to do the following in the file "appconfig.h":

1) add the following function prototypes:
void ISR_CAN_Transmit(void);
void ISR_CAN_Receive(void);

2) add the following defines:
// Definitions for the J1939 (CANbus) interrupts
//
#define GPR_INT_PRIORITY_14 3
#define NORMAL_ISR_14 ISR_CAN_Transmit
#define GPR_INT_PRIORITY_15 3
#define NORMAL_ISR_15 ISR_CAN_Receive

The above is an example of what we do here, you can change the priority
values to be anywhere from 1 to 7 as required by your system.

The reason you must do this is that the interrupt vector file "vector.c" has
only the following includes:
#include "port.h"
#include "arch.h"
#include "config.h"

The file "config.h" includes the file "configdefines.h", which in turn
includes your file "appconfig.h". So, the interrupt vector file "vector.c"
only "knows" about the function prototypes that are explicitly inside your
file "appconfig.h".

This should solve your problem, but if it doesn't please let me know.

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: Corey, Rick [mailto:]
Sent: Thursday, October 10, 2002 11:59 AM
To: '
Subject: install static NORMAL_ISR_XX in SDK A novice question: what am I missing in installing a normal ISR (not fast),
statically, not dynamically. I'm trying to use the IRQ Dispatcher, but not
the whole driver.

The symptom is that a compile notifies me of "undefined identifiers"
FISR_CAN_Transmit and FISR_CAN_Receive (my ISR function names with an 'F'
pre-pended. It is pramdata.c that can't find my functions.

What is an "approved method" of registering my ISR function with the
dispatcher when I'm not using the SDK *driver*? This would have to occur at
compile time. I tried changing the order of compiling by dragging sections around in the
'Files' pane, and dragging my ISR file above appconfig.h in the 'link order
list". This did not help. I tried compiling my ISR file seperating before
building, no help. It is as if the linker just doesn't see my ISRs.

I would be inclined to patch vector.c by changing 2
"configUnhandledInterruptISR" to by the names of my ISR functions (with or
without an 'F').

I unlocked pramdata.c and pasted in my function prototypes - no change. Of
course, my prototypes don;t have the "F" in them.

Then I realized that I was just shooting in the dark and decided to ask
those who know. I've re-read the 26 pages of Chapter 7 "Implementing
Interrupts using the SDK" multiple times, and searched the Yahoo archive and
looked through Exercise 3-c. So far, I've added this to the bottom of appconfig.h, in both the "external
RAM" tree and the "FLASH" tree. This was all that I // *** set PLRs in GPR (page C-24 803 User Man.)
#define GPR_INT_PRIORITY_14 4 // MSCAN Tx Ready TXEIE
#define GPR_INT_PRIORITY_15 5 // MSCAN Rx Ready RXFIE

// *** the SDK vector table patch follows
#define NORMAL_ISR_14 FISR_CAN_Transmit
#define NORMAL_ISR_15 FISR_CAN_Receive

My ISRs are named ISR_CAN_Transmit & ISR_CAN_Receive. I put them into a
user .c file, not any SDK-defined file.

I have not yet patched archUserISRTable[ ] or archISRType[ ] or vector.c
(because Chapter 7 said not to). Perhaps that documentation assumes that I
am using a #define to include the whole driver, but I'm not.

Thanks in advance.

P.S. I just received an email virus with the subject "correct declaration
in C style" from []. The virus was Exploit-MIME.gen.b or
W32/Bugbear@MM. McAfee found it. Beware! Rick Corey, Software Development
DPC Instrument Systems Division, Flanders NJ




I am sorry that Art Johnson has chosen to use a public forum to defame
Metrowerks. In the same thread he quoted from there are other letters that
dispel these questions about our product. I want to assure everyone that
Metrowerks is totally committed to providing the finest quality development
tools available.

Art has consistently insisted that not putting C constants in P FLASH is a
fatal bug. We disagree with this and feel we have a sound reason for not
putting constants in P Memory and suggested a way to do this in assembler.
Having a dispute over this does not constitute making the worst compiler in
history.

I publicly posted a message in October to the MotorolaDSP list and on the
internet requesting any critical compiler bugs regarding the CodeWarrior for
DSP56800 v5.x be reported so we could be sure they were fixed. Only one
person replied with any reports. We personally contacted Art Johnson and
got all that he considered critical, so we could fix these as soon as
possible.

Now maybe there are more bugs and there always are improvements that can be
made. But judging by the lack of critical problems reported with the
current version of CodeWarrior it would seem the majority of people are
satisfactorily and productively using CodeWarrior for DSP. We are not
claiming to be perfect but it is Metrowerks firm commitment to quality and
to strive for excellence. Towards this end Metrowerks will have an update
for CodeWarrior for DSP56800 later this month.

In September there was another flame war based on our previous version of
CodeWarrior. For that I asked that everyone that felt they hadn't been
treated fairly contact me. I believe that everyone ended up satisfied with
this process, and I offer this as proof that Metrowerks cares about our
customers.

Based on this real evidence and facts of the quality of our product the
number of satisfied customers and the support we provide. I feel quite
confident of Metrowerks commitment to CodeWarrior for quality tools.

So if you have a legitimate grievance please let us know, Please feel free
to contact me personally. I will make sure that the president of Metrowerks
is made aware of the problems. But please keep it civil and please be
realistic.

Thank you for listening.

Ron

--

Ron Liechty,
Ombudsman for Metrowerks Corporation



Ron,

I consider it totally appropriate that customers share their perceptions on
a public forum, as Art does. We need to share our experiences frankly in
order to perform our jobs effectively and be intelligent customers.

Furthermore, I agree with Art completely, that I've never used a commercial
product with as many significant defects as CW for the 56803.

Furthermore, if it were not for the extremely valuable free support that Art
and a few others in this Yahoo group supply for your product on a daily
basis, my company would have had no choice but to dump the 803 chip out of
our design (at great cost in lost time) and start over from scratch with a
TI DSP.

Critical Bugs:

Ron:
>> Only one person replied with any reports. <<

Was I the *only* person who responded? Perhaps we are partly to blame
that we only complain to each other, and do not spend the hours of time
required to get even an acknowledgment from Metrowerks of problems that we
are very aware of.

Perhaps that has come about because asking a question in this forum
invariably gets rapid, well-informed responses, often with workarounds and
sample code, and time spent sending information to Metrowerks does not.

My own biggest beef was that "pragma interrupt saveall" did not even put an
RTI into an ISR. That may not meet your criteria for a "critical compiler
bug", but it does meet my criteria. For that bug to not be listed in large
print in an errata list is amazing to me. For it to exist at all in version
5 of a product was amazing. It required repeated Emails and extremely
detailed explanations from me to even get Metrowerks to acknowledge the
problem. This is not a "finest quality issue", it is a gross bug which
could hardly have escaped any adequate testing process.

Another potentially critical debugger issue is that putting a breakpoint on
a line like
if (pointer == NULL)
will cause the test to branch the wrong way sometimes.

I would not have thought that anyone who followed the messages in this forum
could be unaware of multiple serious defects, whether or not they were
called "critical".

In my offline conversations with you, I've agreed that Metrowerks is
probably working as hard as they can to address major problems. However, I
am certainly not "satisfactorily and productively using CodeWarrior for
DSP". If you took that impression from anything I've said, I'm sorry that
you got the opposite impression from the facts. CodeWarrior's poor quality
has almost sunk a project critical to my company.

I recently got beat up by my boss and her boss for being eight weeks late on
a five week deadline (entirely because the CW compiler/debugger is of such
terrible quality). Without the SDK, the CW compiler would be completely
unusable.

Without the support received from this group, it would still be completely
unusable. I've gotten infinitely better support from this group, and Art
Johnson in particular than from Metrowerks. I've even gotten better support
from Motorola for working around problems with CW tools, than I have gotten
from Metrowerks. "finest quality"

I'm sure that Metrowerks is "totally committed to providing the finest
quality development
tools available", in your words.

However, in my experience, the quality of 5.02 is by far the worst of any
commercial software product I've used in 20 years of software development,
including freeware. I'm sorry to be so blunt, but I have to take issue with
any reference to "finest quality" in connection with this tool.

For the 56803, my company is using CW only because it is the only commercial
tool available. We keep looking for another vendor, because we need a
commercial-quality tool immediately, and Metrowerks has not delivered that
yet. If we had known the quality of 5.02, we would certainly not have
designed this chip into our current biggest project.

I appreciate Metrowerks' efforts to improve their product, and understand
how limited resources can result in delays in addressing known problems.
Presumably the 5680x family does not have a high enough volume yet to gain
higher priority with Metrowerks or other compiler vendors. We're lucky to
have an option besides assembler.

The only sense in which I was "satisfied" with Metrowerks was that you
convinced me that they were working as hard as their resources permitted on
many known, serious problems. However, if the Metrowerks attitude is that
there are no known critical issues, I am very deeply disappointed and
seriously concerned for the future of our project using the 56803. Regretfully,
Rick Corey -----Original Message-----
From: MW Ron [mailto:]
Sent: Wednesday, December 04, 2002 9:06 AM
To: Art Johnson; Tom Burrell; Coldfire CPU Discussion List
Cc: Corey, Rick; ; Kevin Ackerley (E-mail);
Ed Baillie (E-mail); Ken Andreasen; JB Bjorknas; Greg Clark; Greg
Coonley (E-mail); Dick Fons (E-mail)
Subject: Re: Development tools for MCF5307
I am sorry that Art Johnson has chosen to use a public forum to defame
Metrowerks. In the same thread he quoted from there are other letters that
dispel these questions about our product. I want to assure everyone that
Metrowerks is totally committed to providing the finest quality development
tools available.

Art has consistently insisted that not putting C constants in P FLASH is a
fatal bug. We disagree with this and feel we have a sound reason for not
putting constants in P Memory and suggested a way to do this in assembler.
Having a dispute over this does not constitute making the worst compiler in
history.

I publicly posted a message in October to the MotorolaDSP list and on the
internet requesting any critical compiler bugs regarding the CodeWarrior for
DSP56800 v5.x be reported so we could be sure they were fixed. Only one
person replied with any reports. We personally contacted Art Johnson and
got all that he considered critical, so we could fix these as soon as
possible.

Now maybe there are more bugs and there always are improvements that can be
made. But judging by the lack of critical problems reported with the
current version of CodeWarrior it would seem the majority of people are
satisfactorily and productively using CodeWarrior for DSP. We are not
claiming to be perfect but it is Metrowerks firm commitment to quality and
to strive for excellence. Towards this end Metrowerks will have an update
for CodeWarrior for DSP56800 later this month.

In September there was another flame war based on our previous version of
CodeWarrior. For that I asked that everyone that felt they hadn't been
treated fairly contact me. I believe that everyone ended up satisfied with
this process, and I offer this as proof that Metrowerks cares about our
customers.

Based on this real evidence and facts of the quality of our product the
number of satisfied customers and the support we provide. I feel quite
confident of Metrowerks commitment to CodeWarrior for quality tools.

So if you have a legitimate grievance please let us know, Please feel free
to contact me personally. I will make sure that the president of Metrowerks
is made aware of the problems. But please keep it civil and please be
realistic.

Thank you for listening.

Ron

--

Ron Liechty,
Ombudsman for Metrowerks Corporation


Ron, going back over my records of all the problems we have had, the "const in P
memory" bug was a very small tip of a very big iceberg. Even if it was removed
from the list, that only constituted 2 weeks out of the 8 months our product
launches have been delayed.

When the CPU was being chosen for all of our new designs, the two finalists were
the ColdFire family and the DSP56800 family. I have been told very bluntly by
senior management that if we had known about these sorts of problems back then,
that the ColdFire family would have been the winner. It still may turn out that
way.

As you know, anytime that CodeWarrior is unfairly blamed for some problem, I am
the first one on the discussion group to point out that the fault does not lie
with CodeWarrior. One example of this was the "Reset and One Vector" bug
report, in which I spent over 6 hours of my extremely limited personal spare
time to prove that the problem did not lie with CodeWarrior. So, to say that I
am "unfairly defaming" CodeWarrior simply does not hold water. Absolutely
everything I have said is very well documented here, although for
confidentiality reasons I am not permitted to make this information available
outside our company.

I do feel a personal responsibility to voice my opinions and experiences based
on my 31+ years of hardware design experience, and 26+ years of software
development experience. I would hope that if I had asked these sorts of
questions during the time we were choosing the CPU family for our new products,
that the members of these discussion groups would give their honest and
unvarnished opinions and experiences of the hardware and software products being
discussed.

Sincerely,

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: MW Ron [mailto:]
Sent: Wednesday, December 04, 2002 6:06 AM
To: Art Johnson; Tom Burrell; Coldfire CPU Discussion List
Cc: Corey, Rick; ; Kevin Ackerley (E-mail);
Ed Baillie (E-mail); Ken Andreasen; JB Bjorknas; Greg Clark; Greg
Coonley (E-mail); Dick Fons (E-mail)
Subject: Re: Development tools for MCF5307
I am sorry that Art Johnson has chosen to use a public forum to defame
Metrowerks. In the same thread he quoted from there are other letters that
dispel these questions about our product. I want to assure everyone that
Metrowerks is totally committed to providing the finest quality development
tools available.

Art has consistently insisted that not putting C constants in P FLASH is a
fatal bug. We disagree with this and feel we have a sound reason for not
putting constants in P Memory and suggested a way to do this in assembler.
Having a dispute over this does not constitute making the worst compiler in
history.

I publicly posted a message in October to the MotorolaDSP list and on the
internet requesting any critical compiler bugs regarding the CodeWarrior for
DSP56800 v5.x be reported so we could be sure they were fixed. Only one
person replied with any reports. We personally contacted Art Johnson and
got all that he considered critical, so we could fix these as soon as
possible.

Now maybe there are more bugs and there always are improvements that can be
made. But judging by the lack of critical problems reported with the
current version of CodeWarrior it would seem the majority of people are
satisfactorily and productively using CodeWarrior for DSP. We are not
claiming to be perfect but it is Metrowerks firm commitment to quality and
to strive for excellence. Towards this end Metrowerks will have an update
for CodeWarrior for DSP56800 later this month.

In September there was another flame war based on our previous version of
CodeWarrior. For that I asked that everyone that felt they hadn't been
treated fairly contact me. I believe that everyone ended up satisfied with
this process, and I offer this as proof that Metrowerks cares about our
customers.

Based on this real evidence and facts of the quality of our product the
number of satisfied customers and the support we provide. I feel quite
confident of Metrowerks commitment to CodeWarrior for quality tools.

So if you have a legitimate grievance please let us know, Please feel free
to contact me personally. I will make sure that the president of Metrowerks
is made aware of the problems. But please keep it civil and please be
realistic.

Thank you for listening.

Ron

--

Ron Liechty,
Ombudsman for Metrowerks Corporation


I have intentionally tried to stay away from this discussion concerning quality of the toolset, since this is my first forray into the Motorola/Metrowerks toolset in over 20 years.  I have a 29 year history of developing products starting with doing logic with discrete transistor alu's, micro-programmed IC's, to 8-bit through 32 bit micrpprocessors, thus, I have seen a lot of hardware.  In our business we are constantly faced with the tradeoff between high-level language programming and "C."  Whether it is the quality of the compiler, or the quality of the programmers who are producing the compiler features, or the quality of the management team controlling the development and marketing of the toolset, the real issue is whether or not the toolset is adequate to get the job done.
 
What amazes me about the current compiler war, is that while the marketable feature list is long, and there are impressive GUI interfaces, when I change the optimization setting from compile for speed, to compile for size, or any of the points in between, the size of the object code does not change by a single word!!!  I then ask myself is this all window dressing?  Is this a warmed over interface, that was designed for 32-bit processors?  Are the instruction set, and register set totally misunderstood by the compiler writers?  Do they have no concept for dealing with the trade-off between speed and size on this processor?  Perhaps there is no trade-off that can be conceived by a programming/management team that may be doing this as a favor to Motorola!!!
 
The bottom line is this:  As long as the assembler generates the correct bit patterns for the documented instructions, in the real world of getting code working, products can be produced.  As Art has pointed out.
 
Whenever I get code that is wrong, or fails, I will tend to revert to assembler.  To some of you, that is patent heresy!  I know that, but I refuse to believe that the only way to write code, is to use "C."
 
My biggest complaint is that the decision has been made, early on it would appear, to not publish the opcodes, and open the door to competition such as the GNU compiler.  While this makes it difficult for us assembly language hackers to assist in debugging the compiler output, it also means that the compiler writers are not on a level playing field, and there are few incentives to invest in the development of good optimization techniques.
 
Right now, I may have to re-write our proprietary boot loader in assembler, since the original code (written under version 4), now no longer fits into boot flash when compiled by version 5.0.2!!!  It overflows by 75 words, and the increase in size was over 10%.
 
Respectfully,
 
Jerry L. Johnson (JJ)
Sheffield Automation, LLC
Fond Du Lac, WI
j...@giddings.com
-----Original Message-----
From: MW Ron [mailto:m...@metrowerks.com]
Sent: Wednesday, December 04, 2002 8:06 AM
To: Art Johnson; Tom Burrell; Coldfire CPU Discussion List
Cc: Corey, Rick; m...@yahoogroups.com; Kevin Ackerley (E-mail); Ed Baillie (E-mail); Ken Andreasen; JB Bjorknas; Greg Clark; Greg Coonley (E-mail); Dick Fons (E-mail)
Subject: [motoroladsp] Re: Development tools for MCF5307



Hi All,

This reply from Ron makes me sick. Maybe Ron needs to get out of his
cozy little shell and dig a little deeper.

I have reported bugs that other people have reported as bugs and
nothing has been done about them. I have wasted a lot of our
company's product development time, as Art Johnson has, finding and
making "work arounds" for bugs. Also wasting time with Metrowerks
Tech support trying to report them so the product would be better.
But to little or no satisfaction because things just get dropped.

Ron's post a while back where they want the "critical compiler bugs"
is a joke. How about all bugs including the ones we have to find and
make work arounds for? ("just report them through normal channels" so
they can get dropped again?) That post got me going but the one
below needed a response.

Until Metrowerks gets someone to seriously look into bugs other than
the lower echelons of the Tech Support System nothing will really get
better than the mediocre level at which it is now. Maybe the Tech
Support people need a better way to raise the level of an issue when
they see something that looks bad but do not have the time or maybe
the knowledge to get to the bottom of it.

Pete

PS: How about this little "CWirk" of CW that I just received, while
writing the above, from a contract developer working for us.

You just need to change dvc_gpio.h to dvc_io.h, iodyn_config.h to
io_dyn_cfg.h in every source file where it applies. Strictly speaking
my builds should not compile without errors. I think that the IDE
caches the headers so when I changed the file names and forgot to
change the names in the source files the IDE used the cached
versions. This is a little upsetting because before every build I
select "remove object code; recurse subtarget and subprojects;
compact target" which I thought cleared every cache. --- In motoroladsp@y..., MW Ron <mwron@m...> wrote:
>
> I am sorry that Art Johnson has chosen to use a public forum to
defame
> Metrowerks. In the same thread he quoted from there are other
letters that
> dispel these questions about our product. I want to assure everyone
that
> Metrowerks is totally committed to providing the finest quality
development
> tools available.
>
> Art has consistently insisted that not putting C constants in P
FLASH is a
> fatal bug. We disagree with this and feel we have a sound reason
for not
> putting constants in P Memory and suggested a way to do this in
assembler.
> Having a dispute over this does not constitute making the worst
compiler in
> history.
>
> I publicly posted a message in October to the MotorolaDSP list and
on the
> internet requesting any critical compiler bugs regarding the
CodeWarrior for
> DSP56800 v5.x be reported so we could be sure they were fixed.
Only one
> person replied with any reports. We personally contacted Art
Johnson and
> got all that he considered critical, so we could fix these as soon
as
> possible.
>
> Now maybe there are more bugs and there always are improvements
that can be
> made. But judging by the lack of critical problems reported with
the
> current version of CodeWarrior it would seem the majority of people
are
> satisfactorily and productively using CodeWarrior for DSP. We are
not
> claiming to be perfect but it is Metrowerks firm commitment to
quality and
> to strive for excellence. Towards this end Metrowerks will have an
update
> for CodeWarrior for DSP56800 later this month.
>
> In September there was another flame war based on our previous
version of
> CodeWarrior. For that I asked that everyone that felt they hadn't
been
> treated fairly contact me. I believe that everyone ended up
satisfied with
> this process, and I offer this as proof that Metrowerks cares about
our
> customers.
>
> Based on this real evidence and facts of the quality of our product
the
> number of satisfied customers and the support we provide. I feel
quite
> confident of Metrowerks commitment to CodeWarrior for quality tools.
>
> So if you have a legitimate grievance please let us know, Please
feel free
> to contact me personally. I will make sure that the president of
Metrowerks
> is made aware of the problems. But please keep it civil and please
be
> realistic.
>
> Thank you for listening.
>
> Ron
>
> --
>
> Ron Liechty, MWRon@m...
> Ombudsman for Metrowerks Corporation





Pete Becher wrote:

> This reply from Ron makes me sick. Maybe Ron needs to get out of his
> cozy little shell and dig a little deeper.
>
> I have reported bugs that other people have reported as bugs and
> nothing has been done about them.

Perhaps we are just a but slower reacting but I can assure you that things
are being done and there is a new patch that is imminent that fixes many
reported problems

> Ron's post a while back where they want the "critical compiler bugs"
> is a joke.

No it wasn't. You see Metrowerks really does follow through on these things
so perhaps you assumed by past history with other firms that this was just
PR but it wasn't it was real. Those that sent in their critical bugs are
getting them fixed.

> How about all bugs including the ones we have to find and
> make work arounds for? ("just report them through normal channels" so
> they can get dropped again?) That post got me going but the one
> below needed a response.

Alas the non-critical bugs will be fixed in a future version, with
Metrowerks we have a lower upfront cost but have regular updated versions.
I know that this is a model that many embedded developers are not familiar
with and I think this may be a point of contention.

> Until Metrowerks gets someone to seriously look into bugs other than
> the lower echelons of the Tech Support System nothing will really get
> better than the mediocre level at which it is now.

When you write to me and when I reply as ombudsman of Metrowerks you an be
assured that this is going to be investigated and there will be a report
sent to senior management.

> PS: How about this little "CWirk" of CW that I just received, while
> writing the above, from a contract developer working for us.

This looks like the person was using a precompiled header and didn't
re-precompile it. If you can send me more information on it, (if indeed
that is not the case) I will look into it. It really does not make sense
in the way it is described unless there was a precompiled header involved.

Ron

> You just need to change dvc_gpio.h to dvc_io.h, iodyn_config.h to
> io_dyn_cfg.h in every source file where it applies. Strictly speaking
> my builds should not compile without errors. I think that the IDE
> caches the headers so when I changed the file names and forgot to
> change the names in the source files the IDE used the cached
> versions. This is a little upsetting because before every build I
> select "remove object code; recurse subtarget and subprojects;
> compact target" which I thought cleared every cache.

--
Can you really afford not to use CodeWarrior 8.3 ?
Faster Compiles, Improved Code Generation, Updated IDE for OS X 10.2
http://www.metrowerks.com/MW/Support/Download/default.htm

Ron Liechty - - http://www.metrowerks.com

--
Can you really afford not to use CodeWarrior 8.3 ?
Faster Compiles, Improved Code Generation, Updated IDE for OS X 10.2
http://www.metrowerks.com/MW/Support/Download/default.htm

Ron Liechty - - http://www.metrowerks.com



--- In motoroladsp@y..., MW Ron <mwron@m...> wrote:
> Pete Becher wrote:
>
> > PS: How about this little "CWirk" of CW that I just received,
while writing the above, from a contract developer working for us.
>
> > You just need to change dvc_gpio.h to dvc_io.h, iodyn_config.h to
> > io_dyn_cfg.h in every source file where it applies. Strictly
speaking
> > my builds should not compile without errors. I think that the IDE
> > caches the headers so when I changed the file names and forgot to
> > change the names in the source files the IDE used the cached
> > versions. This is a little upsetting because before every build I
> > select "remove object code; recurse subtarget and subprojects;
> > compact target" which I thought cleared every cache.
>
> --


> This looks like the person was using a precompiled header and didn't
re-precompile it. If you can send me more information on it, (if
indeed that is not the case) I will look into it. It really does
not make sense in the way it is described unless there was a
precompiled header involved.
>
> Ron
>

Hi Ron,

The following is the response from our developer.

>I didn't explicitly set out to create a precompiled header and I
don't think that I followed the procedure below (CW help on
procompiled headers) by accident. In the Windows and AVR programming
environment using precompiled headers is a build option that can be
selected with a check box and file name. That is what I would have
tried to do first. So I'm confused.

So it looks like it "just happened".

Pete




CodeWarrior for DSP Warriors.

A lot of constructive comments were made in the past couple days and one
that struck me deeply was that Metrowerks was not communicating well with
our users as to what were were doing.

We had hoped to have a patch out next week but a bug was found which makes
us have to do regression testing all over after the fix (since bug fixes
have habits of creating new bugs elsewhere). So the earliest possible date
that we can release this patch is December 18th.

Also due to Motorola shutting down over the holidays, so the employees can
spend time with families, this means that if we find another unexpected bug
that it will be delayed until the first of January.

However in order to communicate better with you, these are the bugs that are
fixed in the 5.03 patch. Please note that there is a 5.1 upgrade expected
in the first quarter of next year that will have improvements and more less
severe bugs fixed in it.

WB1-30992 An extra long line or a line continuation within an expression
or assignment statement causes internal compiler error: 'Registers.c' Line:
385
WB1-31351 IDE crashes during the compiling of inline asm BRA instruction
(error should be generated)
WB1-31735 Using the "Deferred Inlining" option (C/C++ Language) with 2
interrupts, the compiler doesn't generate a correct code
WB1-38509 The compiler generates a wrong code for the operation of 2
tables
WB1-39699 do instruction is generated even when "Allow DO insturctions"
is off
WB1-30429 DSP56F80x MetroWerks compiler bug in function call arguments.
WB1-38232 Test fails for int13.c test
WB1-38233 Test fails for mix10.c test when Peephole Optmization option
is ON
WB1-38235 Test fails for ne.c test
WB1-38237 Test fails for quest.c test.
WB1-38242 Test case returns failed result with Global Opt level at L2 and
up
WB1-38245 The test case fails when MSL hostIO library is built with
Global Opt at L2 and up.
WB1-38329 Multiplication and Parameter Passing Defects with Global Opt
2,3,4
WB1-38593 The compiler crashes and closes the IDE for a particular
statement
WB1-37594 Optimization for constant pointers lost between version 4 and
version 5 of the compiler
WB1-39740 Output is wrong with Optimization level two or up.

I hope that this gives you confidence that we are doing as much as we can as
quickly as we can to provide useful quality tools. Again many things will
be improved in our 5.1 upgrade but I think we have the critical bugs hit
with this patch.

Thanks

Ron

Ron Liechty
Ombudsman for Metrowerks



As a follow up to Ron's post regarding the 5.0.3 patch. The patch is
now available on our website at:

http://www.metrowerks.com/MW/Support/Download/default.htm

The several bugs that are fixed with this patch release are listed on
the website for your information so I will not repeat it all here.

Just wanted to post and follow up to show we are being responsive to
customer's needs.

Happy Holidays everyone!

Regards,
John
--- In , MW Ron <mwron@m...> wrote:
>
> CodeWarrior for DSP Warriors.
>
> A lot of constructive comments were made in the past couple days
and one
> that struck me deeply was that Metrowerks was not communicating
well with
> our users as to what were were doing.
>
> We had hoped to have a patch out next week but a bug was found
which makes
> us have to do regression testing all over after the fix (since bug
fixes
> have habits of creating new bugs elsewhere). So the earliest
possible date
> that we can release this patch is December 18th.
>
> Also due to Motorola shutting down over the holidays, so the
employees can
> spend time with families, this means that if we find another
unexpected bug
> that it will be delayed until the first of January.
>
> However in order to communicate better with you, these are the bugs
that are
> fixed in the 5.03 patch. Please note that there is a 5.1 upgrade
expected
> in the first quarter of next year that will have improvements and
more less
> severe bugs fixed in it.
>
> WB1-30992 An extra long line or a line continuation within an
expression
> or assignment statement causes internal compiler
error: 'Registers.c' Line:
> 385
> WB1-31351 IDE crashes during the compiling of inline asm BRA
instruction
> (error should be generated)
> WB1-31735 Using the "Deferred Inlining" option (C/C++ Language)
with 2
> interrupts, the compiler doesn't generate a correct code
> WB1-38509 The compiler generates a wrong code for the operation
of 2
> tables
> WB1-39699 do instruction is generated even when "Allow DO
insturctions"
> is off
> WB1-30429 DSP56F80x MetroWerks compiler bug in function call
arguments.
> WB1-38232 Test fails for int13.c test
> WB1-38233 Test fails for mix10.c test when Peephole
Optmization option
> is ON
> WB1-38235 Test fails for ne.c test
> WB1-38237 Test fails for quest.c test.
> WB1-38242 Test case returns failed result with Global Opt level
at L2 and
> up
> WB1-38245 The test case fails when MSL hostIO library is built
with
> Global Opt at L2 and up.
> WB1-38329 Multiplication and Parameter Passing Defects with
Global Opt
> 2,3,4
> WB1-38593 The compiler crashes and closes the IDE for a
particular
> statement
> WB1-37594 Optimization for constant pointers lost between
version 4 and
> version 5 of the compiler
> WB1-39740 Output is wrong with Optimization level two or up.
>
> I hope that this gives you confidence that we are doing as much as
we can as
> quickly as we can to provide useful quality tools. Again many
things will
> be improved in our 5.1 upgrade but I think we have the critical
bugs hit
> with this patch.
>
> Thanks
>
> Ron
>
> Ron Liechty
> Ombudsman for Metrowerks
> MWRon@m...