I do wish people would not use the term 'technology' in relation to software. LCD is a technology, semi-conductors are a technology but tweaking a bit of software isn't.
Nowhere is this myth better exploded than in the field of software. it matters not how much or how little you pay, software is always riddled with bugs.
I've found mspgcc (gcc for the msp430) quite good enough for everthing I've had to do with it so far (for 3+ years). It could do with a nice IDE (a bit less cumbersome than eclipse), but whatthehell. It's at least as bug- free as the commercial 8051 C compiler that I bought for £300 on special offer. But that has an IDE.
If this is true then the net effect is that the bugs don't mater when considering which software to use. Therefor other criteria should be chosen. e.g. how maintainable is the software, how well does it convert the input to highly optimised output, how much time does it save.
I have had to maintain some open source software and I have been appaulled at how increadibly bad (internally) some of it is.
If you choose to use a compiler that generates poorly optimised code then you pay for it in other ways. You might need to use faster MCUs, more memory (code and/or RAM), write more complex high level code (longer to develope and maintain) and finally you might even need to resort to writing critical sections in assembler.
You do get what you pay for it's just that sometimes the people that make the decissions are too poorly educated to understand the real costs of those decissions.
Regards Sergio Masci
formatting link
- optimising PIC compiler FREE for personal non-commercial use
.
Tweaking might be used to describe improving performance of a program by changing a table of 16 bit words to 32 bit words or moving a loop control variable to a register for faster execution but no way can you even remotely suggest that the Sun compiler is merely a "tweak" of the GCC compiler. Such a suggestion shows that you only have a superficial understanding of software.
Regards Sergio Masci
formatting link
- optimising PIC compiler FREE for personal non-commercial use
.
"Seriously. Its hard to beat free. People made a choice, and it seems to be that the majority want "free", and don't care about quality. "
Its more risk reduction, if you have two options, pay $$$ and get a compiler that may or may not fulfill your needs, or pay nothing and get a compiler that may or may not fulfill your needs, option 2 has less risk.
sdcc is a different compiler. It's not bad, and it's not good yet, but it does do a whole host of 8-bitters.
Plus, you can add your own peephole optimisations without recompiling the compiler, which has some ... interesting ... possibilities.
cheers, Rich.
--
rich walker | Shadow Robot Company | rw@shadow.org.uk
technical director 251 Liverpool Road |
need a Hand? London N1 1LX | +UK 20 7700 2487
www.shadow.org.uk/products/newhand.shtml
Even better, sell the 8051 assets to someone incompetent, who will surely drive it into the ground. Actually, its probally easier to find a company like that than one who WILL make a good competitor.
You may be right for small chips. I don't recall being impressed by the compiled output for 8 and 16 bit low end processors by commonly available tools. I have been in high end cpus for 15 years now, and we live and die by compiler efficiency. For example, vectorizing compilers are mandatory here.
Perhaps what that means is that the high end superscalar processors are going to take over most embedded apps, I don't know. ARM is superscalar, no ?
GCC for the AMD 64 bit series came from AMD themselves. I used the compiler for a short while. I don't know if it vectorizes or performs other "heroic" measures, but I'm betting AMD put a lot of work into it.
Actually, Sun is in fact open sourcing just about everything that is not nailed down :-)
Different code base. GCC is pretty much biased towards "address equals data" processors, that is, processors that can keep an address or data in any register, and don't need to (say) use two registers together to form an address.
That fit the archtecture that GCC was going for. Other projects are there to cover the low end.
And to be fair, it sounds like I am knocking compilers like GCC, and I am really not. I'm a big fan of GCC and GNU products in general.
Why ? Because I have this library of about a foot worth of books, and long experience with the GNU tools like GCC, make and friends. If I take a different job with a new company, they are either using those tools already, or they don't care if I download them and start using them. I am productive from day one. I can even, as I have done previously, reprogram the GCC compiler for a new processor.
GNU has standardized the industry. That's the real power of GNU.
My understanding is (which could be completely wrong), that Sun's internal compiler shares no code at all with GCC.
Usual warning: I don't speak for Sun, the state of California, the USA, the world, rational people, animals, trees, sentient beings, dead people, or often, even myself.
When I worked on AVRs, I used gcc and two different commercial compilers (both of which are still in business). Over the course of about 4 years, I found two code generation bugs in one of the commercial compilers, one in the other, and an in-line assembly interface bug in gcc. The bugs in the first commercial compiler were fixed quickly (one day in one case, less than a week in the other), and the gcc bug had been previously found and was fixed by a simple patch. The other commercial compiler company never responded to the bug report, and AFAIK, never fixed the bug (which is one of the reasons we had a second commercial option -- but I digress).
I recently used gcc for a ColdFire project, and it was flawless. I had no commercial compiler to compare it with, however, except a trial version of Metrowerks I didn't bother to even install.
I'll call it a draw.
One huge advantage to gcc is lack of copy protection. Seriously. _Very_ seriously. I just inherited an update to a project that was originally developed four years ago. The compiler (a commercial product you praised in another message) is copy protected using FLEXlm. The vendor is trying very hard to help, but I'm trying to install version X, and they changed something at version Y such that they can't seem to generate for me a key that will allow earlier versions, such as mine, to run. I've been trying to get this to work since Tuesday. We're not done yet. We're both lucky that this project isn't in a time crunch. I'd be furious that I couldn't run a tool my employer legally purchased. As it is, I'm none too pleased.
Installing and running gcc is trivial. I can even check it into revision control. Future maintainers can just copy it onto their machine and run it. No muss, no fuss. Huge.
In summary, maybe gcc isn't perfect, but no commercial offering is either. Maybe it doesn't wring the last 2% out of CPU performance or memory space, but it's good enough. And its other virtues more than compensate for these failings.
Upgrade your workstation? Have to pay the compiler vendor. Still the same guy running the same version as always, but you've got to pay the compiler vendor for the privledge of replacing a broken computer. Then of course there's the usual N-week delay while you get a PO cut, and another M-week delay while you fight it out with the friggen' key manager deamon software that refuses to work right.
I swore I'd never use node-locked toolchains after that. So far I've kept my promise...
Definitely huge.
My E and O as well.
--
Grant Edwards grante Yow! I know how to get the
at hostesses released! Give
visi.com them their own television
series!
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.