04.10.2012 Views

TASKING C166 ELF-DWARF APPLICATION BINARY INTERFACE

TASKING C166 ELF-DWARF APPLICATION BINARY INTERFACE

TASKING C166 ELF-DWARF APPLICATION BINARY INTERFACE

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>TASKING</strong> <strong>C166</strong><br />

<strong>ELF</strong>-<strong>DWARF</strong> <strong>APPLICATION</strong> <strong>BINARY</strong> <strong>INTERFACE</strong><br />

Contents<br />

Introduction........................................................................................................................................4<br />

1 <strong>ELF</strong> Implementation ..................................................................................................................4<br />

1.1 <strong>ELF</strong> Header ...........................................................................................................................4<br />

1.1.1 e_ident field..................................................................................................................4<br />

1.1.2 E_MACHINE...................................................................................................................4<br />

1.1.3 E_FLAGS ........................................................................................................................4<br />

1.2 <strong>ELF</strong> Section Attribute Flags...............................................................................................5<br />

1.3 Address Spaces ...................................................................................................................7<br />

1.4 Relocation Expression Stack.............................................................................................8<br />

2 <strong>DWARF</strong> Debug Information....................................................................................................10<br />

2.1 <strong>DWARF</strong> register mapping ................................................................................................10<br />

2.2 Function Attributes ...........................................................................................................11<br />

2.2.1 <strong>DWARF</strong> Function Calling Convention.....................................................................11<br />

2.3 <strong>TASKING</strong> Type Qualifier Extensions..............................................................................11<br />

2.3.1 Version 1 .....................................................................................................................11<br />

2.3.2 Version 2 .....................................................................................................................12<br />

2.4 __unaligned and __packed__ ........................................................................................12<br />

2.5 Call Frame Information....................................................................................................12<br />

2.5.1 Call Stack and Memory Models...............................................................................12<br />

2.5.1.1 Basic Facts ...............................................................................................................13<br />

2.5.1.2 Pending Issues........................................................................................................13<br />

2.5.1.3 Known Limitations..................................................................................................13<br />

2.5.1.4 Near Functions, Return Address on System-Stack.........................................13<br />

2.5.1.5 Huge Functions, Return Address on System-Stack ........................................13<br />

2.5.1.6 Near Functions, Return Address on User-Stack ..............................................14<br />

2.5.1.7 Huge functions, Return Address on User-Stack ..............................................14<br />

2.5.1.8 Interrupt Functions ................................................................................................14<br />

2.5.2 Self-containedness ....................................................................................................15<br />

2.5.3 Addresses ....................................................................................................................15<br />

2.5.4 Definition of CFA ........................................................................................................15<br />

2.5.5 Determining the Return Address............................................................................15<br />

2.5.6 Determining Stack Pointer Register Values .........................................................16<br />

2.5.7 SPSEG ..........................................................................................................................16<br />

2.5.8 Near Data Addresses ................................................................................................16<br />

3 Code compaction......................................................................................................................17<br />

3.1 Introduction .......................................................................................................................17<br />

3.2 Line information ................................................................................................................17<br />

3.3 Execution control ..............................................................................................................18<br />

3.4 Variable access..................................................................................................................18<br />

119-EDABI 1.4 Released page 2 of 19 2008-09-04

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!