ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
支持以下 GCC 函數(shù)屬性:
支持以下其他 TI 特定函數(shù)屬性:
例如,此函數(shù)聲明使用 alias 屬性使“my_alias”成為“myFunc”函數(shù)的別名:
void my_alias() __attribute__((alias("myFunc")));aligned 函數(shù)屬性會使用指定的對齊方式來對齊函數(shù)。該對齊必須為 2 的冪。
always_inline 函數(shù)屬性與 FUNC_ALWAYS_INLINE pragma 具有相同的效果。請參閱 節(jié) 5.11.12
calls 屬性與 CALLS pragma 具有相同的效果,相關(guān)描述請參閱 節(jié) 5.11.1。
format 屬性應(yīng)用于 stdio.h 中 printf、fprintf、sprintf、snprintf、vprintf、vfprintf、vsprintf、vsnprintf、scanf、fscanf、vfscanf、vscanf、vsscanf 和 sscanf 的聲明。因此,當啟用 GCC 擴展時,系統(tǒng)會根據(jù)格式字符串參數(shù)中的格式說明符對這些函數(shù)的數(shù)據(jù)參數(shù)進行類型檢查,并在不匹配時發(fā)出警告。如果不需要這些警告,可以通過常見方式抑制這些警告。
有關(guān)如何使用 interrupt 函數(shù)屬性的更多信息,請參閱節(jié) 5.11.16。
malloc 屬性應(yīng)用于 stdlib.h 中 malloc、calloc、realloc 和 memalign 的聲明。
naked 屬性標識了使用 __asm 語句編寫為嵌入式匯編函數(shù)的函數(shù)。編譯器不會為此類函數(shù)生成序言和結(jié)語序列。請參閱節(jié) 5.10。
noinline 函數(shù)屬性與 FUNC_CANNOT_INLINE pragma 具有相同的效果。請參閱 節(jié) 5.11.13
ramfunc 屬性指定一個函數(shù)將被放置在 RAM 中并從中執(zhí)行。ramfunc 屬性允許編譯器優(yōu)化 RAM 執(zhí)行的函數(shù),以及自動將函數(shù)復(fù)制到基于閃存的器件上的 RAM 上。例如:
__attribute__((ramfunc))
void f(void) {
...
}
--ramfunc=on 選項指定使用此選項編譯的所有函數(shù)都放置在 RAM 中并從中執(zhí)行,即使未使用此函數(shù)屬性也是如此。
較新的 TI 鏈接器命令文件通過將具有此屬性的函數(shù)放置在 .TI.ramfunc 段中來自動支持 ramfunc 屬性。如果您的鏈接器命令文件不包含 .TI.ramfunc 段的段規(guī)格,您可以修改鏈接器命令文件以將此段放在 RAM 中。有關(guān)段放置的詳細信息,請參閱 ARM 匯編語言工具用戶指南。
target 屬性使函數(shù)在 ARM(32 位)或 Thumb(16 位)模式下編譯。target 屬性與 CODE_STATE pragma 的效果相同。下述示例使用 target 屬性。
__attribute__((target("arm"))) void foo(int arg1, int arg2)
__attribute__((target("thumb"))) void foo(int arg1, int arg2)
請注意,ACLE 規(guī)格中所述的“pcs”屬性不受支持。
retain 屬性與 RETAIN pragma (節(jié) 5.11.27) 具有相同的效果。也就是說,即使在應(yīng)用的其他地方?jīng)]有引用包含該函數(shù)的段,也不會從條件鏈接輸出中省略該段。
當 section 屬性在函數(shù)上使用時,具有與 CODE_SECTION pragma 相同的效果。請參閱 節(jié) 5.11.4
weak 屬性與 WEAK pragma (節(jié) 5.11.32) 具有相同的效果。