国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ARM 嵌入式 編譯系列 2.3 -- GCC 編譯參數(shù)學(xué)習(xí) -Wa,-mimplicit-it=thumb 使用介紹】

這篇具有很好參考價(jià)值的文章主要介紹了【ARM 嵌入式 編譯系列 2.3 -- GCC 編譯參數(shù)學(xué)習(xí) -Wa,-mimplicit-it=thumb 使用介紹】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


請(qǐng)閱讀【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】


問題背景

在移植 RT-Thread 時(shí),使用Make 進(jìn)行編譯,結(jié)果遇到了下面問題:

rtt_os/cortex-m33/context_gcc.S: Assembler messages:
rtt_os/cortex-m33/context_gcc.S:154: Error: thumb conditional instruction should be in IT block – vstmdbeq r1!,{d8-d15}' rtt_os/cortex-m33/context_gcc.S:198: Error: thumb conditional instruction should be in IT block -- vldmiaeq r1!,{d8-d15}’
make: *** [rtt_os/cortex-m33/subdir.mk:13: rtt_os/cortex-m33/context_gcc.o] Error 1

-wa,-mimplicit-it=thumb 介紹

在使用 arm-none-eabi-gcc 編譯 ARM 架構(gòu)代碼時(shí),你可能會(huì)碰到一些控制匯編器行為的編譯器選項(xiàng)。-wa 是一個(gè) GCC 編譯器選項(xiàng),用于向匯編器傳遞參數(shù)。

-wa,-mimplicit-it=thumb 實(shí)際上是一組兩個(gè)選項(xiàng),它們的作用如下:

-wa 選項(xiàng)

-wa 選項(xiàng)允許你將參數(shù)直接傳遞給匯編器。它用于告訴 gcc 后端,在調(diào)用 as 匯編器時(shí)附加額外的命令行參數(shù)。你可以使用這個(gè)選項(xiàng)添加任何標(biāo)準(zhǔn)的匯編器命令行參數(shù)。

語法如下:

gcc -c -o output.o source.c -Wa,<assembler-options> 

其中 <assembler-options> 是要傳遞給 as 匯編器的選項(xiàng)列表,用逗號(hào)分隔。

-mimplicit-it=thumb 選項(xiàng)

-mimplicit-it=thumb 是傳遞給 as 匯編器的一個(gè)選項(xiàng),它和 Thumb 指令集有關(guān)。

  • -m: 這總是 as 匯編器選項(xiàng)的前綴,表示這是一個(gè)指定給匯編器的機(jī)器相關(guān)的選項(xiàng)。

  • implicit-it: IT 指令是 ARM 架構(gòu)中的「If-Then」指令,它用于 Thumb-2 指令集中的條件執(zhí)行。在 ARM 模式下,大多數(shù)指令都可以直接帶有條件碼進(jìn)行條件執(zhí)行,而在 Thumb 模式(特別是在更舊的架構(gòu)中),你需要顯式地使用 IT 指令來實(shí)現(xiàn)條件執(zhí)行。

  • =thumb: 這個(gè)值告訴匯編器在必要時(shí)隱式地插入 IT 指令,以使得后面的 Thumb 指令能夠條件執(zhí)行。這是對(duì)于兼容性的考慮,特別是在混合 ARM 和 Thumb-2 代碼時(shí)有用。在 ARMv8 中,大多數(shù)形式的條件執(zhí)行都已經(jīng)被棄用,除了分支指令。

當(dāng)使用 -mimplicit-it=thumb 時(shí),你不需要在匯編代碼中顯式編寫 IT 指令,匯編器會(huì)在需要的時(shí)候自動(dòng)插入。

使用 -wa,-mimplicit-it=thumb

在命令行中組合這兩個(gè)選項(xiàng)的實(shí)例如下:

arm-none-eabi-gcc -c -o output.o source.c -Wa,-mimplicit-it=thumb 

這條命令會(huì)編譯 source.c 文件,并將 -mimplicit-it=thumb 選項(xiàng)傳遞給匯編器,允許在生成 Thumb-2 指令時(shí)自動(dòng)插入 IT 指令。文章來源地址http://www.zghlxwxcb.cn/news/detail-808022.html

到了這里,關(guān)于【ARM 嵌入式 編譯系列 2.3 -- GCC 編譯參數(shù)學(xué)習(xí) -Wa,-mimplicit-it=thumb 使用介紹】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【ARM 嵌入式 編譯系列 2.6 -- GCC 編譯時(shí)間統(tǒng)計(jì)參數(shù) -ftime-report -Q 】

    請(qǐng)閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 如果你想要統(tǒng)計(jì) GCC 編譯過程中各個(gè)階段的時(shí)間,可以使用 GCC 的 -ftime-report 選項(xiàng)。這個(gè)選項(xiàng)可以讓編譯器在編譯結(jié)束后報(bào)告每個(gè)編譯階段所花費(fèi)的時(shí)間。要使用這個(gè)選項(xiàng),你可以在編譯命令中加入它,如下所示: 這將

    2024年01月21日
    瀏覽(43)
  • 【ARM 嵌入式 編譯系列 2.2 -- GCC 編譯參數(shù)學(xué)習(xí) assembler-with-cpp 使用介紹】

    請(qǐng)閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 在 rt-thread 的編譯腳本中經(jīng)常會(huì)看到下面編譯參數(shù): arm-none-eabi-gcc 是針對(duì) ARM 架構(gòu)的交叉編譯器,用于編譯嵌入式 ARM 應(yīng)用程序。在 GCC 中, -x 選項(xiàng)用于指定要編譯的輸入文件的語言。當(dāng)與 assembler-with-cpp 一起使用時(shí),

    2024年01月23日
    瀏覽(25)
  • 【ARM 嵌入式 編譯系列 4.1 -- GCC 編譯屬性 likely與unlikely 學(xué)習(xí)】

    請(qǐng)閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4 – GCC 編譯屬性 __read_mostly 介紹 下篇文章: ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規(guī)范 extern “C“ 介紹 likely 和 unlikely 是GCC編譯器提供的一種代碼優(yōu)化特性,這兩個(gè)宏用于告訴編譯器某個(gè)條件判斷的結(jié)果是真還是假

    2024年02月12日
    瀏覽(53)
  • 【ARM 嵌入式 編譯系列 10 -- GCC 編譯縮減可執(zhí)行文件 elf 文件大小】

    請(qǐng)閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 9-- GCC 編譯符號(hào)表(Symbol Table)的詳細(xì)介紹 下篇文章:ARM 嵌入式 編譯系列 10.1 – GCC 編譯縮減可執(zhí)行文件 elf 文件大小 在開發(fā)過程總,總是希望編譯出來的可執(zhí)行文件盡量小,因?yàn)檫@樣可以節(jié)省更多的磁盤空間

    2024年02月09日
    瀏覽(120)
  • 【ARM 嵌入式 編譯系列 5 -- GCC 內(nèi)建函數(shù) __builtin 介紹】

    請(qǐng)閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規(guī)范 extern “C“ 介紹 下篇文章:ARM 嵌入式 編譯系列 6 – GCC objcopy, objdump, readelf, nm 介紹 GCC提供了一些專門的功能,用于訪問特定的硬件指令或者實(shí)現(xiàn)特定的優(yōu)化,它們被稱為\\\" __builtin \\\"函數(shù)。 這些

    2024年02月13日
    瀏覽(96)
  • 【ARM 嵌入式 編譯系列 4.2 -- GCC 鏈接規(guī)范 extern “C“ 介紹】

    請(qǐng)閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4.1 – GCC 編譯屬性 likely與unlikely 學(xué)習(xí) 下篇文章:ARM 嵌入式 編譯系列 5 – GCC 內(nèi)建函數(shù) __builtin 介紹 extern “C” 是一種鏈接規(guī)范,它用于告訴C++編譯器按照C語言的方式來鏈接代碼。這個(gè)主要用于在C++代碼

    2024年02月13日
    瀏覽(54)
  • 【ARM 嵌入式 編譯系列 7.3 -- GCC 鏈接腳本中 DISCARD 與 .ARM.exidx】

    【ARM 嵌入式 編譯系列 7.3 -- GCC 鏈接腳本中 DISCARD 與 .ARM.exidx】

    請(qǐng)閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 在移植 RT-Thread 到 cortex-m33(RA4M2)上的時(shí)候,在編譯的時(shí)候遇到下面問題:

    2024年01月23日
    瀏覽(73)
  • 【ARM 嵌入式 編譯系列 5 -- GCC 內(nèi)建函數(shù) __builtin 詳細(xì)介紹】

    請(qǐng)閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規(guī)范 extern “C“ 介紹 下篇文章:ARM 嵌入式 編譯系列 6 – GCC objcopy, objdump, readelf, nm 介紹 GCC提供了一些專門的功能,用于訪問特定的硬件指令或者實(shí)現(xiàn)特定的優(yōu)化,它們被稱為\\\" __builtin \\\"函數(shù)。 這些

    2024年02月13日
    瀏覽(116)
  • 【ARM 嵌入式 編譯系列 6 -- GCC objcopy, objdump, readelf, nm 介紹】

    請(qǐng)閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 5 – GCC 內(nèi)建函數(shù) __builtin 詳細(xì)介紹 下篇文章:ARM 嵌入式 編譯系列 7 – ARM GCC 鏈接腳本詳細(xì)講解 objcopy 是 GNU二進(jìn)制工具集(binutils)的一部分,主要用于復(fù)制和轉(zhuǎn)換目標(biāo)文件。 在ARM GCC中, arm-none-eabi-objcopy 通常用于

    2024年02月13日
    瀏覽(79)
  • 【ARM 嵌入式 編譯系列 4 -- GCC 編譯屬性 __read_mostly 詳細(xì)介紹】

    請(qǐng)閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:【ARM 嵌入式 編譯系列 3.3 – gcc 動(dòng)態(tài)庫(kù)與靜態(tài)庫(kù)的鏈接方法介紹】 下篇文章:【ARM 嵌入式 編譯系列 4.1 – GCC 編譯屬性 likely與unlikely 學(xué)習(xí)】 __read_mostly 是一個(gè)在Linux內(nèi)核編程中用到的宏定義,這是一個(gè)gcc編譯器的屬性,用于告訴編

    2024年02月13日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包