指定某個函式或變數存放的位址

2021-08-21 12:35:09 字數 774 閱讀 1134

也許你看過一些文章,裡面介紹了一大堆內容,甚至於還會介紹分散載入檔案的配置。但是絕大多數情況下,為了實現這麼乙個簡單的功能,還要學太多東西,是不是一下就懵了?

那麼,請繼續往下看吧。這篇文章會教你一種非常簡單的方法,一看就會。

只需要使用__attribute__((section(".arm.__at_address"))) !
下面我們用乙個例子演示一下,比如:

只需要照下面寫:

int value __attribute__((section(".arm.__at_0x20000000"))) = 0x33;

const char ziku __attribute__((section(".arm.__at_0x00001000"))) = ;

void func (void) __attribute__((section(".arm.__at_0x00000100")));

void func (void)

}

也就是說:對於變數,在其後邊加修飾;而對於函式,在宣告處加修飾,注意,是在宣告處,不是在函式定義處!!!

就是這麼簡單!

不可以,在鏈結階段會出錯。

也就是說變數指定的位址只能位於ram區;常量和**只能位於flash區。

如果你想實現這類功能,建議使用分散載入檔案配置。這部分知識超出了本文文章範圍,在以後的文章中我會寫。

可以為該c檔案中的函式或變數等乙個個新增修飾符。如果你不想這麼麻煩,可以考慮分散載入檔案配置。

GCC指定某個函式或某幾個函式的優化級別

gcc可以使用attribute optimize string 指定單個函式的優化級別,或者使用 pragma gcc optimize string 指定該語句之下的所有函式的優化級別。mingu.zhengatgmail dot com 有些時候會希望某個函式或者某幾個函式和其他的函式採取不同...

jquery查詢指定id元素下的某個或某些元素

find用法 1.為什麼要用find 通常,選擇乙個元素很簡單,id 就可以搞定,但是如果想選擇某個id為x1的div下的某個id為x2的元素就很困難了,可以通過用find來解決這個問題。2.find怎麼用 首先貼出api中find的構造方法 find expr obj ele 返回值 jquery...

C C 程式設計 列印變數或物件的位址

int a 0 char p hello printf a 輸出變數a的位址 printf p 輸出字串的位址c 中,可以使用如下形式 int a 0 const char p hello cout a endl 變數a的位址 cout static cast void a endl 變數a的位址 ...