??? 03/16/05 13:55 Read: times |
#89772 - SDCC Responding to: ???'s previous message |
Jez Smith said:
Why for a student? am confused explain in what way sdcc is more suited to a student than any other compiler. I'd say the biggest thing is cost. SDCC is obviously free which fits a student's budget nicely. I haven't used anything but assembler on the 8051 for the last 8 years or so but I've chosen to use 'C' on a project I'm working on now. It seemed like a good candidate: We ended up with more program memory than we needed such that the code density I could achieve in assembly wasn't strictly necessary. With memory to burn, I could reduce the development time by coding in 'C' rather than assembly. The customer is on a budget and wouldn't be willing to spend money on development tools and I didn't want to provide code that he couldn't compile later. So I figured I'd give SDCC a shot and see what happens. So far, it's working. Looking at the assembly language it generates I do see plenty of inefficiency that I assume professional packages would be better at optimizing. But for a free option it's been behaving pretty well. A version of SDCC I tried some years ago was just plain buggy and produced buggy code--which pretty much guaranteed I wouldn't use it. But in 2005, it seems the problems have been resolved. Thusfar I haven't had any instances of it producing non-functional code. The advantage of using 'C' (for me) is somewhat diminished by using SDCC. Since I'm still skeptical, I find myself going back and inspecting the assembly language code it generates. But if it continues to be well-behaved I'm sure I'll be doing less and less of that. The other problem I have with SDCC is that while there is a manual, it is very, very minimal. It only seems to answer the most basic questions--but those are questions most people won't need to ask in the first place. The more in-depth issues don't seem to be addressed and I ended up having to Google for information on the underlying assembler in order to accomplish something that should have been explained in the SDCC documentation. The SDCC forum is also quite slow and many questions posted to the forum go completely unanswered--I'm starting to understand why we see people posting SDCC questions here. Anyway, I'll let you all know what I find as I continue to try to use SDCC. Once I'm done I'll probably end up trying to compile the same code under Keil and Raisonance to get a good real-life idea of code optimization on each. If I find myself with a lot of extra time (doubtful) I may even eventually code the same thing in assembly to get an idea of how the 'C' compilers compare to the efficiency of writing the same program in assembly. Regards, Craig Steiner |