You are on page 1of 10

Chapter 4

Date: 8-12-2020

Branch: ECE /3 year

Topic: Real time programming languages in embedded systems

Time: 9:00 AM -10:00 AM

A system is an arrangement of multiple units, assembled together to function


according to the given instructions. An embedded system is a combination of
both hardware and software, which performs a particular task within the
specified period (which means it should perform only one specific task like a
washing machine). The main advantage of using an embedded system in an
application is that it can minimize the size and the cost and also improves the
reliability and efficiency of the task. This article overviews about embedded
software languages, embedded system programming, and their functions.

Components of Embedded Systems

The following are the components of embedded systems

 Embedded Hardware: Micro-controller is the heart of the embedded


system, where multiple peripherals are interfaced to embedded hardware
for communication purpose.
 Embedded RTO’s: An embedded real-time operating system is used
to perform all complex (ar operations.
 Device Drivers: It acts as a bridge between the operating systems and
peripheral devices.
 Communication stacks: It is used for communicating with external
devices.
 Embedded applications: It performs the predefined function of the
embedded device.

Embedded System
Components

Embedded Software

An embedded software or embedded system programming is computer


software, which is used to control devices by providing a set of instructions.
It is also named as firmware, various devices with various functionalities can
be programmed using embedded software, by maintaining design constraints
(like response time constraints, strict deadlines, and processed data) and
storing the final data in memory (Ram/ Rom).
Software is controlled or initiated by a machine interface. The embedded
software is inbuilt in all electronics like cars, telephones, robots, security
systems, etc which is simple to run on an 8-bit microcontroller using memory
up to a few KB. It helps in processing complex operations and determines the
accurate computation framework.
Embedded System Programming Languages

Embedded software uses an operating system, which is a real-time operating


system that performs multiple tasks at a time. The embedded programs are
programmed using in C / C++, Phyton, and Java Scripts languages and are
processed on operating systems like Linux OS, VxWorks, Fusion RTOS,
Nucleus RTOS, micro C/OS, OSE, etc. Selection of programming language
plays a vital role in developing embedded software, which is based on certain
factors as shown below,
 Size: The amount of memory required by a program plays an important
role, as embedded processors (microcontrollers) has a specific amount of
ROM (Read Only Memory) based on its application.
 Speed: The speed of program execution must be fast
 Portability: Different processors can be compiled using one program.
 Implementation is difficult
 Maintenance is difficult.
Programming of an Embedded System in Assembly
Language
Programming of an embedded system in assembly language (input) and
converting into the machine-level language (output) using an assembler can
be explained using the following example, where we perform the addition of
two numerics using two sperate registers and store the result in an output
register.

Input

HERE: MOV R0, #01H

MOV #1, #02H

MOV A, R0

ADD A, R1

MOV P0, A

SIMP HERE

Output

Address         Opcode     Operand


0000                   78               01
0002                   79               02
0004                   E8                –
0005                   29                –
0006                   F5              80
0008                   80              00

Assembly code is used for developing efficient code in terms of size and
speed. Developing larger code in assembly language becomes difficult which
may lead to higher software development cost and the code portability is
absent. Hence in order to overcome this disadvantage we use high-level
language such as embedded C.
About C, C++, Java and Embedded C

C Programming

C language is a structure-oriented language, developed by Dennis Ritchie. It


provides less memory access using the simple compiler and delivers the data
efficiently according to machine instructions. They are applicable in wide
ranges from embedded systems to supercomputers.

Embedded C

Embedded C is an extension of the C language, which is used for developing


an embedded system. The syntax is similar to C language (like the main
function, functions declaration, data types declaration, loops, etc). The main
difference between embedded C and standard C language are input-output
addressing of hardware, fixed-point operations, and processing address
spaces.

The use of C in the embedded system due to the following advantages

 It is small and easy to learn, understand and debug the program.


 All the C compilers are compatible with all embedded devices
 It is a processor independent (that is, it is not specific to a particular
microprocessor or microcontroller).
 C language uses the combination of assembly language and features of
the high-level language
 It is fairly efficient, more reliable, more flexible, more portable
between different platforms.
 The programs developed in C are easier to understand, debug and
maintain.
Compare to other high-level language C offers more flexibility because it is
relatively small structure-oriented language and supports low-level
bitwise data manipulations.
C++

Object-oriented language like C++ is not optional for developing an efficient


program in research constraint environments like embedded devices. Virtual
functions and exception handling of C++ are some specific features that are
not efficient in terms of space and speed of the system.
JAVA

An embedded system can be programmed in JAVA language, using JAVA


virtual machine (JVM) which accesses lots of resources. It primarily finds
usage in high-end applications (like mobile phones) and offers portability
across systems to process the applications.  It is not preferred for smaller
embedded devices.

Embedded C Programming Architecture and Example

Embedded C programming architecture can be understood with an example


of using 8051 micro-controllers, where its function is to blink the LED bulb
which is connected to PORT1 of the controller and the compiler used is Keil
C Compiler. The following is the code for the LED blink.
#include<reg51.h>            // directive of pre-processor
Void delay (int)                //declaration of delay function
Void main(void)             // Main function
{
P1 = 0x00;                    // port1 is off so LED is off and stored in reg51.h
while(1)                       // loop of infinity
{
P1 =OxFF;                //// port1 is on so LED is on
delay(1000);           // assigning delay
P1 = 0X00;            // port1 off
delay(1000);
}
}
Void delay (int d)  // assigning delay function
{
unsigned int i=0; // variables assigned locally
for (; d>0 ; d-)
{
for (i=250 ; i>0;i–);
for (i=248 ; i>0;i–);
}
}

Advantages

The following are the advantages of Embedded Software

 Loading of data is faster


 Cost is low
 Utilizes less resources.
Disadvantages

The following are the disadvantages of Embedded Software

 Upgrading is complex
 Every time resetting is necessary if any problems occur
 Scalability for small values is difficult.
Applications

The following are the applications of Embedded Software

 Banking
 Automobiles
 Home appliances
 Car
 Missiles, etc.
FAQ’s

1). What is an Embedded Software?


An embedded software or embedded system programming is computer
software, which is used to control devices by providing instructions.

2). What are the programs used in Embedded system software?


The embedded system software programs are programmed in C or C++,
Phyton, and Java Scripts.

3). What is the difference between embedded systems and the normal
system?
An embedded system is a combination of hardware and software where it is
designed for a specific purpose. The processes are processed sequentially.
Whereas a normal processor is an RTO’s real-time OS, it is required where
there is a need for parallel execution.
4). What are the different types of Embedded systems?
The Embedded systems are classified into two categories

 Based on performance and functional requirements, they are further


classified as Real-time, stand-alone, networked, mobile.
 Based on the performance of the microcontroller, they are further
classified as small scale, medium scale, and sophisticated scale
5). Major applications of embedded system
The major applications of an embedded system are

 Washing machine
 Digital cameras
 Music player, etc.
An embedded system is a combination of hardware and software. Where
the embedded software programs are programmed in C or C++, Phyton, and
Java Scripts. They run on Linux OS, micro C/OS, QNX, etc. C language
forms the basic language for writing embedded software codes. Thus this is
an overview of an Embedded Software and its architecture explained using a
program.

You might also like