資料介紹
編譯指示(Pragma Directives)可能是所有的預處理指令中最復雜的了,它的作用是設定編譯器的狀態或者是指示編譯器完成一些特定的動作。#pragma指令對編譯器給出了如何處理特定的函數、對象和代碼段的方法,在保持與C/C++語言完全兼容的情況下,給出主機(比如C28x)或操作系統(比如DSP/BIOS)專有的特征。這些編譯指示的使用較為復雜,但是我們還必須要了解它們,因為它們是程序中必不可少的東西,例如#pragma DATA_SECTION ( symbol , “ section name ”);這樣的。但是往往講解它們的資料又不多(因為大部分資料集中在入門指南上面),所以在此我們就總結一下針對C28x編譯器的pragma指令,再遇到它們的時候就不會一頭霧水了。
1. CHECK_MISRA
它的作用與在編譯器選項中使用--check_misra是相同的,都是對特定源文件使能MISRA-C:2004規則檢查(汽車工業軟件可靠性聯會),使用方法是:
#pragma CHECK_MISRA (“ {all|required|advisory|none|rulespec} ”);
其中的rulespec是具體MISRA中的規則,使用方法請參考DSP編程技巧之12-揭開編譯器神秘面紗之代碼規范MISRA-C。
2. CLINK
CLINK指令可用于某段代碼或者某個數據符號,使用之后會在包含被作用符號的段中產生一個.clink指示,表明在條件鏈接的情況下,如果這個段沒有被其它任何段引用的話,這個段可以被移除,從而減小鏈接輸出文件的尺寸。使用方法是:
#pragma CLINK (symbol )
3. CODE_ALIGN
CODE_ALIGN用來沿著特定的對齊參數constant來對齊函數(從而可以讓CPU更快尋址,更快執行指令)。當我們希望函數從特定的邊界開始的時候,這個指令非常有用。參數constant必須是2的冪(偶數對齊),使用方法是:
C代碼: #pragma CODE_ALIGN ( func, constant );
C++代碼: #pragma CODE_ALIGN ( constant );
注:在本文中,在C和C++代碼中,指令使用方法一樣時,不分別寫出,如不一樣則分C代碼和C++代碼分別寫出。C代碼中的#pragma指令一般需指定函數名,也即其作用域;C++代碼中的#pragma指令一般不帶有函數名,其作用域為緊鄰該指令后面的函數;下同。
4. CODE_SECTION
CODE_SECTION是較為常見的指令,默認情況下,代碼被存放在.text段中,使用此指令則用來指定并改變某段代碼所分配的段,其使用方法是:
C代碼: #pragma CODE_SECTION (symbol , “section name ”)
C++代碼: #pragma CODE_SECTION (“ section name ”)
例如:
char bufferA[80];
char bufferB[80];
#pragma CODE_SECTION(funcA, “codeA”)
char funcA(int i);
char funcB(int i);
void main()
{
char c;
c = funcA(1);
c = funcB(2);
}
char funcA (int i)
{
return bufferA[i];
}
char funcB (int j)
{
return bufferB[j];
}
掃碼添加小助手
加入工程師交流群
- 基于FPGA和DSP的機載圖形顯示系統 36次下載
- DSP軟件編程與算法實現 25次下載
- 基于DSP的數字控制移相全橋變換器 53次下載
- PWM原理、電機控制器件及DSP生成PWM編程 103次下載
- 如何進行DSP的軟件編程及使用算法實現的學習教程說明 17次下載
- DSP設計與應用教程之匯編程序設計舉例的資料說明 19次下載
- DSP的編程指令全集詳細資料(免費下載) 8次下載
- DSP的C語言編程解析 23次下載
- DSP匯編編程及應用舉例 24次下載
- DSP- CCS編程入門 21次下載
- 如何開始DSP編程資料 5次下載
- 使用CCS進行DSP編程CCS編程入門 36次下載
- DSP編程技巧中數據類型的全解析 14次下載
- 如何開始DSP編程 22次下載
- DSP匯編語言編程基礎
- SN65LVDS302可編程27位串并接收器:設計與應用全解析 419次閱讀
- F1975數字步進衰減器:性能、編程與應用全解析 155次閱讀
- 功率芯片PCB內埋式封裝:從概念到量產的全鏈路解析(下篇:封裝工藝制程全解析) 1.6k次閱讀
- 技術干貨 | 從偏移誤差到電源抑制比,DAC核心術語全解析 487次閱讀
- DSP控制器的主要優勢是什么? 2.2k次閱讀
- dsp是什么意思 dsp功放對音質到底有沒有提升 2.7w次閱讀
- 基于DSP芯片PC機之間的USB接口設計 2.8k次閱讀
- 工業機器人主流離線編程軟件解析 4.5k次閱讀
- tms320c6000系列dsp編程工具與指南 淺談dsp編程 6.2k次閱讀
- S7-300編程超全超細講解 1.2w次閱讀
- jquery插件寫法及用法(jQuery插件開發全解析) 1.1w次閱讀
- 一文了解FPGA與DSP的區別、特點及用途 3.1w次閱讀
- 基于CPLD/DSP的賽車全電防滑剎車控制器設計 1.7k次閱讀
- DSP編程的關鍵問題分析 1.9k次閱讀
- 基于DSP的網絡通信程序設計 3.2k次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1489次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 91次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 9次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 3次下載 | 免費
- 8基于單片機的紅外風扇遙控
- 0.23 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30319次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論