標準解讀

《GB/T 30997-2014 編程語言 C 支持嵌入式處理器的擴展》這一國家標準,旨在為C語言在嵌入式系統中的應用提供指導。它基于ISO/IEC 9899:1999(即C99標準)并針對嵌入式環(huán)境的特點進行了特定的調整與補充。該標準不僅定義了適用于嵌入式系統的C語言特性,還涵蓋了編譯器、庫函數以及開發(fā)工具等方面的要求。

在內容上,《GB/T 30997-2014》特別強調了幾點關鍵要素:

  • 內存模型:詳細描述了如何處理指針類型和地址空間問題,這對于資源受限的嵌入式設備尤為重要。
  • 整數類型:明確了不同寬度整數類型的使用規(guī)范,幫助開發(fā)者更好地控制數據大小以適應有限的硬件資源。
  • 浮點支持:雖然許多低端嵌入式系統可能不直接支持浮點運算,但標準中仍提供了相關指南,允許通過軟件模擬等方式實現所需功能。
  • 中斷處理:討論了如何在C程序中安全有效地管理中斷服務例程,這是實時操作系統(RTOS)中常見的需求之一。
  • 低功耗模式:介紹了編程技術來優(yōu)化能量消耗,比如合理安排任務調度策略等方法。
  • 代碼體積與執(zhí)行效率:提出了若干建議和技術手段,用以減少最終生成的目標代碼大小同時保持良好性能。

此外,該文件還包括了一些示例代碼片段,用于說明如何正確地利用上述特性和規(guī)則編寫高效且可移植性強的應用程序。通過遵循這些規(guī)定,開發(fā)者可以創(chuàng)建出更加穩(wěn)定可靠、易于維護的嵌入式解決方案。


如需獲取更多詳盡信息,請直接參考下方經官方授權發(fā)布的權威標準文檔。

....

查看全部

  • 現行
  • 正在執(zhí)行有效
  • 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頁未讀, 繼續(xù)免費閱讀

下載本文檔

免費下載試讀頁

文檔簡介

ICS35060

L74.

中華人民共和國國家標準

GB/T30997—2014/ISO/IECTR180372008

:

編程語言C支持嵌入式處理器的擴展

Programminglanguages—C—Extensionstosupportembeddedprocessors

(ISO/IECTR18037:2008,IDT)

2014-09-03發(fā)布2015-02-01實施

中華人民共和國國家質量監(jiān)督檢驗檢疫總局發(fā)布

中國國家標準化管理委員會

GB/T30997—2014/ISO/IECTR180372008

:

目次

前言

…………………………Ⅲ

引言

…………………………Ⅳ

范圍

1………………………1

規(guī)范性引用文件

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

規(guī)定寄存器

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

多尋址和寄存器的字節(jié)序

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

訪問規(guī)格方法

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

循環(huán)緩沖

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

:

前言

本標準按照給出的規(guī)則起草

GB/T1.1—2009。

本標準使用翻譯法等同采用技術報告編程語言支持嵌

ISO/IECISO/IECTR18037:2008《C

入式處理器的擴展做了如下編輯性修改

》,:

增加對標準適用范圍的描述

———;

對原文的符合性要求做了以下編輯性修改原文中表述因為這是一份技術報告所以不存在

———:“,

符合性要求實現者可以自由選擇他們需要的那些規(guī)范

,。(AsthisisaTechnicalReportthere

arenoconformancerequirementsandimplementersarefreetoselectthosespecificationsthat

轉化為我國國家標準后不宜有此表述故將其刪除

theyneed.)”,,;

原文中列舉出對編程語言部分條目的編輯性修改為與本標準自身條

———ISO/IEC9899:1999C,

目相區(qū)別將編程語言的條目加實線框以區(qū)分

,ISO/IEC9899:1999C;

刪除了資料性附錄對技術報告第二版的更新和變更

———G18037。

本標準由全國信息技術標準化委員會提出并歸口

(SAC/TC28)。

本標準起草單位中國電子技術標準化研究院復旦大學上海計算機軟件評測重點實驗室

:、、。

本標準主要起草人李海波楊麗蘊叢培勇賀紅衛(wèi)苗宗利王雷錢樂秋蔡立志

:、、、、、、、。

GB/T30997—2014/ISO/IECTR180372008

:

引言

在快速增長的嵌入式系統市場使用諸如語言之類高級語言編寫應用程序的需求在不斷增加

,C。

基本上造成這種趨勢的原因有兩種嵌入式系統的程序變得更加復雜使用匯編語言會難以維護和嵌

,:()

入式系統處理器模型的生命周期在變短這隱含了應用程序要更頻繁地重新適應新的指令集語言

()。C

級別上的編程所能獲得的代碼重用性被認為是解決上述問題的一個重要前進步驟

。

很多技術領域都定義了由處理器提供的功能例如這些在嵌入式系統中使用的功能不容易

(DSP),

被語言編寫的應用程序采用比如定點操作不同內存空間的用法和底層操作等目前的提

C。,、I/O。

案僅僅只能解決這些技術領域中的一小部分問題

。

嵌入式處理器經常被用來分析模擬信號以及通過對接收到的數據運用濾波算法來處理這些信號

,。

典型的應用程序可以在所有的無線設備中找到濾波算法中使用的通用數據類型是定點數據類型并

。,

且為了達到必要的速度嵌入式處理器經常會配備特殊的定點數據設備由于語言根據

,,。C(

中的定義不提供對定點運算操作的支持導致目前程序員因無法選擇而不得不使

ISO/IEC9899:1999),

用匯編語言手工編寫其大多數算法本標準為語言指定了一個在一定精度和飽和度范圍內定義的

。C

定點數據類型優(yōu)化編譯器能像對整型和浮點型數據一樣容易地為定點數據類型生成高效率的

。C

代碼

。

許多嵌入式處理器擁有多個不同的內存庫并且要求將數據按不同的庫分組以達到最大的性能例

。

如確保針對過濾設計出進入處理器的乘法器累加器的并發(fā)數據流和協同數據對處理器的操作

,FIR/,

至關重要為了允許程序員聲明那個必須從中取出某特定數據對象的內存空間本標準規(guī)定了對多個

。,

地址空間的基本支持因而優(yōu)化編譯器能利用那些支持多個地址空間的處理器的能力例如在一個

。,,,

周期內從兩個分離的內存中讀取數據以獲得最大執(zhí)行速度

,。

隨著語言這些年的逐漸成熟語言中加入了多種訪問基本硬件寄存器的擴展來克服

C,I/O(iohw)

語言的缺陷如今幾乎所有的獨立式環(huán)境和嵌入式系統的編譯器都支持一些從源碼級別上直接

。,CC

訪問寄存器的方法然而這些擴展在不同的語言方言之間仍然是不一致的

iohw。,C“”。

本標準提供了一種方法用于針對基本寄存器尋址編纂通用實踐和提供單一的統一語法

,iohw。

建議本標準與結合使用

ISO/IEC9899:1999。

GB/T30997—2014/ISO/IECTR180372008

:

編程語言C支持嵌入式處理器的擴展

1范圍

本標準規(guī)定了編程語言的一系列擴展這些擴展支持嵌入式處理器

ISO/IEC9899:1999C。。

本標準的每章都處理一個特定的主題第章的第一條都包含了對該主題的特征的技術描

。4、5、6

述這些條文提供了概覽但不包含所有的細節(jié)每一章的最后一條都包含對編

。。ISO/IEC9899:1999

程語言的編輯性修改這些修改對完整地規(guī)定中相關主題是必要的并提供一

C,ISO/IEC9899:1999,

個完整的定義附加的解釋和原理列在附錄中

。。

本標準適用于使用語言對嵌入式處理器進行程序開發(fā)的過程

C。

2規(guī)范性引用文件

下列文件對于本文件的應用是必不可少的凡是注日期的引用文件僅注日期的版本適用于本文

。,

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

。,()。

編程語言

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

3符合性

溫馨提示

  • 1. 本站所提供的標準文本僅供個人學習、研究之用,未經授權,嚴禁復制、發(fā)行、匯編、翻譯或網絡傳播等,侵權必究。
  • 2. 本站所提供的標準均為PDF格式電子版文本(可閱讀打?。?,因數字商品的特殊性,一經售出,不提供退換貨服務。
  • 3. 標準文檔要求電子版與印刷版保持一致,所以下載的文檔中可能包含空白頁,非文檔質量問題。

評論

0/150

提交評論