Thursday 15 June 2017

Embedded

The basic MPU contains the central processing unit and possibly a few additional items but the memory and also the Input Output interface is external. Typically the program is stored in non-volatile memory, such as NAND or serial Flash, and at start-up is loaded into an external DRAM and then commences execution.
This approach enables the microprocessor system to be scaled to meet its requirements more exactly.
Block diagram showing a basic embedded processor unit comprising the central processing unit, RAM, ROM and IO.
Microcontrollers comprise the main elements of a small computer system on a single chip. They contain the memory, and IO as well as the CPU one the same chip. This considerably reduces the size, making them ideal for small embedded systems.

MICROCONTROLLER ADVANTAGES & DISADVANTAGES SUMMARY
ADVANTAGESDISADVANTAGES
  • Lower cost because many elements of the processor are contained within the one chip resulting in lower chip cost and board cost.
  • Lower power consumption.
  • Integrating all components onto one chip enables processor to be optimised for a given application.
  • Less flexibility because all components are integrated into the one chip.
  • Limited performance because the size of memory is limited by what can be accommodated on the chip.
  • MCUs tend to be application specific so the choice may be limited.
 
Cross-platform development: Both embedded system and its application use the cross-platform development method.  Software is developed on one platform but runs on another.
 
A hard real-time systems is a real-time system that must meet its deadlines with a near zero degree of flexibility. Deadlines must be met, otherwise catastrophes occur.
A soft-time system is a real-time system that must its deadlines but with a degree of flexibility. The deadlines contains various levels of tolerance, even statistical distribution of response times with different degrees of acceptability.
An important requirement:  scheduling algorithms

Many non-real-time operating systems also provide similar kernel services. The key difference between general-computing operating systems and real-time operating systems is the need for " deterministic " timing behavior in the real-time operating systems
Most RTOSs do their scheduling of tasks using a scheme called "priority-based preemptive scheduling." Each task in a software application must be assigned a priority, with higher priority values representing the need for quicker responsiveness.  


Determine whether the currently running task should continue to run. If not ? Determine which task should run next. Save the environment of the task that was stopped (so it can continue later). Set up the running environment of the task that will run next. Allow this task to run.

Determine whether the currently running task should continue to run. If not ?
Determine which task should run next.
Save the environment of the task that was stopped (so it can continue later).
Set up the running environment of the task that will run next. Allow this task to run.

RTOSs offer non-fragmenting memory allocation techniques instead of heaps. They do this by limiting the variety of memory chunk sizes they make available to application software. While this approach is less flexible than the approach taken by memory heaps, they do avoid external memory fragmentation and avoid the need for defragmentation. Pools totally avoid external memory fragmentation, by not permitting a buffer that is returned to the pool to be broken into smaller buffers in the future. Instead, when a buffer is returned the pool.
 

 RTOS Features

1) Multitasking and Preemptibility
2)Task Priority
3)Reliable and Sufficient Inter Task Communication Mechanism
4)Priority Inheritance:
5)Predefined Short Latencie:
    • Task switching latency: The time needed to save the context of a currently executing task and switching to another task is desirable to be short.
 • Interrupt latency: The time elapsed between execution of the last instruction of the interrupted task and the first instruction in the interrupt handler.
 • Interrupt dispatch latency. The time from the last instruction in the interrupt handler to the next task scheduled to run.




 

No comments:

Post a Comment