Unit 4. Embedded System Development Tools Unit 4. Embedded System Development Tools
Unit 4. Embedded System Development Tools 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
: 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
PURPOSE
METHOD:
USE ACTUAL COMPONENTS WHEREVER POSSIBLE AND STUBS, IN ALL OTHER CASES TEST OUT SYSTEM AS EXTENSIVELY AS POSSIBLE
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
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!!
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
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.
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
http://en.wikipedia.org/wiki/Intel_HEX
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
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
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
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 )
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
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