標(biāo)準(zhǔn)解讀

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

在內(nèi)容上,《GB/T 30997-2014》特別強(qiáng)調(diào)了幾點(diǎn)關(guān)鍵要素:

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

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


如需獲取更多詳盡信息,請(qǐng)直接參考下方經(jīng)官方授權(quán)發(fā)布的權(quán)威標(biāo)準(zhǔn)文檔。

....

查看全部

  • 現(xiàn)行
  • 正在執(zhí)行有效
  • 2014-09-03 頒布
  • 2015-02-01 實(shí)施
?正版授權(quán)
GB/T 30997-2014編程語言C支持嵌入式處理器的擴(kuò)展_第1頁
GB/T 30997-2014編程語言C支持嵌入式處理器的擴(kuò)展_第2頁
GB/T 30997-2014編程語言C支持嵌入式處理器的擴(kuò)展_第3頁
GB/T 30997-2014編程語言C支持嵌入式處理器的擴(kuò)展_第4頁
GB/T 30997-2014編程語言C支持嵌入式處理器的擴(kuò)展_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

GB/T 30997-2014編程語言C支持嵌入式處理器的擴(kuò)展-免費(fèi)下載試讀頁

文檔簡介

ICS35060

L74.

中華人民共和國國家標(biāo)準(zhǔn)

GB/T30997—2014/ISO/IECTR180372008

:

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

Programminglanguages—C—Extensionstosupportembeddedprocessors

(ISO/IECTR18037:2008,IDT)

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

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

中國國家標(biāo)準(zhǔn)化管理委員會(huì)

GB/T30997—2014/ISO/IECTR180372008

:

目次

前言

…………………………Ⅲ

引言

…………………………Ⅳ

范圍

1………………………1

規(guī)范性引用文件

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

符合性

3……………………1

定點(diǎn)運(yùn)算

4…………………1

定點(diǎn)數(shù)據(jù)類型概述和原則

4.1…………1

對(duì)的詳細(xì)變更

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

命名地址空間和命名寄存器存儲(chǔ)類

5……………………27

命名地址空間概述及原則

5.1…………27

命名寄存器存儲(chǔ)類概述及其原則

5.2…………………28

對(duì)的詳細(xì)變更

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

基本硬件尋址

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

原理

6.1…………………34

術(shù)語

6.2…………………35

基本硬件尋址頭文件

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

規(guī)定寄存器

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

對(duì)的詳細(xì)變更

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

附錄資料性附錄定點(diǎn)運(yùn)算

A()…………46

定點(diǎn)數(shù)據(jù)類型

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

和中數(shù)據(jù)位的個(gè)數(shù)

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

可能的數(shù)據(jù)類型實(shí)現(xiàn)

A.3………………48

舍入和溢出

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

類型轉(zhuǎn)換一般算術(shù)轉(zhuǎn)換

A.5,……………50

涉及定點(diǎn)類型的運(yùn)算

A.6………………50

和乘法結(jié)果的例外

A.71-1……………51

語言變量和無符號(hào)定點(diǎn)類型的示例

A.8unsigned_Fract:……………51

附錄資料性附錄命名地址空間和命名寄存器存儲(chǔ)類

B()……………53

嵌入式系統(tǒng)的擴(kuò)展內(nèi)存支持

B.1…………53

命名地址空間的修飾符

B.1.1…………53

應(yīng)用定義的多個(gè)地址空間支持

B.1.2…………………54

內(nèi)在地址空間或用戶定義地址空間的寄存器定義

B.1.3I/O………54

附錄資料性附錄實(shí)現(xiàn)頭文件

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

通則

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

GB/T30997—2014/ISO/IECTR180372008

:

推薦步驟

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

編譯器的考慮

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

硬件連接選項(xiàng)概述

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

硬件訪問的內(nèi)在特性

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

附錄資料性附錄實(shí)現(xiàn)的遷移路徑

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

實(shí)現(xiàn)的遷移路徑

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

基于宏的實(shí)現(xiàn)

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

訪問規(guī)格方法

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

一種的實(shí)現(xiàn)技術(shù)

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

特征

D.2.3………………63

頭文件

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

用戶的寄存器指定符定義

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

驅(qū)動(dòng)函數(shù)

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

附錄資料性附錄本標(biāo)準(zhǔn)中未包括的功能

E()…………69

循環(huán)緩沖

E.1………………69

復(fù)雜數(shù)據(jù)類型

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

嵌入式系統(tǒng)中數(shù)據(jù)類型的考慮

E.3BCD………………70

取?;乩@溢出

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

附錄資料性附錄兼容性和移植問題

F()C++………71

定點(diǎn)運(yùn)算

F.1………………71

多地址空間支持

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

基礎(chǔ)硬件尋址

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

GB/T30997—2014/ISO/IECTR180372008

:

前言

本標(biāo)準(zhǔn)按照給出的規(guī)則起草

GB/T1.1—2009。

本標(biāo)準(zhǔn)使用翻譯法等同采用技術(shù)報(bào)告編程語言支持嵌

ISO/IECISO/IECTR18037:2008《C

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

》,:

增加對(duì)標(biāo)準(zhǔn)適用范圍的描述

———;

對(duì)原文的符合性要求做了以下編輯性修改原文中表述因?yàn)檫@是一份技術(shù)報(bào)告所以不存在

———:“,

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

,。(AsthisisaTechnicalReportthere

arenoconformancerequirementsandimplementersarefreetoselectthosespecificationsthat

轉(zhuǎn)化為我國國家標(biāo)準(zhǔn)后不宜有此表述故將其刪除

theyneed.)”,,;

原文中列舉出對(duì)編程語言部分條目的編輯性修改為與本標(biāo)準(zhǔn)自身?xiàng)l

———ISO/IEC9899:1999C,

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

,ISO/IEC9899:1999C;

刪除了資料性附錄對(duì)技術(shù)報(bào)告第二版的更新和變更

———G18037。

本標(biāo)準(zhǔn)由全國信息技術(shù)標(biāo)準(zhǔn)化委員會(huì)提出并歸口

(SAC/TC28)。

本標(biāo)準(zhǔn)起草單位中國電子技術(shù)標(biāo)準(zhǔn)化研究院復(fù)旦大學(xué)上海計(jì)算機(jī)軟件評(píng)測重點(diǎn)實(shí)驗(yàn)室

:、、。

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

:、、、、、、、。

GB/T30997—2014/ISO/IECTR180372008

:

引言

在快速增長的嵌入式系統(tǒng)市場使用諸如語言之類高級(jí)語言編寫應(yīng)用程序的需求在不斷增加

,C。

基本上造成這種趨勢的原因有兩種嵌入式系統(tǒng)的程序變得更加復(fù)雜使用匯編語言會(huì)難以維護(hù)和嵌

,:()

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

()。C

級(jí)別上的編程所能獲得的代碼重用性被認(rèn)為是解決上述問題的一個(gè)重要前進(jìn)步驟

。

很多技術(shù)領(lǐng)域都定義了由處理器提供的功能例如這些在嵌入式系統(tǒng)中使用的功能不容易

(DSP),

被語言編寫的應(yīng)用程序采用比如定點(diǎn)操作不同內(nèi)存空間的用法和底層操作等目前的提

C。,、I/O。

案僅僅只能解決這些技術(shù)領(lǐng)域中的一小部分問題

。

嵌入式處理器經(jīng)常被用來分析模擬信號(hào)以及通過對(duì)接收到的數(shù)據(jù)運(yùn)用濾波算法來處理這些信號(hào)

,。

典型的應(yīng)用程序可以在所有的無線設(shè)備中找到濾波算法中使用的通用數(shù)據(jù)類型是定點(diǎn)數(shù)據(jù)類型并

。,

且為了達(dá)到必要的速度嵌入式處理器經(jīng)常會(huì)配備特殊的定點(diǎn)數(shù)據(jù)設(shè)備由于語言根據(jù)

,,。C(

中的定義不提供對(duì)定點(diǎn)運(yùn)算操作的支持導(dǎo)致目前程序員因無法選擇而不得不使

ISO/IEC9899:1999),

用匯編語言手工編寫其大多數(shù)算法本標(biāo)準(zhǔn)為語言指定了一個(gè)在一定精度和飽和度范圍內(nèi)定義的

。C

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

。C

代碼

。

許多嵌入式處理器擁有多個(gè)不同的內(nèi)存庫并且要求將數(shù)據(jù)按不同的庫分組以達(dá)到最大的性能例

。

如確保針對(duì)過濾設(shè)計(jì)出進(jìn)入處理器的乘法器累加器的并發(fā)數(shù)據(jù)流和協(xié)同數(shù)據(jù)對(duì)處理器的操作

,FIR/,

至關(guān)重要為了允許程序員聲明那個(gè)必須從中取出某特定數(shù)據(jù)對(duì)象的內(nèi)存空間本標(biāo)準(zhǔn)規(guī)定了對(duì)多個(gè)

。,

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

。,,,

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

,。

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

C,I/O(iohw)

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

。,CC

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

iohw。,C“”。

本標(biāo)準(zhǔn)提供了一種方法用于針對(duì)基本寄存器尋址編纂通用實(shí)踐和提供單一的統(tǒng)一語法

,iohw。

建議本標(biāo)準(zhǔn)與結(jié)合使用

ISO/IEC9899:1999。

GB/T30997—2014/ISO/IECTR180372008

:

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

1范圍

本標(biāo)準(zhǔn)規(guī)定了編程語言的一系列擴(kuò)展這些擴(kuò)展支持嵌入式處理器

ISO/IEC9899:1999C。。

本標(biāo)準(zhǔn)的每章都處理一個(gè)特定的主題第章的第一條都包含了對(duì)該主題的特征的技術(shù)描

。4、5、6

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

。。ISO/IEC9899:1999

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

C,ISO/IEC9899:1999,

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

。。

本標(biāo)準(zhǔn)適用于使用語言對(duì)嵌入式處理器進(jìn)行程序開發(fā)的過程

C。

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

下列文件對(duì)于本文件的應(yīng)用是必不可少的凡是注日期的引用文件僅注日期的版本適用于本文

。,

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

。,()。

編程語言

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

3符合性

溫馨提示

  • 1. 本站所提供的標(biāo)準(zhǔn)文本僅供個(gè)人學(xué)習(xí)、研究之用,未經(jīng)授權(quán),嚴(yán)禁復(fù)制、發(fā)行、匯編、翻譯或網(wǎng)絡(luò)傳播等,侵權(quán)必究。
  • 2. 本站所提供的標(biāo)準(zhǔn)均為PDF格式電子版文本(可閱讀打?。驍?shù)字商品的特殊性,一經(jīng)售出,不提供退換貨服務(wù)。
  • 3. 標(biāo)準(zhǔn)文檔要求電子版與印刷版保持一致,所以下載的文檔中可能包含空白頁,非文檔質(zhì)量問題。

評(píng)論

0/150

提交評(píng)論