C7000 Embedded Application Binary Interface (EABI)

C7000 Embedded Application Binary Interface (EABI)

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................................................................................................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    86 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us