In most of the cases the design process should respect a list of requirements: functional requirements (basically describe the scope, interfaces, communication channels, etc) and nonfunctional requirements, that are not directly related to what the system does. Examples of the last category are energy efficiency (system must to run with a battery a couple of years or must to be energy independent), real time (if the actions are critical some time constraints need to be respected), safety (if something is wrong need to prevent a total damage or a catastrophic situation), upgrade-ability (some new properties must be supported by new changes in the system), cost of money, tolerance to defects, temperature range conditions (automotive often require to have a normal behavior between -25C and 85C), security and the list can go on.
Threads are methods used in computer programs for splitting a program into more concurrently tasks. Threads execution is based on events. Internal execution of a thread can be stopped by another with a higher priority or by an interrupt. The main advantages of using threads (do not confuse with processes - the difference can be smaller or bigger, depending by application and domain of implementation) is: the performance, the shared resource principle, the functionality is modularized and can help for a future upgrade.
On the beginning we talk about CPU (Central Processing Unit). The selection process must be coordinated by the analysis of the following factors: size, cost, pins I/O, performance, memory, workload, RTOS, efficiency, portability, tools, etc. You can select from a simple PIC microcontroller from Microchip (8 bits architecture) to a complex PowerPC architecture from Freescale (32 bits architecture). It's up to you the decision of using any model.
Regarding the programming language the selection is limited to just a few alternatives: Assembler (non portable and hard to debug and to redesign), ANSI C (partial portable, backed by a lot of tools), C++ (time overhead and sometimes considered more complex than C). Parts of developers are using also Basic, Pascal and sometimes Java.
The operating system, OS, is one of the many things that must be selected for an embedded system. Selection is done by considering the efficiency, predictability, portability and debuggability. The most used OSs are uC/OS-II, QNX, Osek, uClinux, Salvo, VxWorks, Posix, Windows CE.
...to be continued.
Published by BitMan
- Sexual Bodies, Sexual Minds, Sexual World: Approaches to Sex ResearchThis paper discusses the theoretical gap left between the positivist approach to sex research and the postmodernist approach. I then offer initial and tentative ideas about a complex systems framework which has the po...
- How Does the Mother-Daughter Relationship Affects Communication Between Life Mates...Academic Senior Capstone Research Project on Mother-Daughter communication and its effects.
- Who Will Help the Children? This research is designed to provide educators with techniques to help struggling students and students with exceptionalities find more success with regard to learning, more directly, with reading.
- Halley's Comet and the Metaphysics of ScienceAn analysis of the philosophical merit of Immanual Kant and Sir Isaac Newton's metaphysical understandings as pertaining to an application of said understanding to Halley's comet.
- Crime and Deviance is a Learned Behavior: Birds of a Feather Do Flock TogetherI provide a better understanding of crime and deviance using Ronald Akers' Social Learning Theory and Edwin Sutherland's Differential Association.
- Finding Part-Time Employment
- Why Socio-Cultural Anthropology Can Still Be Scientific
- The Benefits of Working Part Time
- Finding Beauty in Math and Science
- Will the No Child Left Behind Act Solve Problems with Our Education System?
- For Home Security, Get an Alarm System!
- NASCAR's Point System Sucks



