This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How do you choose an ARM family

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.

Parents Reply Children
  • is it less than truthful if the whole discussion has been able the use of OEM libraries - I am the first person mentioning that and you follow right up with your "commercial library" concept, which the OEM libraries are a subset of it.

    now, you are saying that you followed up in a thread about the use of OEM libraries so you can talk about the use of non-OEM libraries that allow you full source code access, of which you can find none?

    so you are essentially suggesting that we should use libraries that do not exist?

    ????????????????????????????????????????

    is this some kind of mind trick?

  • Good writing practices says one or three punctuation characters. Not two. Not more than three. But then sentences are expected to start with a capital letter.

    Do read my post again. I warn aganst the use of manufacturer-specific libraries or any other kind of libraries, where you do not have full control. And full control includes access to the source and a license that allows you to use it.

    I have never once said that manufacturers likes to give out their libraries with full source and carte blanche licenses. But I have claimed that the main reason for such libraries is to bind you harder to their products.

    The only trick involved is a trick often used by the manufacturers. If you are going to use a manufacturer-supplied library, you should at least do it with your eyes open!

    The ARM chips are powerful enough that you can most of the time have very good separations between hardware and business logic. When you design all of the code, you can be very careful about where to place this separation. When using a manufacturer-supplied library, you will instead end up having your business logic littered with copyrighted function calls. You can't just rewrite the library implementation if you try to move to another processor, because you need to match the original function prototypes - and the original header file is copyrighted...

  • "I have never once said that manufacturers likes to give out their libraries with full source and carte blanche licenses. But I have claimed that the main reason for such libraries is to bind you harder to their products."

    Now I use my MCU vendors brain:
    Creating the libraries often involves many man years of coding, so why giving it away to be used by competitors. Why would you not want to try binding customers to your chips if at all possible. That is viable business practice as long as you help your own customers.

    Switching brain to MCU user:
    It sucks to be stuck with one vendor, particularly using ARM where it would be rather easy to switch from A to N to S or T. So if I find a real open source I will probably go for that one.

    Impair, an attempt:
    If you find what you are looking for with one vendor and the chips do what they should and the price is right, don't argue, go for it and get work done.

    Cheers, Robert
    For the original poster there is a site that gathers articles related to Cortex-M
    mcu-related.com/.../35-cortex-m3

  • "Do read my post again. I warn aganst the use of manufacturer-specific libraries or any other kind of libraries, where you do not have full control. And full control includes access to the source and a license that allows you to use it."

    more precisely, where you *MAY* not have full control of the source code. the Luminary library is a good example.

    "I have never once said that manufacturers likes to give out their libraries with full source and carte blanche licenses. But I have claimed that the main reason for such libraries is to bind you harder to their products."

    nobody said that you said that, so let's move on.

    your point about avoiding OEM libraries is a good one, and nobody is arguing against it. because the lack of portability introduced by OEM libraries can be too great: those libraries typically forbid the porting to a competitor's chips.

    the reasons given in support of such an argument, needing full source code access on a commercial package, security (?), performance and stability, are bogus at best.

    however, I do see advantages of using OEM libraries: the code is generally of higher quality than a novice programmer can generate and it gets one going quickly. so if a corporation has made a commitment to a platform / vendor, it can be advantageous to use oem libraries.

    but a thorough analysis needs to be done before committing one to such an approach.

  • About manufacturers giving out full source with nice licenses:
    "nobody said that you said that, so let's move on."

    Actually, you did with:
    "sounds like you are unclaiming what you just claimed. what do you think this guy/gal was claiming when s/he said:

    'For commercial use, you should have full access to the source code, and a license that allows you to run the code on _any_ processor, even if different manufacturer or non-ARM architecture.'

    no answer is required, :)."

    You explicitly wanted me to provide examples of something I did not claim, so yes: You indirectly said that I said that, by implication. Please remember what you write, and please argue based on existing claims instead of sometimes inventing claims from me, or sometimes forgetting your own claims.

    "the reasons given in support of such an argument, needing full source code access on a commercial package, security (?), performance and stability, are bogus at best."

    You think it is a bogus claim that without the source to a library, you can't fix any bug and have to hope that the library owner will quickly come and help out? What do you do if you have a support contract with the customer to fix bugs within timespan x, while you have a totally unknown timespan for the library owner to _maybe_ help out with library bugs?

    What do you call it when the library owner says there isn't anything wrong with the library? What do you do when the library owner _maybe_ 6 months later releases a new - and corrected - library without still admitting to there ever having been anything wrong? A non-issue? You tell your customers that any problems with the product they have seen wasn't your fault and that the 6 month response time wasn't so bad?

    Don't know what _you_ mean about security. I am talking about business risks. Should have been cleaar many posts ago.

    Don't know what _you_ mean about performance and stability. This is the first post in this thread where _I_ use the words "performance" and "stability" so your argument that my argument is bogus is obviously bogus. It's once more that F in reading.

    The issue here is that even for a small product, you can quickly end up having invested $1 million or more. And the value of the investment directly relates to the trust your customers puts in you and into your product. A large number of companies have a very high percentage of the sales to repeat customers, which means that the trust of these customers is everything.

  • the reasons given in support of such an argument, needing full source code access on a commercial package, security (?), performance and stability, are bogus at best.

    Ashley, I'm just holding my head in disbelief.
    BOGUS?

    the code is generally of higher quality than a novice programmer can generate and it gets one going quickly

    Oh, yeah? I don't know exactly how long you have been in this business, but I have a wild guess...! No offese, of course.

  • The interesting thing with "the code is generally of higher quality than a novice programmer can generate" is of course that a company that has any form of IT and business strategy should not use novice programmers to develop their products.

    And licenses and availability of library sources are normally irrelevant for a student who just has to hand in a solution to an exercise. As long as the teacher allows the use of the library, the student will be home-free.

  • Dear Ashley:
    My previous employer was literally braking all records in terms of incompetence, unprofessional attitude and general ignorance. They happen to have a big name AND an ISO 9001 and more. At the same time, these people are making things that can (and do, annually) kill people all over the world...! (no, they don't build weapons)

  • "the code is generally of higher quality than a novice programmer can generate"

    I have no idea how much experience you have of such things, but my experience is somewhat different.

    Quite often, examples from chip suppliers should barely be described as examples.

    For instance ...

    I spent over a year on a project with Dallas code for an 80C400 and used their TCP stack.

    After numerous problems taht they could not fix, they finally agreed to let me have a copy of the source code (after signing the obligatory NDAs).

    My verdict on their code was not positive. Actually, it was so bad that I had to recommend an immediate stop on the products that included the code.

    If I had access to that code at the start, our product may well have been considerably more reliable.

  • 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.

  • "I don't know exactly how long you have been in this business, but I have a wild guess...! No offese, of course."

    I think I started with the mcs-48 family in the mid/late 1980s. then 8031/32 after that.

    is your wild guess reasonably close?

  • "I think I started with the mcs-48 family in the mid/late 1980s. then 8031/32 after that."

    So you were behind the curve, but playing it safe.

  • is your wild guess reasonably close?

    No.

  • Tapeer.

    you must learn and stop being quick to jump with yo're conclusions.

    i think you sometimes rate a book with what is in the next room.

    Always yo're freind.

    Zeusti.