没有合适的资源?快使用搜索试试~ 我知道了~
C Library ABI for the ARM Architecture
需积分: 15 8 下载量 60 浏览量
2018-05-09
14:26:13
上传
评论
收藏 311KB PDF 举报
温馨提示
This document defines an ANSI C (C89) run-time library ABI for programs written in ARM and Thumb assembly language, C, and stand alone C++.
资源推荐
资源详情
资源评论
C Library ABI for the ARM architecture
ARM IHI 0039D
Copyright © 2003-2007, 2009, 2012, 2014-2015 ARM Limited. All rights reserved. Page 1 of 35
C Library ABI for the ARM
®
Architecture
Document number: ARM IHI 0039D, current through ABI release 2.10
Date of Issue: 24
th
November 2015
Abstract
This document defines an ANSI C (C89) run-time library ABI for programs written in ARM and Thumb assembly
language, C, and stand alone C++.
Keywords
C library ABI, run-time library
How to find the latest release of this specification or report a defect in it
Please check the ARM Information Center (http://infocenter.arm.com/) for a later release if your copy is more than one year old
(navigate to the ARM Software development tools section, ABI for the ARM Architecture subsection).
Please report defects in this specification to arm dot eabi at arm dot com.
Licence
THE TERMS OF YOUR ROYALTY FREE LIMITED LICENCE TO USE THIS ABI SPECIFICATION ARE GIVEN IN SECTION
1.4, Your licence to use this specification (ARM contract reference
LEC-ELA-00081 V2.0). PLEASE READ THEM
CAREFULLY
.
BY DOWNLOADING OR OTHERWISE USING THIS SPECIFICATION, YOU AGREE TO BE BOUND BY ALL OF ITS
TERMS. IF YOU DO NOT AGREE TO THIS, DO NOT DOWNLOAD OR USE THIS SPECIFICATION.
THIS
ABI SPECIFICATION IS PROVIDED “AS IS” WITH NO WARRANTIES (SEE SECTION 1.4 FOR DETAILS).
Proprietary notice
ARM, Thumb, RealView, ARM7TDMI and ARM9TDMI are registered trademarks of ARM Limited. The ARM logo
is a trademark of ARM Limited. ARM9, ARM926EJ-S, ARM946E-S, ARM1136J-S, ARM1156T2F-S, ARM1176JZ-
S, Cortex, and Neon are trademarks of ARM Limited. All other products or services mentioned herein may be
trademarks of their respective owners.
C Library ABI for the ARM architecture
ARM IHI 0039D
Copyright © 2003-2007, 2009, 2012, 2014-2015 ARM Limited. All rights reserved. Page 2 of 35
Contents
1 ABOUT THIS DOCUMENT 5
1.1 Change control 5
1.1.1 Current status and anticipated changes 5
1.1.2 Change history 5
1.2 References 5
1.3 Terms and abbreviations 6
1.4 Your licence to use this specification 6
1.5 Acknowledgements 7
2 SCOPE 8
3 INTRODUCTION 9
3.1 Most C library functions have a standard ABI 9
3.1.1 Already standardized C library functions 9
3.1.2 Nearly standardized C library functions 10
3.1.3 C library functions operating on potentially opaque structures 10
3.1.4 Miscellanea 10
3.2 A C library is all or nothing 10
3.3 Important corollaries of this C library standardization model 11
3.4 Private names for private and AEABI-specific helper functions 11
4 THE C LIBRARY 13
4.1 C Library overview 13
4.2 The C library standardization model 14
4.2.1 Purpose and principles 14
4.2.2 Obstacles to creating a C library ABI 14
4.2.2.1 Compile-time constants that cannot be constant at compile time 15
4.2.2.2 Inadequately specified structures 15
4.2.2.3 Inline functions that expose implementation details 15
4.2.2.4 Under-specified exported data 15
4.2.3 Our approach to defining a C library ABI 15
4.2.3.1 Compile time constants 15
4.2.3.2 Structures used in the C library interface 16
4.2.3.3 Inline functions 17
4.2.4 Naming issues in C++ header files 18
4.2.4.1 Names introduced by this C library ABI into <cyyy> headers 18
4.2.4.2 C++ names of C library functions 18
4.2.5 Library file organization 18
C Library ABI for the ARM architecture
ARM IHI 0039D
Copyright © 2003-2007, 2009, 2012, 2014-2015 ARM Limited. All rights reserved. Page 3 of 35
4.3 Summary of the inter-tool-chain compatibility model 18
5 THE C LIBRARY SECTION BY SECTION 20
5.1 Introduction and conventions 20
5.1.1 Detecting whether a header file honors an AEABI portability request 20
5.2 assert.h 20
5.3 ctype.h 21
5.3.1 ctype.h when _AEABI_PORTABILITY_LEVEL != 0 and isxxxxx inline 21
5.3.1.1 Encoding of ctype table entries and macros (_AEABI_PORTABILITY_LEVEL != 0) 22
5.4 errno.h 22
5.5 float.h 23
5.6 inttypes.h 23
5.7 iso646.h 23
5.8 limits.h 23
5.9 locale.h 24
5.10 math.h 25
5.11 setjmp.h 26
5.12 signal.h 26
5.13 stdarg.h 27
5.14 stdbool.h 28
5.15 stddef.h 28
5.16 stdint.h 28
5.17 stdio.h 28
5.17.1 Background discussion and rationale 28
5.17.2 Easy stdio.h definitions 29
5.17.3 Difficult stdio.h definitions 29
5.18 stdlib.h 30
5.19 string.h 30
5.20 time.h 31
5.21 wchar.h 31
5.22 wctype.h 31
C Library ABI for the ARM architecture
ARM IHI 0039D
Copyright © 2003-2007, 2009, 2012, 2014-2015 ARM Limited. All rights reserved. Page 5 of 35
1 ABOUT THIS DOCUMENT
1.1 Change control
1.1.1 Current status and anticipated changes
This document has been released publicly. Anticipated changes to this document include:
Typographical corrections.
Clarifications.
Compatible extensions.
1.1.2 Change history
Issue Date By Change
0.1
30
th
October 2003 LS First public DRAFT.
2.0
24
th
March 2005 LS First public release.
2.01
4
th
July 2005 LS First batch of typographical corrections. Added stdbool.h.
2.02
5
th
October 2005 LS Clarified the intention behind __B and isblank() in §5.3.1.1. Fixed
the clash with the C99 specification.
2.03
5
th
May 2006 LS Corrected misinformation in §5.12 concerning (non-)atomic access
to 8-byte types using ldrd/strd/ldm/stm.
2.04 /
A
25
th
October 2007 LS In §3.4, used the common table of registered vendor names
Document renumbered (formerly GENC-003539 v2.04).
B
4
th
November 2009 LS Added §4.2.4.2 explaining why, in C++ generating portable binary,
standard library functions should be used via extern “C” linkage.
C r2.09
30
th
November 2012 AC §5.2 Clarified the intended method of customizing assert(). §5.11
Corrected calculation of minimum jmp_buf size (previously given as
24 double-words).
D r2.10
24
th
November 2015 CR §5.21 Permit wint_t to be unsigned int.
1.2 References
This document refers to, and is referred to by, the following documents.
Ref URL or other reference Title
AAELF
ELF for the ARM Architecture.
AAPCS
Procedure Call Standard for the ARM Architecture.
BSABI
ABI for the ARM Architecture (Base Standard).
CLIBABI
This document
C Library ABI for the ARM Architecture
CPPABI
C++ ABI for the ARM Architecture
剩余34页未读,继续阅读
资源评论
Robert_NORM
- 粉丝: 2
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功