- 4
- 0
- 约 38页
- 2016-10-17 发布于湖北
- 举报
ARM体系结构与编程(第2版)第10章
10.6 ARM编译器中的预定义宏 ARM编译器预定义了一些宏,有些预定义宏对应一定的数值,有些预定义宏没有对应的数值。表10.7列出了这些预定义宏及其有效的场合。 参见教材P337 * 10.7 ARM中的C/C++库 本节介绍ARM C/C++运行时库,这些库为运行C/C++应用程序提供了各种支持。本节主要包括下面4部分内容: ARM中C/C++库的基本概念。 建立一个使用C/C++库的C/C++应用程序。 建立一个不使用C/C++库的C/C++应用程序。 裁减C/C++运行时库,以适应特定的目标运行环境。 * 10.7.1 ARM中的C/C++运行时库概述 1.??ARM中的C/C++运行时库类型 2.??ARM中C/C++库的存放位置 3.??ARM C/C++库的可重入性 4. 使用ARM C/C++库时应注意的事项 * 10.7.2 建立一个包含C/C++运行时库的C/C++应用程序 C/C++应用程序可以使用C/C++运行时库中的函数,这时,C运行时库将会完成下面的功能。 建立C/C++应用程序运行环境,这包括: 建立数据栈。 如果需要,建立数据堆。 初始化需要使用的C/C++运行时库。 运行程序main()。 提供对ISO C标准规定的函数的支持。 捕捉C/C++应用程序运行时产生的错误信息,并根据具体的实施规则进行相应的处理。 C/C++应用程序使用C/C++运行时库的方式有下面几种,本小节介绍前两种,10.7.3小节介绍第3种。 (1) 在semihost环境下使用C/C++运行时库。 (2) 在没有主机支持的环境下,如应用程序位于目标系统的ROM中,使用C/C++运行时库。 (3) C/C++应用程序不使用main(),也不初始化C/C++运行时库。 * 10.7.2 建立一个包含C/C++运行时库的C/C++应用程序 1. 在semihost环境下使用C/C++运行时库 2. 在nonsemihosted环境下使用C/C++运行时库 * 10.7.3 建立不包含C运行时库的应用程序 当应用程序中包含了函数main()时,将会引起对C运行时库的初始化。如果应用程序中不包含函数main(),将不会引起对C运行时库的初始化。这时,C运行时库的很多功能在应用程序中是不能使用的。本小节将这种不使用C运行时库的C/C++应用程序称为裸机C程序。裸机C程序不能使用下面的功能: 软件的数据栈溢出检查。 低级标准输入/输出stdio。 signal.h中定义的函数signal()及raise()。 atexit()。 alloca()。 * 10.7.3 建立不包含C运行时库的应用程序 1.??C运行时库中的一些支持函数的使用 2. 裸机C程序 重新实现-__rt_raise(),该函数被程序中的错误处理代码使用。 不要定义函数main()。 在编译选项中不要使用软件的数据栈溢出检查选项。 编写一个汇编指令的代码段(veneer),设置相关的寄存器,为运行C程序做好必要的准备。 保证自己编写的用于初始化的代码段得到运行。比如,可以将其放置到复位异常中断的中断处理程序中。 编译程序时,使用编译选项-fpu none。 3. 支持浮点操作的裸机C程序 4. 使用C运行时库中的函数 * 10.7.4 裁减C/C++运行时库以适应特定的目标运行环境 1.??C/C++应用程序初始化C/C++运行时库的过程 将非固定(Nonroot)的执行代码域(Region)从装载地址空间复制到运行地址空间。 将ZI域置零。 跳转到__rt_entry()运行。 2.??C/C++应用程序的退出过程 应用程序可以在正常运行结束后从main()函数中退出,也可以因为错误原因在程序运行中退出。 * 10.1 ARM C/C++编译器概述 本节介绍编译ARM程序时的一些基本概念。ARM编译器的具体使用方法将在10.2节介绍。 * 10.1.1 ARM C/C++编译器及语言库介绍 ARM集成开发环境中包含的C/C++编译器如表10.1中所示。 * 编译器名称 编译器种类 源文件类型 源文件后缀 输出的目标文件类型 armcc C C .C 32位ARM代码 tcc C C .C 16位Thumb代码 armcpp C++ C/C++ .C/.CPP 32位ARM代码 tcpp C++ C/C++ .C/.CPP 16位Thumb代码 10.1.1 ARM C/C++编译器及语言库介绍 ARM集成开发环境中C/C++语言的库包括下面几种: ARM C语言库 Rogue Wave C++库 支持库 ARM中C/C++语言库是以二进制的形式提供的。对应于不同的ATPCS格式,有相应格式的C/C++语言库,这是通过不同的编译器
您可能关注的文档
- ajx_1129_连锁零售行业财务分析.ppt
- AMI Sodium P 钠离子分析仪简单操作说明.doc
- AMS Device Manager for PSS Training_1.ppt
- American-jury-system.ppt
- Android Phone模块基本介绍.docx
- Analysis of Apple Corp.ppt
- AMX 产品及产品配置training.ppt
- Android制作俄罗斯方块游戏(完整).doc
- AN系列静叶可调轴流风机(成都电力机械厂).docx
- ANSYS在高电压绝缘技术中的应用.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 人教版小学六年级数学册期末检测试卷共八套.doc VIP
- 《新时代汉语口语:中级·下》PPT第15课 读万卷书,行万里路.pptx VIP
- 《新时代汉语口语:中级·下》PPT第5课 如今的四合院.pptx VIP
- 村支书考录公务员笔试试卷(含答案).docx VIP
- 《新时代汉语口语:中级·下》PPT第13课 孩子的零花钱怎么给(新).pptx VIP
- 《新时代汉语口语:中级·下》PPT第11课 我的“选择困难症又犯了(新).pptx VIP
- 铝灰渣资源化利用污染控制技术规范.pdf VIP
- 《新时代汉语口语:中级·下》PPT第14课 我想搬出去住(新).pptx VIP
- 《新时代汉语口语:中级·下》PPT第7课 网购与生活 .pptx VIP
- 2023年江苏省专转本考试计算机真题附答案解析.docx VIP
原创力文档

文档评论(0)