導航:首頁 > 源碼編譯 > 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編譯時代碼變綠相關的資料

熱點內容
程序員轉金融IT 瀏覽:832
黑馬程序員培訓效果如何 瀏覽:908
本地集成編譯 瀏覽:526
韓國電影哪個app可以看 瀏覽:701
玖月授權什麼app什麼梗 瀏覽:783
怎麼使用伺服器上的ip地址是什麼情況 瀏覽:748
手機密碼加密後怎麼解密 瀏覽:343
華為雲的伺服器的ip地址怎麼訪問不 瀏覽:365
webstormvue在線實時編譯生效 瀏覽:184
3225pdf 瀏覽:171
java中的常用類 瀏覽:394
安卓手機oppo反向色調怎麼開 瀏覽:138
羅志祥pdf 瀏覽:224
美國戰爭pdf 瀏覽:243
任務欄右擊如何顯示常用文件夾 瀏覽:100
海克斯康三次元編程 瀏覽:748
什麼app可以上門喂貓 瀏覽:889
老程序員抓彈幕 瀏覽:655
刷地鐵卡應該下個什麼app 瀏覽:154
安卓版谷歌瀏覽器為什麼用不了 瀏覽:505