-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Vitaliy wrote: > Back in July, there was a discussion titled "[PIC] Is C18 really this > stupid?", where it has been conclusively proven that C18 sucks (which > generally matches our experience). :) It produces rather inefficient > assembler code, and the fact that the libraries are no longer supported is > disheartening. > > So I'm wondering if people can share their experiences using third party > compilers for the PIC18: SDCC, CCS, HI-TECH, CC8E, BoostC, mikroC, IAR (any > others I've missed?) I've used mikroC and it is the single worst compiler I have ever seen. I don't know whether or not it doesn't like the 18f4620 - the chip I started to build a project with (before switching to C18). There are bugs _everywhere_. Occasionally you must add 256 (for an unsigned char) if you want to successfully pass it to a function without complete and random corruption. I once tried to use function pointers with mikroC - that always ended with broken code. > Specifically, > > - How stable is it (bugs)? Apparently there are a few bugs in C18 - the only one I encountered was fixed about a month after I reported it. To be fair, I was doing something probably pretty crazy on such a small uC - doing about 40 pointers to structs in a kindof tree fashion. Don't get me started on mikroC! > - How well does it integrate with MPLAB? microC doesn't at all - C18 does. > - How good are the libraries? mikroC's libraries are supposedly fantastic, shame that I got too many bugs in the lower level code to even consider adding the higher level libraries. C18's are far more standard and they do the job. > - How does its performance compare to the C18, and other compilers? mikroC takes ~1minute for a 9KB program - a little slower than C18 I guess. > > RUMORS > > - SDCC is buggy > - HI-TECH blows SDCC out of the water in terms of performance I just wish I could afford HI-TECH! One thing I'm noticing with C18 is that it throws nops in everywhere! I'm not sure if it's because I use the free version without optimizations; however, it shouldn't be de-optimising, should it? Also note that with C18 it's best to enable 'large stack pointers' - it makes code so much easier to write. That choice should really be done by the compiler on a per-function basis, but I can't complain - it's free after all. Then again, for my next project I'm pretty certain that I'll try out the AVRs *takes cover* - simply because I can use JTAG and GCC. Okay that post was a bit of a spiel but I feel I had to voice my opinion of mikroC. - -- Brendan Gillatt brendan {at} brendangillatt {dot} co {dot} uk http://www.brendangillatt.co.uk PGP Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xBACD7433 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (MingW32) iD8DBQFHFM4ckA9dCbrNdDMRAvFHAJ4vrZZLnDsPy3sCut97u8+IqAJA/wCgmQkh LjnMttiNCK3g/4vCOq8Ba3s= =hjrC -----END PGP SIGNATURE----- -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist