Hello!
I've worked before with Cortex-M3 on a STM32 Primer during college. Now I'm trying to develop a system and I can't decide what would be the best MCU for it...
The tasks I would need for it to perform are:
-Operate a TFT LCD screen
-Read and write to an SD card (KBytes of info)
-Control a PWM output
-Read 3 sensors (some digital and some analogic)
-Controll a dimmable light (triacs, zero-cross detection...)
-Actuate on relays and transistor switches
-Send info to a webpage via ethernet board
-PID controller (needs to do some divisions, multiplications and sums...)
All this tasks are to be preformed inside a infinte loop, but there is no need to have them working in Real Time.
Do you think that a Cortex-M0 would be good for this or do I need a more powerful microprocessor?
Also, if I start with a M0, how hard will it be to take the same code and make it work on an Cortex-M3?
Thanks!
If you can use ARM's software, I will recommend that. This is because it's highly optimized for the ARM architecture and they're easier to work with. In addition, the example code that the vendors provide, are usually written for these tools, so they would work right out-of-the-box.
A team from ARM is also working on optimizing GCC. You should get the official Linaro ARM GCC toolchain and the latest possible OpenOCD from the git repository, if you are (like I am) working on a platform the above mentioned tools do not run on (or if you just want to use the open-source tools).
To get the latest OpenOCD:
git clone git://git.code.sf.net/p/openocd/code openocd
cd openocd && ./bootstrap
./configure (see the documentation for options)
make && sudo make install