[time-nuts] I want a good micro-controller

Didier Juges didier at cox.net
Sat Aug 16 01:30:25 UTC 2008


Rob,

I have been using the Keil compiler for work and home for about 15 years and
only recently started using SDCC for home. They both do a fine job, even
though SDCC still goes through some growing pains. 

I agree that having to keep track of data, idata and xdata is not a
desirable feature by any stretch of the imagination, but with a little bit
of discipline (and experience certainly does not hurt) you know what's
critical and what's not, and unless you are trying to get the last
microounce of performance or you are using a very small device, use the
large memory model and fuget about it :-)

Of course, if you take C code written for the PC (or for a multitasking OS)
and try to run it as is on an 8051, you will quickly get out of stack and
other resources, but no responsible coder would do that.

One could argue that the lack of code migration to a 16 or 32 bit platform
hurt the architecture, but it's only since we have started to put an
ethernet interface and a TCP/IP stack that we have come close to the 64k
limit (without code banking, which I would rather not have to do). I am
debating at the moment if my next TCP/IP project will use the 8051 or if we
will go to a 32 bit chip directly, and if so, the field is wide open.

Code performance has not been an issue for me, and I suspect that with the
100 MIPs of the Silabs C8051F120, I won't get close to the limit any time
soon. 

I started on the 8051 with the 87C552 15 years ago, but recently I kinda
standardized on the Silabs familly. They have a good range, with excellent
performance, good tools and good support, so at the moment (aside from the
TCP/IP applications) I have no plan to switch.

73,
Didier KO4BB

> -----Original Message-----
> From: time-nuts-bounces at febo.com 
> [mailto:time-nuts-bounces at febo.com] On Behalf Of Robert Vassar
> Sent: Friday, August 15, 2008 7:08 PM
> To: Discussion of precise time and frequency measurement
> Subject: Re: [time-nuts] I want a good micro-controller
> 
> Didier,
> 
> 
> "Goofy" is certainly an inappropriate engineering term.  As I 
> see it, the MCS-51 is ill suited to programming with a C 
> compiler because of the small stack size and segmented RAM 
> map.  This makes writing an efficient code generator more 
> difficult, and you have to keep certain limitations in mind 
> while coding.  These things don't make it impossible though, 
> and I agree it's easier with SDCC than in pure ASM.  Keil C 
> is the benchmark by which all others are judged, but it costs 
> several hundred $USD.
> 
> The AVR has a nice flat memory map, plenty of registers, 
> etc... It's just easier to write a compiler for.  That isn't 
> necessarily a benefit, as most of us are never going to write 
> a compiler.
> 
> 
> The PIC... I have no nice words for the PIC.  It's a CPU 
> architecture kept alive by Donald Rumsfeld himself (He was 
> the CEO of G.I. back in the '70's), and surely he must have 
> made a deal with the Devil to make it as successful as it is. 
>  How's that for a religious argument? :-)
> 
> 
> Having said all that... Looking thru my parts box, I have ~20 
> MCS-51 variants, ranging from the original i80C31 that I 
> learned on back in the mid-80's to a couple 89C450's and a 
> AT89C51ED2 in 40 pdip that I wish I had a few more of.  I 
> have a couple Z80's, an 8085, 68000, 68020, none of which are 
> particularly useful anymore.  Then there's that one lone 
> 16F84 PIC and it's programmer, which I think I used once.
> 
> 
> Cheers,
> 
> Rob
> KC6OOM/5
> 
> 
> On Aug 14, 2008, at 9:51 PM, Didier Juges wrote:
> 
> > I am not sure what you mean about the 8051 being goofy to 
> program in 
> > C.
> >
> > Aside from the bit variable type, the Special Function Register 
> > declarations and the memory types (data, idata and xdata), 
> which you 
> > only deal with one time (when declaring variables) and 
> which you can 
> > even ignore in many applications (the compiler can take 
> care of it, as 
> > long as you are not pushing the limits of the chip's capabilities), 
> > the code itself is pure C.
> >
> > The 8051 is considerably easier to program in C than in 
> assembly, and 
> > there are several very mature C compilers for the 8051. On 
> the other 
> > hand, the ACR being supported by gcc certainly gives it an edge in 
> > that area. I use SDCC with the 8051, and it does a very 
> good job. It 
> > is actively developped and maintained as a sourceforge project.
> >
> > I routinely compile and run my 8051 C code under gcc on the 
> pc because 
> > it's easier to have multiple test cases to make sure the 
> functions do 
> > what I think they do... All I need is a few declarations to resolve 
> > bit, data, idata and xdata and bingo.
> >
> > Didier KO4BB
> >
> >> -----Original Message-----
> >> From: time-nuts-bounces at febo.com
> >> [mailto:time-nuts-bounces at febo.com] On Behalf Of Robert Vassar
> >> Sent: Thursday, August 14, 2008 6:25 PM
> >> To: Discussion of precise time and frequency measurement
> >> Subject: Re: [time-nuts] I want a good micro-controller
> >>
> >>
> >>
> >>
> >> Good grief!  That's not a microcontroller!  :-)
> >>
> >>
> >>
> >> I like the MCS-51 family, but they're kind of goofy to 
> program in C, 
> >> and 8-bit.  Upside, lots of vendors & variants, including 
> the really 
> >> nice SiLabs mixed signal chips made here in Austin.  AVR is much 
> >> nicer to code in C, and has great tool support, but they're single 
> >> source, and I have read that Atmel is not always completely 
> >> forthcoming in their errata.
> >>
> >>
> >> Arm... If you need something that can run Linux.... But 
> why not just 
> >> go for a Soekris board at that point?  :-)
> >>
> >>
> >> Rob
> >> KC6OOM/5
> >>
> >>
> >> On Aug 13, 2008, at 7:06 PM, Bob Paddock wrote:
> >>
> >>>> any ARM7 outperforms the best PIC in price and performance :)
> >>>
> >>> http://beagleboard.org/
> >>>
> >>> Get them from DigiKey, $149.
> >>>
> >>> http://dkc1.digikey.com/us/mkt/beagleboard.html
> >>>
> >>> "The USB-powered Beagle Board is a low-cost, fan-less single board
> >>>
> >>> computer utilizing Texas Instruments' OMAP3530 [ARM] application 
> >>> processor
> >>>
> >>> that unleashes laptop-like performance and
> >>>
> >>> expansion without the bulk, expense, or noise of typical desktop 
> >>> machines.
> >>>
> >>> Beagle Board is based on an OMAP3530 application processor
> >> featuring
> >>> an ARM(R) CortexT-A8 running at up to 600MHz and delivering
> >> over 1,200
> >>> Dhrystone MIPS of performance via superscalar operation 
> with highly 
> >>> accurate branch prediction and 256KB of L2 cache.  Focal 
> to Beagle 
> >>> Board experience is the high-speed USB 2.0 on-the-go (OTG)
> >> port that
> >>> can be utilized to provide power to the board or to 
> deliver highly 
> >>> flexible expansion.  Standard PC peripherals can be connected to 
> >>> Beagle Board using the USB with a mini-A to standard-A
> >> cable adapter,
> >>> DVI-D using an HDMI to DVI-D adapter, or through the MMC/SD/SDIO 
> >>> connector enabling a complete desktop experience."
> >>>
> >>>
> >>> --
> >>> http://www.wearablesmartsensors.com/
> >>> http://www.softwaresafety.net/
> >>> http://www.designer-iii.com/
> >>> http://www.unusualresearch.com/
> >>>
> >>> _______________________________________________
> >>> time-nuts mailing list -- time-nuts at febo.com To 
> unsubscribe, go to 
> >>> https://www.febo.com/cgi-bin/mailman/listinfo/
> >>> time-nuts
> >>> and follow the instructions there.
> >>
> >>
> >> _______________________________________________
> >> time-nuts mailing list -- time-nuts at febo.com To unsubscribe, go to 
> >> https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> >> and follow the instructions there.
> >>
> >
> >
> > _______________________________________________
> > time-nuts mailing list -- time-nuts at febo.com To unsubscribe, go to 
> > https://www.febo.com/cgi-bin/mailman/listinfo/
> > time-nuts
> > and follow the instructions there.
> 
> 
> _______________________________________________
> time-nuts mailing list -- time-nuts at febo.com To unsubscribe, 
> go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.





More information about the Time-nuts_lists.febo.com mailing list