Embedded Systems

Embedded Systems

Posts 11-12 of 12
  • Vitus Jensen
    Vitus Jensen    Premium Member
    The company name is only visible to registered members.
    Re^6: WinCE vs. Embedded Linux
    Thilo Fromm schrieb:
    Vitus Jensen wrote:
     
    As for linux vs ce: even if you taken the wince code itself as bugfree there is still the issue of the Board Support Package. You get one for free/buy one from a hardware vendor or develop your own, but have to fix it yourself or bug the vendor.
     
    This issue always exists with own designs. To be on the safe side you would select hardware not just by availability and price but by platform driver support as well. Otherwise you might just move cost from hardware to software development.
    ...

    Ah, sorry! Working with proprietary hardware here all the time. And in this case you may have a BSP which only some people use, with concepts unknown to others (I have two different BSPs for PXA320 here). In linux the concepts would be the same, but maybe for an older kernel version.


    In linux most or all of the BSP would be open, used by others and can be freely discussed and shared. This could in theory lead to fast bug finding.
     
    I rather opt for widespread use of the platform. Linux system components (TCP stack, scheduler, ...) are serving in a huge amount of internet servers. So even odd bugs and issues are identified sooner or later. How many of your company web servers run WinCE?

    This I regard as a really strong point for linux.

    Of course in linux you have the problem of a fast moving target which you should follow. This results in a different kind of problems, especially with private code. ...

    Change is second nature to software development. If your development process doesn't embrace change (and you can only sleep in peace by considering only one "holy" software version for your project instead of following current development) I'd suggest the problem is with the process, not the software.
    Of course. But things are different nevertheless: microsoft releases a new wince every 1-2 years (which your customer wants ASAP because newer is better and he sees the difference), interfaces differ and will take time to adjust your software to. Intermediate fixes won't change interfaces (mostly). A new linux kernel is released every 3 month, perhaps with radically changed internal interfaces (which your customers don't see, so no need to hurry *g*). You need a lot of user space software which updates on its own cycle so you need a good management for building your distribution. Not hard, but different.

    This is for a completely selfdeveloped system. Now if you buy this service from a vendor like Montavista they do this for you.

    Vitus
  • Markus Barenhoff
    Markus Barenhoff    Premium Member
    The company name is only visible to registered members.
    Re^3: WinCE vs. Embedded Linux
    Hello,

    imho what was written before about the requirements is totaly correct. For hard realtime requirements in control applications a small RTOS kernel like freertos, smx, pSos etc. might be the best, because next to the hard realtime, the learning the API and driver development is very easy and you have a pretty good memory footprint and little cpu overhead.

    The "more complex" OS Environments like CE, Linux, VxWorks, QNX, BSD etc. are more usefull if you want to develope more complex applications like HMIs or heavily networked apps. In this case I think there are different dimensions to think about during decision making which were partly already mentioned before.


    Technology
    Availible Code/Libs: How much of the requirements is already implemented and how much do I have to implement on my own (Hardware/BSP and Application)?
    Legacy code: Do I have to port legacy code into the new environment and how much work is it?
    Skills in the Team: How much knowlege about the technology to use is already availible in the team?
    Security / Safety: How much real world proven is the stuff I get in the field of use? Are there any legal requirements (f.e. certification requirements)?

    Licensing / Support / Legal Stuff - Comerical (WinCE, QNX, VxWorks) vs Free Software (Linux, BSD)
    Source Code: How much of the source code do you get?
    Copyleft: To whom do you have to / want to make modifications and/or additions to availible (No one,the public, to the customer)? Do I want to let the public or the customer help to advance / maintain the product?
    Support: Do you want have (and pay) for some kind of support which garantees certain things (availibilty, assumption of liability etc.)?

    Coasts
    Fixed coasts: Initial coasts for the product,SDKs etc, time for learning, development and maintainance
    Variable coasts: Do I have to pay a per unit fee etc? How much units do I plan to produce.


    I think this are some of the basic questions.

    Regards
    Markus