導航:首頁 > 源碼編譯 > iar編譯時代碼變綠

iar編譯時代碼變綠

發布時間:2025-03-02 10:46:02

1. 如何設置iar優化等級

果在A行設置的斷點,單步調試的時候卻只能到達A後邊的某幾行,可能的一個原因就是代碼優化的等級太高了,導致編譯器實際上沒有在A行停頓。
解決辦法:
在OPTION下修改優化等級

IAR默認的是最高優化等級。如果程序不大建議不優化。如果優化等級高,那麼一些非匯編的延時函數可能無法執行,一些局部變數的值可能在使用過後,即便沒有離開自己的作用

2. 如何查看IAR編譯器編譯後的匯編代碼,我想知道這個編譯器是如何處理中斷的

編輯界面右擊工程點擊options菜單項,選擇c/c++ compiler選項卡中的list選項,勾選output assembler files,編譯後則生成離線匯編代碼文件。
調試界面下,點擊view / disassembly 菜單項,則顯示在線匯編代碼窗口。

3. 用IAR嵌入式編譯程序,「section=」是什麼意思

#pragma section( "section-name" [, attributes] ) 作用是由程序指定創建一個段
一般默認段都是由編譯器自動指定的 不過看你這樣的寫法 IAR的時候是沒有默認段的 必須由編寫者手動指定
比如#pragma section = ".data"就是創建一個名字為.data的段,
然後下面調用
data_ram = __section_begin(".data");
來獲取這個段的首地址以備其操作
其他類似
關於pragma section的詳細說明如下。 對於#pragma 預處理還有很多功能 感興趣可以自行搜索
==================================================================================
#pragma section。創建一個段。
其格式為:#pragma section( "section-name" [, attributes] )
section-name是必選項,用於指定段的名字。該名字不能與標准段的名字想沖突。可用/SECTION查看標准段的名稱列表。
attributes是可選項,用於指定段的屬性。可用屬性如下,多個屬性間用逗號(,)隔開:
read:可讀取的
write:可寫的
execute:可執行的
shared:對於載入該段的鏡像的所有進程是共享的
nopage:不可分頁的,主要用於Win32的設備驅動程序中
nocache:不可緩存的,主要用於Win32的設備驅動程序中
discard:可廢棄的,主要用於Win32的設備驅動程序中
remove:非內存常駐的,僅用於虛擬設備驅動(VxD)中
如果未指定屬性,默認屬性為read和write。
在創建了段之後,還要使用__declspec(allocate)將代碼或數據放入段中。
例如:
//pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}
該例中, 創建了段"mysec",設置了read,write屬性。但是j沒有放入到該段中,而是放入了默認的數據段中,因為它沒有使用__declspec(allocate)進
行聲明;而i放入了該段中,因為使用__declspec(allocate)進行了聲明。

閱讀全文

與iar編譯時代碼變綠相關的資料

熱點內容
ade7755與單片機 瀏覽:523
hp伺服器管理口地址不知道怎麼弄 瀏覽:16
程序員面試數據結構 瀏覽:72
androidstudio多版本 瀏覽:199
ofo伺服器波動是什麼意思 瀏覽:524
app不見了怎麼恢復華為 瀏覽:891
和家歡商城APP怎麼樣 瀏覽:49
嗷嗚app怎麼老師沒有網路 瀏覽:51
域名如何劃分阿里雲伺服器 瀏覽:971
程序員應會開發技術 瀏覽:853
pdf帶鏈接 瀏覽:699
中興手機加密失敗怎麼辦 瀏覽:606
六大演算法之三動態規劃csdn 瀏覽:121
linux如何使用靜態庫 瀏覽:495
ubuntu安裝驅動命令行 瀏覽:763
pdf修改字體大小 瀏覽:861
scrm源碼下載 瀏覽:29
印尼孕婦溯源碼燕窩的價錢 瀏覽:905
mel和python 瀏覽:758
vb背單詞軟體源碼 瀏覽:801