
C7000 Embedded Application Binary Interface (EABI) Reference Guide Literature Number: SPRUIG4C January 2018–Revised August 2019 Contents Preface ........................................................................................................................................ 5 1 Introduction......................................................................................................................... 6 1.1 ABIs for the C7000 .......................................................................................................... 7 1.2 Scope.......................................................................................................................... 8 1.3 ABI Variants .................................................................................................................. 9 1.4 Toolchains and Interoperability ............................................................................................ 9 1.5 Libraries ....................................................................................................................... 9 1.6 Types of Object Files ...................................................................................................... 10 1.7 Segments.................................................................................................................... 10 1.8 C7000 Architecture Overview............................................................................................. 10 1.9 Code Fragment Notation .................................................................................................. 10 2 Data Representation ........................................................................................................... 11 2.1 Basic Types ................................................................................................................. 12 2.1.1 Basic Types in Memory........................................................................................... 12 2.1.2 Basic Types in Registers ......................................................................................... 13 2.2 Complex Types ............................................................................................................. 13 2.2.1 Memory Representation of Complex Types ................................................................... 13 2.2.2 Register Representation of Complex Types ................................................................... 14 2.3 Vector Types................................................................................................................ 14 2.4 Structures and Unions ..................................................................................................... 15 2.4.1 Structures in Registers ........................................................................................... 16 2.5 Bit-Fields..................................................................................................................... 17 2.5.1 Volatile Bit-Fields .................................................................................................. 18 2.6 Enumeration Types ........................................................................................................ 18 3 Calling Conventions ........................................................................................................... 19 3.1 Call and Return ............................................................................................................. 20 3.1.1 Pipeline Conventions ............................................................................................. 20 3.1.2 Weak Functions ................................................................................................... 20 3.2 Register Conventions ...................................................................................................... 20 3.3 Return Values............................................................................................................... 22 3.4 Values Passed and Returned by Reference............................................................................ 22 3.5 Conventions for Compiler Helper Functions ............................................................................ 22 3.6 Scratch Registers for Trampolines and PLT Entries................................................................... 23 4 Data Allocation and Addressing ........................................................................................... 24 4.1 Data Sections and Segments............................................................................................. 25 4.2 Allocation and Addressing of Static Data ............................................................................... 26 4.2.1 Addressing Methods for Static Data ............................................................................ 26 4.2.2 Initialization of Static Data........................................................................................ 27 4.3 Automatic Variables........................................................................................................ 27 4.4 Frame Layout ............................................................................................................... 28 4.4.1 Stack Allocation.................................................................................................... 29 4.4.2 Register Save Order ............................................................................................. 29 4.5 Heap-Allocated Objects ................................................................................................... 29 5 Code Allocation and Addressing .......................................................................................... 30 2 Contents SPRUIG4C–January 2018–Revised August 2019 Submit Documentation Feedback Copyright © 2018–2019, Texas Instruments Incorporated www.ti.com 5.1 Branching.................................................................................................................... 31 5.2 Calls.......................................................................................................................... 31 5.3 Computing Code Addresses .............................................................................................. 32 6 Helper Function API............................................................................................................ 33 6.1 Floating-Point Behavior.................................................................................................... 34 6.2 C Helper Function API..................................................................................................... 34 6.3 Special Register Conventions for Helper Functions ................................................................... 35 7 Standard C Library API ....................................................................................................... 36 7.1 Reserved Symbols ......................................................................................................... 37 7.2 <assert.h> Implementation................................................................................................ 37 7.3 <complex.h> Implementation ............................................................................................. 37 7.4 <ctype.h> Implementation................................................................................................. 37 7.5 <errno.h> Implementation................................................................................................. 38 7.6 <float.h> Implementation .................................................................................................. 38 7.7 <inttypes.h> Implementation.............................................................................................. 38 7.8 <iso646.h> Implementation ............................................................................................... 38 7.9 <limits.h> Implementation ................................................................................................. 39 7.10 <locale.h> Implementation ................................................................................................ 39 7.11 <math.h> Implementation ................................................................................................. 39 7.12 <setjmp.h> Implementation ............................................................................................... 40 7.13 <signal.h> Implementation ................................................................................................ 40 7.14 <stdarg.h> Implementation................................................................................................ 40 7.15 <stdbool.h> Implementation .............................................................................................. 40 7.16 <stddef.h> Implementation................................................................................................ 40 7.17 <stdint.h> Implementation................................................................................................. 40 7.18 <stdio.h> Implementation ................................................................................................. 41 7.19 <stdlib.h> Implementation................................................................................................. 41 7.20 <string.h> Implementation................................................................................................
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages86 Page
-
File Size-