![](/img/trans.png)
[英]How to use GPIO Port Control (GPIOPCTL) in ARM Cortex M4 TM4C123G microcontroller?
[英]ARM Cortex M4 and C,How to specify RAM section for a specific c file
我想將特定.c文件中的變量存儲在特定的RAM位置,如何實現此目的。 我正在將IAR IDE用於ARM。
我這樣做的原因是當編譯器將變量存儲在ARM內核的位帶SRAM區域中時無法正確讀取它們。如果我注釋了一段代碼,則編譯器將其存儲在非位帶SRAM區域中,然后觀察到正確的結果。
使用EWARM,可以使用幾種方法放置變量。 您可以使用@
放置在特定地址。 從IAR的支持站點 :
const char RELEASEDATE[16] @ 0x0000FF10 = __DATE__ ;
const char RELEASETIME[16] @ 0x0000FF20 = __TIME__ ;
或者,您可以使用位置編譯指示在部分(聽起來像您想要的)中找到變量。 來自同一來源:
#pragma location = "ConstSection1"
__root const char RELEASEDATE[16] = __DATE__ ;
#pragma location = "ConstSection2"
__root const char RELEASETIME[16] = __TIME__ ;
在鏈接器文件( .icf
)中,您將擁有:
place at address mem: 0x0000FF10 { readonly section ConstSection1 };
place at address mem: 0x0000FF20 { readonly section ConstSection2 };
我更喜歡#pragma
因為@
運算符看起來不合適。 另外,閱讀代碼的人希望#pragma
是編譯器特定的東西,而@
隱藏在代碼中並且不引人注意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.