0% found this document useful (0 votes)
37 views

Unit 4. Embedded System Development Tools Unit 4. Embedded System Development Tools

The document discusses tools used in embedded system development including cross compilers, linkers, locators, and debuggers. It explains that code is typically developed on a host system and cross compiled for the target system. The linker/locator combines object files and generates an executable file or memory image for the target. Issues like memory segmentation, initialization, and executing code from RAM versus ROM are also covered.

Uploaded by

jonarun
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views

Unit 4. Embedded System Development Tools Unit 4. Embedded System Development Tools

The document discusses tools used in embedded system development including cross compilers, linkers, locators, and debuggers. It explains that code is typically developed on a host system and cross compiled for the target system. The linker/locator combines object files and generates an executable file or memory image for the target. Issues like memory segmentation, initialization, and executing code from RAM versus ROM are also covered.

Uploaded by

jonarun
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Unit 4.

EMBEDDED SYSTEM DEVELOPMENT TOOLS

SCHEDULE
HOST

AND TARGET LINKER / LOCATOR GETTING EMBEDDED SOFTWARE INTO TARGET DEBUGGING
TESTING ON HOST INSTRUCTION SET SIMULATORS ASSERT MACRO USING LABORATORY TOOLS

REFERENCE Chapter 9 & 10 of David E Simon

HOST & TARGET


HOST

: The System Used for Development TARGET : The actual system in which the developed software will run
NATIVE

: A software tools (eg. Compiler) that generate code meant for the processor on which it runs. CROSS : A software tools (eg. Compiler) that generate code meant for ANOTHER PROCESSOR than the processor on which it runs.

STRATEGY
DEVELOP

PROTOPROTO-SYSTEM ON HOST TEST PROTO-SYSTEM ON HOST PROTOOK ?


CROSS

COMPILE FOR TARGET DOWNLOAD TO TARGET TEST ON TARGET


OK?
RELEASE

PURPOSE

DEVELOPING PROTO SYSTEM ON HOST


TEST OUT CONCEPT AND MMI AND GENERAL WORKING AND TASK STRUCTURES BUT NOT EXACT SYSTEM OR TIMING DETAILS

METHOD:

USE ACTUAL COMPONENTS WHEREVER POSSIBLE AND STUBS, IN ALL OTHER CASES TEST OUT SYSTEM AS EXTENSIVELY AS POSSIBLE

TOOL CHAIN FOR DEVELOPMENT FOR TARGET


C /C + +
A S S E M B L Y L A N G U A G E P R O G R A M S

C R O S S C O M P IL E R

C R O S S A S S E M B L E R

O B J E C T F IL E S

L IN K E R / L O C A T O R

O B J E C T F IL E S

E X E C U T A B L E

T A R G E T

CROSS COMPILATION ISSUES


EXPECT

COMPILATION ERRORS; NUMBER OF BYTES FOR BASIC TYPES MAY BE DIFFERENT; PACKING COULD BE DIFFERENT; WORD-ALIGNMENT RULES COULD BE WORDDIFFERENT; SUPPORT ROUTINES COULD BE DIFFERENT; BE PREPARED FOR SURPRISES!!

LINKER/LOCATOR IN AN EMBEDDED SCENARIO


NATIVE LINKER CREATES AN EXECUTABLE MODULE THAT HAS CALL TO OS SERVICES CROSS-LINKER / LOCATOR CREATES A CROSSCOMPLETE MEMORY IMAGE INCLUDING THE RTOS MODULES THAT YOU LINK NATIVE OS LOADS THE EXECUTABLE CREATED THERE IS NO UNIFORM METHOD FOR LOADING THE MEMORY IMAGE CREATED BY LOCATOR

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (CONTD..)

TOOL CHAIN FOR DEVELOPMENT FOR HOST


C /C + +
C /C + +

C O M P IL E R

C O M P IL E R

O B JEC T F IL E S

L IN K E R

O B JEC T F IL E S

EXECUTABLE

TOOL CHAIN FOR DEVELOPMENT FOR HOST (contd.)

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (CONTD..)

ADDRESS RESOLUTION- MANY MICROPROCESSOR INSTRUCTIONS ARE ASSOCIATED WITH THE ADDRESS OF THEIR OPERANDS. THE LOADER COPIES THE EXECUTABLE FILE TO MEMORY. MEMORY. LOADER CAN ALSO DEAL WITH THE CALL ASSOCIATED WITH OS FUNCTIONS.

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (contd.)


IN

MOST EMBEDDED SYSTEMS , THERE IS NO LOADER. THE OUTPUT OF LOCATOR IS COPIED TO THE TARGET SYSTEM.. LOCATORS HAVE MECHANISMS WHICH TELLS THE PROGRAMMER ABOUT THE LOCATION OF THE PROGRAM IN THE TARGET SYSTEM. DIFFERENT FILE FORMATS ARE OUTPUTED BY THE LOCATORS.

COMMON FORMAT IN WHICH LOCATORS CREATE THE MEMORY IMAGE IS A STANDARD ASCII TEXT FILE EACH LINE STARTS WITH COLON(:) FOLLOWED BY 2 DIGIT COUNT FOLLOWED BY 4/8 DIGIT ADDRESS FOLLOWED BY RECORD TYPE FOLLOWED BY STREAM OF DATA, EACH TWO DIGIT FOR A BYTE FOLLOWED BY 2 DIGIT CHECKSUM

INTEL HEX FILE FORMAT

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (contd.)

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (contd.)

INTEL HEX FILE FORMAT

http://en.wikipedia.org/wiki/Intel_HEX

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (contd.)

PART

OF CODE TO GO TO ROM ANOTHER PART TO RAM RAM HAS MANY SEGMENTS LIKE CODE / DATA/ STACK/EXTRA ADDRESS NEED NOT BE CONTIGUOUS ON-CHIP RAM/ROM IS NORMALLY MUCH FASTER THAN OFF-CHIP MEMORY EXECUTING FROM EPROM IS SLOWER THAN THAT FROM RAM ALL THESE ISSUES ARE TO BE CONSIDERED BY LOCATOR

MEMORY ISSUES

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (contd.)

SEGMENTATION

TRANSLATION

TOOL GIVES PROVISION FOR SPECIFYING DIFFERENT SEGMENTS TO CODE GENERATED CODE WITHIN A SEGMENT IS ALLOCATED CONTIGUOUSLY DURING LOAD TIME, WE CAN SPECIFY START ADDRESS OF EACH SEGMENT CROSS COMPILERS GIVE PRE-DEFINED NAMES TO SEGMENTS, BUT YOU HAVE TO SPECIFY THIS IN ASSEMBLERS

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (contd.)

ASSUMES THAT PRIOR TO EXECUTION THE VARIABLES ARE FILLED WITH GIVEN VALUES A CONSTANT SEGMENT IS CREATED TO TAKE CARE OF THIS IT CONTAINS THE DEFINED CONSTANTS, STRING VALUES, ETC., USED IN THE PROGRAM. THE LOADER SHOULD ENSURE THAT THE VARIABLES ARE PROPERLY INITIALISED WITH THESE

INITIALISATION

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (contd.)

GATHERING OF SEGMENTS
M A IN .C S U B 1 .C S U B 2 .A S M

M A IN C O D E M A IN D A T A M A IN S T R IN G

S U B 1 C O D E S U B 1 D A T A S U B 1 ID A T A

S U B 2 C O D E S U B 2 D A T A S U B 2 S T A R T

L IN K E R /L O C A T O R

S T A R T (S U B 2 )

D A T A (M A IN ,S U B 1 ,S U B 2)

C O D E (M A IN , S U B 1 ,S U B 2 )

ID A T A (S U B 1 )

S T R IN G (M A IN )

ID A T A _ S H A D O W (S U B 1 )

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (contd.)

LISTS

WHERE IN MEMORY THE LOCATOR PLACED THE SEGMENTS. GIVES THE LOCATION OF GLOBAL VARIABLES AND ROUTINES AS WELL. VERY VALUABLE FOR DEBUGGING. CHECK THIS TO ENSURE THAT THE MEMORY ALLOCATIONS ARE IN FACT RIGHT.

LOCATOR MAPS

LINKER/LOCATOR IN AN EMBEDDED SCENARIO (contd.)

IN

SYSTEMS HAVING RAM AND ROM, IT IS A GOOD PRACTICE TO PLACE CODE IN ROM AND DATA IN RAM BUT, IN MANY CASES RAM IS FASTER YOU MAY HAVE TO MOVE ROM CONTENTS TO RAM BEFORE EXECUTION IN THIS CASE IT MAKES SENSE TO KEEP CODE IN A COMPRESSED FORMAT AN INITIALISATION CODE THEN TRANSFERS IT TO RAM BEFORE EXECUTION

EXECUTING FROM RAM

GETTING TO TARGET HARDWARE


PROM

PROGRAMMER FLASH ROM EMULATOR MONITORS INCIRCUIT EMULATORS COMMUNICATION DEVICES

You might also like