Embedded Software development
Process and Tools:
Lesson-4
Linking and Locating Software
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
1. Linker
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
Linker
Links the compiled codes of
application software, object codes from
library and OS kernel functions.
Linking necessitates because of the
number of codes to be linked for the
final binary file.
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
Linking Necessity
For example, standard codes for to program
a delay task, must link with the assembled
codes.
The delay code sequential from a beginning
address.
The assembly software codes also
sequential from another beginning address.
Both the codes have to at the distinct
addresses as well as at the available
addresses in the system. Linker links these
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
Linked binary file
After linking, re-allocation of the
sequences of placing the codes before
actually placement of the codes in the
memory
Linked file in binary for run on a
computer commonly known as
executable file or simply '.exe' file.
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
2. Loader
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
Loader
Program loaded in a computer RAM.
Loader program performs the task of
reallocating the codes after finding the
physical memory addresses available at
a given instant
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
Loader
Loader a part of the operating system
and places codes into the memory after
reading the '.exe' file.
Step necessary because the available
memory addresses may not start from
0x0000, and binary codes have to be
loaded at the different addresses during
the run.
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
Loader
Loader finds the appropriate start
address.
In a computer, after the loader loads
into a section of RAM and after
loading the program ready to run
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
3. Locator
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
10
Locator
When the code embeds into ROM or
flash, a system design process is
locating these codes as a ROM image.
Codes are permanently placed at the
actually available addresses in the
ROM.
Embedded systems no separate
program to keep track of the available
addresses at different times during the
running, as in a computer .
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
11
Various software tools and chain of actions of
linker at host and locator in an embedded system
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
12
Locator
Next step after linking use of a
locator for the program codes and data
in place of loader
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
13
Locator
The locator is specified by the
programmer as per available addresses
at the RAM and ROM in target.
Programmer defines the available
addresses in embedded systems for
loading to load and creating files for
permanently locating the codes using a
device programmer
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
14
Locator
2008
Uses cross-assembler output, a
memory allocation map and provides
the locator program output file.
Locator program output is in the Intel
hex file or Motorola S- record
format.
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
15
Locator
Uses the cross compile codes in different
cross-compiled segments for (i)
instructions, (ii) initialized values and
addresses (iii) constant strings (iv) uninitialized data.
Locates the I/O tasks and hardware device
driver codes at the unchanged addresses.
These are as per the interfacing circuit
between the system buses and ports or
devices.
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
16
4. Locator Output in Intel hex file or
Motorola S- record format
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
17
Locator Output
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
18
Locator Output in Intel hex file
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
19
Locator Output in Motorola S- record format
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
20
5. Memory Map for coding a locator
program
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
21
Memory map in Princeton Architecture
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
22
Memory map in Harvard Architecture
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
23
IO port, memory and devices address spaces
in 68HC11
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
24
Device Addresses in 80x86-based host system
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
25
A smart card system memory allocation map
for the Locator program
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
26
An automatic chocolate vending machine
memory allocation for the Locator program
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
27
A digital camera system memory allocation
map for the Locator program
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
28
A robot system memory allocation map for
the Locator programs
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
29
Summary
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
30
We learnt
Linker and locator used for developing the
codes for the target hardware
Locator files in Intel Hex or Motorola S
format.
Main memory Harvard architecture, the
program memory map separate
Main memory Princeton architecture, the
program and data memory map same
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
31
We learnt
Memory map used for coding locator
software
Memory map defined for a locator
includes the device I/O addresses,
designed after appropriate address
allocations of the pointers, vectors, data
sets, and data structures.
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
32
We learnt
Memory map used for coding locator
software.
Memory map defined for a locator
includes the device I/O addresses
Map designed after appropriate address
allocations of the pointers, vectors, data
sets, and data structures
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
33
End of Lesson-4 of chapter 13 on
Linking and Locating Software
2008
Chapter-13 L04: "Embedded Systems - Architecture,
Programming and Design" , Raj Kamal, Publs.: McGraw-Hill,
Inc.
34