Z-World Customer Support Center: Technical Reference/Software Integration
Home Contact Site Map
Company Info Products Ordering Documentation Support Partners Pressroom
Top FAQs
Z-World Product Documentation
Technical Refernece
Knowledgebase
Legacy Product Support

Go to Z-Store

Free Catalog
Technical Reference

Software Integration


What it takes to make an embedded controller work

Software programs that an embedded controller executes are generally developed on a PC using a software development system. For many embedded controllers, the development system consists of a software editor, a compiler, and a debugger–all of which are separate items that are not always guaranteed to cooperate.

An alternative to utilizing separate editors, compilers, and debuggers is to use a software development system that integrates all the components into one software development tool. This alleviates potential problems, guaranteeing all three development tools will work properly.

An integrated software development system, such as Z-World’s Dynamic C, provides a direct and fast means of developing and debugging programs for an embedded controller. Moreover, because the target controller can be used during program development, the software and the hardware can be considered as one unit.

Multitasking Software
Simple computers usually execute one program at a time. Embedded computers often execute more than one task at a time through the use of multitasking software. Multitasking simply means that a computer can perform multiple tasks simultaneously.

In reality, a single processor can only execute one instruction at a time. Multiple tasks interleave their execution, only appearing to execute together. The tasks are actually sharing the processor’s time. Two common types of multitasking are preemptive and cooperative.

Preemptive Multitasking
Preemptive multitasking means that some top-priority event–usually an alarm, a timer interrupt, or a supervisory task (often referred to as a “kernel”)–takes control of the processor from the task currently running and turns it over to another task. In this scenario, program tasks compete for the processor’s time.

Tasks have no control over when they may be preempted, and usually have no information about other tasks. Cooperation, coordination, and communication among tasks that get asynchronously preempted is a major application problem. Preemptive multitasking requires special attention during software development.

Cooperative Multitasking
Cooperative multitasking solves some of the development headaches associated with preemptive multitasking. Under cooperative multitasking, each task voluntarily yields control so other tasks can execute.

The advantages of cooperative multitasking include:
• Explicit control of the points a task begins and ends logical subsections of its overall job.
• Easier to create tasks.
• Lower and less indeterminate “interrupt latency.”
• Simplified programming.

Networking–A Form of Multiprocessing
Multiprocessing refers to hardware and multitasking refers to software–yet the two often go together and have much in common. Multiprocessing means, literally, having multiple processors.

Some applications may require more input and output ports than a single controller can provide, but the application may not support two separate programs running on two separate controllers. Or, in other cases, running numerous input and output lines throughout a machine to and from a single controller might be physically unsafe or impractical.

Although software can execute across multiple processors in many different fashions, a simple and straightforward approach to multiprocessing is to create a multiprocessing system by establishing a network of controllers communicating over industry-standard RS-485 serial lines.



COMPANY | PRODUCTS | ORDERING | DOCUMENTATION | SUPPORT CENTER | PARTNERS | PRESS ROOM
HOME | CONTACT | PRIVACY STATEMENT | SITE MAP

Copyright © 2001 Z-World Inc. All rights reserved.
zworld@zworld.com