You are on page 1of 17

REAL TIME OPERATING SYSTEMS

Lesson-14:
Memory Optimization

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 1
Inc.
1. Memory Optimization

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 2
Inc.
Memory Optimization

 Compact code without effect on


performance
 Code means code compiled and assembled
executable in the given system
 Compact code also reduces the total
number of CPU cycles, and thus, the total
energy requirements

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 3
Inc.
2. Memory Saving Methods

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 4
Inc.
Using Compressed data structures
 Use compressed data structure─ provided
de-compression algorithm plus compressed
data structures combined together take less
memory in the system compared to the case
when only un compressed data structures
are used .

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 5
Inc.
Compact codes
 For example, Thumb 16-bit Instructions
in 32-bit ARM processor

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 6
Inc.
Appropriate Data type Declarations
 Use unsigned bytes especially within
the for-loops and while loops for a
short and a short for an integer, if
possible, to optimise memory use
system.
 Avoid if possible the use of 'long'
integers and ‘double’ precision
floating point values especially
within the for-loops and while loops
Chapter-8 L14: "Embedded Systems - Architecture,
2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 7
Inc.
Static (global) variables

 use static (global) variables if shared data


problems are tackled and use static
variables in case it needs saving frequently
on the stack

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 8
Inc.
Limited Library functions

 Avoid use of library functions if a simpler


coding is possible

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 9
Inc.
Configure the RTOS functions

 For example, if queues not needed the


RTOS queue functions are not ported in
the ROM image
 Use a configurable, scalable, hierarchical
RTOS using which in the ROM image
only the needed functions and objects for
the functions are saved in place of all the
kernel functions

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 10
Inc.
Less Stack data Memory and Optimize
stack and buffer allocations
 Reduce use of frequent function calls and
nested calls
 Allocated stack and buffer are first filled
with the specific bytes. Then find that in
worst cases of running of the embedded
system, how many filled bytes do not
change.
 Reduce the allocated stack and buffer
sizes for finalized code
Chapter-8 L14: "Embedded Systems - Architecture,
2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 11
Inc.
Assembly code

 use the assembly codes for simple


functions like configuring the device
control register, port addresses and bit
manipulations if the instruction set
 Use inline modifiers for all frequently
used small sets of codes in the function or
the operator overloading functions if the
ROM is available in the system

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 12
Inc.
Optimize Commands

 Combine two functions, if possible, when


having more or less similar code
 Use, if feasible, alternatives to the switch
statements a table of pointers to the
functions
 C++─ use the classes without multiple
inheritance, without template, with runtime
identification and with throwable
exceptions
Chapter-8 L14: "Embedded Systems - Architecture,
2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 13
Inc.
Optimize Classes

 For example, use J2ME with device


configurations when programming in Java

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 14
Inc.
Summary

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 15
Inc.
We learnt
• Memory optimization saves memory
without effecting system performance
• Use various standard ways for optimizing
the memory needs in the system
• Number of methods exist for optimizing
memory needs

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 16
Inc.
End of Lesson 14 of Chapter 8

Chapter-8 L14: "Embedded Systems - Architecture,


2008 Programming and Design" , Raj Kamal, Publs.: McGraw-Hill, 17
Inc.

You might also like