We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
How do I go about picking an architecture ? My first thoughts suggested Cortex M3 but the more I look into it the less sure I am.
Obviously I don't to go to the trouble of learning a new technology only to find that I've made a bad processor choice (ie nearly end of line). I've spent many hours looking at many websites and have yet to find any high-level stuff on choosing my first ARM device.
If there's one thing wrong with ARM its the almost infinite number of devices
I'm an embedded developer wanting to undertake my first ARM project, so I'm completely new to the ARM architecture. I want a low power device with serial, USB and some ADC channels.
One product we had used some quite expensive commercial libraries.
The implementation of strncmp() was actually a memcmp(), i.e. if the two input strings were identical, and shorter than the max length to compare, the very expensive commercial library considered it ok to continue comparing the strings after the terminating zero, for a very unexpected and random result...
There is one situation where a chip-unique manufacturer library makes sense, and where it may represent a significant amount of development time. That is if you buy a special processor with special additional hardware.
If you need a software modem, it can make sense to buy a special processor with DSP acceleration, and use it with manufacturer-supplied soft-modem code. Your business decision is to get an almost turn-key hw+sw modem that you complement with your own - as much as possibly generic - main logic. Such a concept could save enough money (compared to using separate modem + duplex chips), that you after one year of delivery has saved enough on component costs that you can afford to buy a full years consumption of processors to put on the shelf as buffer in case the processor gets unexpectedly dropped and you need to redesign with a different processor.
If you do buy a chip with hardware acceleration for MP3 decoding, then you have normally already payed the sw license for using the corresponding MP3 decoder library. And you would expect that playing MP3-encoded voice prompts should be so trivial that you can't really get hurt by late bugs in the library.
But these examples are special cases where you directly when you selected the processor made an explicit choice locking your product to a specific sw+hw bundle. You normally don't take such decisions without having a backup plan. You may look at two different sw-modem solutions. Select to design with one solution after having made sure that there are at least one other solution good enough and possible to switch to within a reasonable time frame. And you make the business decision taking into account the amount of chips you may have to keep in a buffer to keep you going during the redesign. And you upfront estimate the redesign cost, the extra cost of warranties for two different designs and the extra certifications needed in case the backup design has to be implemented.
But a big problem with manufacturer-supplied libraries is that manufacturers do not have the best developers in their staff. It can often be (hopefully) good hw engineers that will have to double as sw engineers. And sometimes, it is one or more application engineers.