David Kuehling wrote:
> I for my part must say that I'd actually prefer 8051 based chips. It's
> much simpler to just install sdcc, compared to the headaches it takes to
> get a working gcc cross-toolchain set up.
I think it depends mainly on how old your chip is. The peripherals
of new chips will always be more trouble than those of older ones,
irrespective of the core.
E.g., for older AVRs, the binutils-avr/gcc-avr/avr-libc/avrdude of
your distribution of choice are likely to work our of the box, like
SDCC does for older 8051.
I have a bit more confidence in GCC than in SDCC. SDCC 2.8.0 had a
bunch of rather nasty code generation bugs, and there's still one
in SDCC 2.9.0 I have to work around (*). I don't think I've ever
hit even one myself in GCC.
(*) See
http://projects.qi-hardware.com/index.php/p/ben-wpan/source/tree/master/atusb/fw/atusb/ep0.c
I don't think the information I have there is sufficient for a
proper bug report. But if someone wants to go through the
process of stripping the device-specific properties off the
problem and trimming the faulty code down to its core, please
feel free.
Regarding microcontrollers in general, I've adopted a nomadic
approach. I have yet to encounter an architecture that satisfies my
needs in every regard, so I pick chips by how well they meet my
momentary requirements and adjust. I've made circuits with 8/16 bit
microcontrollers with PIC (12/16), AVR, M8C, and 8051 cores. Each
have their ups and downs.
In all this, I think it's important to avoid locking oneself into
an architecture, stay out of comfty proprietary tools and traps,
resist the urge to use every last feature of the chip, keep the
tasks performed by the microcontroller light-weight, and write
clean code.
Keeping the microcontroller's task simple and doing the heavy
lifting on the host (in a portable way) is probably the most
important of these rules.
You'll find this in quite pure form in the atben board, which has
just the transceiver but no microcontroller. atusb firmware
currently implements the six transfer operations of the transceiver
plus a few device control commands. This translates directly to the
bottom layer of the stack atben and atusb share on the host.
> https://secure.wikimedia.org/wikipedia/en/wiki/AVR32#Architecture
Note that AVR32 != AVR: http://en.wikipedia.org/wiki/Atmel_AVR
- Werner
_______________________________________________
Qi Hardware Discussion List
Mail to list (members only): [email protected]
Subscribe or Unsubscribe:
http://lists.en.qi-hardware.com/mailman/listinfo/discussion