I want to upgrade from 8 bit to 32 bit microcontrollers. Which is the best platform to invest on? (I mean in terms of code portability/devices offer/tool reuse/long term device availability)
ARM7 seems to be a good platform... Many company are proposing low cost ARM7 microcontrollers:
*) they (obviously) share the same instruction set and core specific behaviours (i.e. cpu states...) *) you only need to buy a compiler and a jtag interface (or without paying anything: gcc/gdb + homemade parallel port jtag interface)BUT: Arm7 core seems to have serious limitations:
*) slow on pin i/o manipulation (there are proprietaty solutions to reduce this limit) *) interrupts handling is poor and vectorisation should be done in software (there are proprietaty solutions to reduce this limit) *) every manufacturer integrates its own peripherals so NO code portability among different vendors. *) current mass produced devices have few peripherals (i.e. Atmel is delaying AT91SAM7X with Ethernet, CAN and USB, Philips will present new devices this year...) *) many devices are quite new products so they have many errataDo you agree with my analysis?
Recently I was visited by a Freescale guy. He told me:
*) Freescale offers a really BROAD range of devices from 10MIPS to over 400MIPS. *) Core (V2) is more powerful than Arm7 at the same clock speed. *) Vectored interrupts for all sources *) Rich set of peripherals, from years. (I mean Can, ethernet, usb..) *) Best debug capabilities than ARM7 core (recent V2 devices have 4 hw breakpoints and trace module is always present, ARM7 have 2 hw breakpoints, trace module isn't always implemented) *) the prices are quite the same than Arm7 devices (for high end devices) *) in the market there are more low end ARM-based devices. Freescale is planning for low cost 32bit integrated devices to cover this lackDo you agree with his analisys? If someone of you is using ColdFire devices, what do you think about them?
Thank You, Roberto