标准解读

《GB/T 30997-2014 编程语言 C 支持嵌入式处理器的扩展》这一国家标准,旨在为C语言在嵌入式系统中的应用提供指导。它基于ISO/IEC 9899:1999(即C99标准)并针对嵌入式环境的特点进行了特定的调整与补充。该标准不仅定义了适用于嵌入式系统的C语言特性,还涵盖了编译器、库函数以及开发工具等方面的要求。

在内容上,《GB/T 30997-2014》特别强调了几点关键要素:

  • 内存模型:详细描述了如何处理指针类型和地址空间问题,这对于资源受限的嵌入式设备尤为重要。
  • 整数类型:明确了不同宽度整数类型的使用规范,帮助开发者更好地控制数据大小以适应有限的硬件资源。
  • 浮点支持:虽然许多低端嵌入式系统可能不直接支持浮点运算,但标准中仍提供了相关指南,允许通过软件模拟等方式实现所需功能。
  • 中断处理:讨论了如何在C程序中安全有效地管理中断服务例程,这是实时操作系统(RTOS)中常见的需求之一。
  • 低功耗模式:介绍了编程技术来优化能量消耗,比如合理安排任务调度策略等方法。
  • 代码体积与执行效率:提出了若干建议和技术手段,用以减少最终生成的目标代码大小同时保持良好性能。

此外,该文件还包括了一些示例代码片段,用于说明如何正确地利用上述特性和规则编写高效且可移植性强的应用程序。通过遵循这些规定,开发者可以创建出更加稳定可靠、易于维护的嵌入式解决方案。


如需获取更多详尽信息,请直接参考下方经官方授权发布的权威标准文档。

....

查看全部

  • 现行
  • 正在执行有效
  • 2014-09-03 颁布
  • 2015-02-01 实施
©正版授权
GB/T 30997-2014编程语言C支持嵌入式处理器的扩展_第1页
GB/T 30997-2014编程语言C支持嵌入式处理器的扩展_第2页
GB/T 30997-2014编程语言C支持嵌入式处理器的扩展_第3页
GB/T 30997-2014编程语言C支持嵌入式处理器的扩展_第4页
GB/T 30997-2014编程语言C支持嵌入式处理器的扩展_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

免费下载试读页

文档简介

ICS35060

L74.

中华人民共和国国家标准

GB/T30997—2014/ISO/IECTR180372008

:

编程语言C支持嵌入式处理器的扩展

Programminglanguages—C—Extensionstosupportembeddedprocessors

(ISO/IECTR18037:2008,IDT)

2014-09-03发布2015-02-01实施

中华人民共和国国家质量监督检验检疫总局发布

中国国家标准化管理委员会

GB/T30997—2014/ISO/IECTR180372008

:

目次

前言

…………………………Ⅲ

引言

…………………………Ⅳ

范围

1………………………1

规范性引用文件

2…………………………1

符合性

3……………………1

定点运算

4…………………1

定点数据类型概述和原则

4.1…………1

对的详细变更

4.2ISO/IEC9899:1999………………7

命名地址空间和命名寄存器存储类

5……………………27

命名地址空间概述及原则

5.1…………27

命名寄存器存储类概述及其原则

5.2…………………28

对的详细变更

5.3ISO/IEC9899:1999………………30

基本硬件寻址

6I/O……………………34

原理

6.1…………………34

术语

6.2…………………35

基本硬件寻址头文件

6.3I/O<iohw.h>………………36

规定寄存器

6.4I/O……………………37

对的详细变更

6.5ISO/IEC9899:1999………………40

附录资料性附录定点运算

A()…………46

定点数据类型

A.1………………………46

和中数据位的个数

A.2_Fract_Accum…………………48

可能的数据类型实现

A.3………………48

舍入和溢出

A.4…………………………49

类型转换一般算术转换

A.5,……………50

涉及定点类型的运算

A.6………………50

和乘法结果的例外

A.71-1……………51

语言变量和无符号定点类型的示例

A.8unsigned_Fract:……………51

附录资料性附录命名地址空间和命名寄存器存储类

B()……………53

嵌入式系统的扩展内存支持

B.1…………53

命名地址空间的修饰符

B.1.1…………53

应用定义的多个地址空间支持

B.1.2…………………54

内在地址空间或用户定义地址空间的寄存器定义

B.1.3I/O………54

附录资料性附录实现头文件

C()<IOWH.H>…………56

通则

C.1……………………56

GB/T30997—2014/ISO/IECTR180372008

:

推荐步骤

C.1.1…………………………56

编译器的考虑

C.1.2……………………56

硬件连接选项概述

C.2I/O………………56

多寻址和寄存器的字节序

C.2.1I/O…………………57

地址交叉

C.2.2…………………………57

连接概述

C.2.3I/O……………………57

通用的缓冲索引

C.2.4…………………58

不同的寻址方法的寄存器指定符

C.3I/OI/O………59

原子操作

C.4………………59

读改写操作和多寻址的情况

C.5——……………………60

初始化

C.6I/O……………60

硬件访问的内在特性

C.7I/O……………61

附录资料性附录实现的迁移路径

D()<IOHW.H>……………………62

实现的迁移路径

D.1<iohw.h>……………62

基于宏的实现

D.2C<iohw.h>…………62

访问规格方法

D.2.1……………………62

一种的实现技术

D.2.2<iohw.h>………………………62

特征

D.2.3………………63

头文件

D.2.4<iohw.h>…………………63

用户的寄存器指定符定义

D.2.5I/O…………………66

驱动函数

D.2.6…………………………67

附录资料性附录本标准中未包括的功能

E()…………69

循环缓冲

E.1………………69

复杂数据类型

E.2…………………………70

嵌入式系统中数据类型的考虑

E.3BCD………………70

取模回绕溢出

E.4…………………………70

附录资料性附录兼容性和移植问题

F()C++………71

定点运算

F.1………………71

多地址空间支持

F.2………………………71

基础硬件寻址

F.3I/O…………………71

GB/T30997—2014/ISO/IECTR180372008

:

前言

本标准按照给出的规则起草

GB/T1.1—2009。

本标准使用翻译法等同采用技术报告编程语言支持嵌

ISO/IECISO/IECTR18037:2008《C

入式处理器的扩展做了如下编辑性修改

》,:

增加对标准适用范围的描述

———;

对原文的符合性要求做了以下编辑性修改原文中表述因为这是一份技术报告所以不存在

———:“,

符合性要求实现者可以自由选择他们需要的那些规范

,。(AsthisisaTechnicalReportthere

arenoconformancerequirementsandimplementersarefreetoselectthosespecificationsthat

转化为我国国家标准后不宜有此表述故将其删除

theyneed.)”,,;

原文中列举出对编程语言部分条目的编辑性修改为与本标准自身条

———ISO/IEC9899:1999C,

目相区别将编程语言的条目加实线框以区分

,ISO/IEC9899:1999C;

删除了资料性附录对技术报告第二版的更新和变更

———G18037。

本标准由全国信息技术标准化委员会提出并归口

(SAC/TC28)。

本标准起草单位中国电子技术标准化研究院复旦大学上海计算机软件评测重点实验室

:、、。

本标准主要起草人李海波杨丽蕴丛培勇贺红卫苗宗利王雷钱乐秋蔡立志

:、、、、、、、。

GB/T30997—2014/ISO/IECTR180372008

:

引言

在快速增长的嵌入式系统市场使用诸如语言之类高级语言编写应用程序的需求在不断增加

,C。

基本上造成这种趋势的原因有两种嵌入式系统的程序变得更加复杂使用汇编语言会难以维护和嵌

,:()

入式系统处理器模型的生命周期在变短这隐含了应用程序要更频繁地重新适应新的指令集语言

()。C

级别上的编程所能获得的代码重用性被认为是解决上述问题的一个重要前进步骤

很多技术领域都定义了由处理器提供的功能例如这些在嵌入式系统中使用的功能不容易

(DSP),

被语言编写的应用程序采用比如定点操作不同内存空间的用法和底层操作等目前的提

C。,、I/O。

案仅仅只能解决这些技术领域中的一小部分问题

嵌入式处理器经常被用来分析模拟信号以及通过对接收到的数据运用滤波算法来处理这些信号

,。

典型的应用程序可以在所有的无线设备中找到滤波算法中使用的通用数据类型是定点数据类型并

。,

且为了达到必要的速度嵌入式处理器经常会配备特殊的定点数据设备由于语言根据

,,。C(

中的定义不提供对定点运算操作的支持导致目前程序员因无法选择而不得不使

ISO/IEC9899:1999),

用汇编语言手工编写其大多数算法本标准为语言指定了一个在一定精度和饱和度范围内定义的

。C

定点数据类型优化编译器能像对整型和浮点型数据一样容易地为定点数据类型生成高效率的

。C

代码

许多嵌入式处理器拥有多个不同的内存库并且要求将数据按不同的库分组以达到最大的性能例

如确保针对过滤设计出进入处理器的乘法器累加器的并发数据流和协同数据对处理器的操作

,FIR/,

至关重要为了允许程序员声明那个必须从中取出某特定数据对象的内存空间本标准规定了对多个

。,

地址空间的基本支持因而优化编译器能利用那些支持多个地址空间的处理器的能力例如在一个

。,,,

周期内从两个分离的内存中读取数据以获得最大执行速度

,。

随着语言这些年的逐渐成熟语言中加入了多种访问基本硬件寄存器的扩展来克服

C,I/O(iohw)

语言的缺陷如今几乎所有的独立式环境和嵌入式系统的编译器都支持一些从源码级别上直接

。,CC

访问寄存器的方法然而这些扩展在不同的语言方言之间仍然是不一致的

iohw。,C“”。

本标准提供了一种方法用于针对基本寄存器寻址编纂通用实践和提供单一的统一语法

,iohw。

建议本标准与结合使用

ISO/IEC9899:1999。

GB/T30997—2014/ISO/IECTR180372008

:

编程语言C支持嵌入式处理器的扩展

1范围

本标准规定了编程语言的一系列扩展这些扩展支持嵌入式处理器

ISO/IEC9899:1999C。。

本标准的每章都处理一个特定的主题第章的第一条都包含了对该主题的特征的技术描

。4、5、6

述这些条文提供了概览但不包含所有的细节每一章的最后一条都包含对编

。。ISO/IEC9899:1999

程语言的编辑性修改这些修改对完整地规定中相关主题是必要的并提供一

C,ISO/IEC9899:1999,

个完整的定义附加的解释和原理列在附录中

。。

本标准适用于使用语言对嵌入式处理器进行程序开发的过程

C。

2规范性引用文件

下列文件对于本文件的应用是必不可少的凡是注日期的引用文件仅注日期的版本适用于本文

。,

件凡是不注日期的引用文件其最新版本包括所有的修改单适用于本文件

。,()。

编程语言

ISO/IEC9899:1999C(ISO/IEC9899:1999—Programminglanguages—C)

3符合性

温馨提示

  • 1. 本站所提供的标准文本仅供个人学习、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
  • 2. 本站所提供的标准均为PDF格式电子版文本(可阅读打印),因数字商品的特殊性,一经售出,不提供退换货服务。
  • 3. 标准文档要求电子版与印刷版保持一致,所以下载的文档中可能包含空白页,非文档质量问题。

评论

0/150

提交评论