簡體   English   中英

嘗試為特定的內存位置定義變量

[英]Trying to define variables to specific memory locations

嘿,即時通訊使用WinAVR並在C語言中對ATMEGA32進行編程。
基本上,我想通過以下方式將C程序鏈接到asm:

asm(“”)命令。

我試圖將C中的內存位置定義為確切的內存位置,以便隨后可以在asm命令行中訪問它們。

我有5個變量:

無符號字符var1,var2,var3,var4,var5;

我知道我可以使用指向內存位置的指針,但不確定如何執行此操作。
任何幫助,將不勝感激。
謝謝,
奧利弗。

您可以使用GCC使用內聯匯編器通過其C變量名稱訪問內存位置。 有關更多信息,請參考AVR-GCC在線匯編程序手冊 您還可以使用編譯器擴展或鏈接程序腳本將C變量放置在確切的內存位置。 但是,編譯器和匯編器的重點是,這樣我們就不必管理繁瑣的細節了。

此方法完全獨立於編譯器,簡單而直接:

#define var1 (*(volatile unsigned char *)0xDEADBEEF)
#define var2 (*(volatile unsigned char *)0xDECAFBAD)
#define var3 (*(volatile unsigned char *)0xBADC0DE)

等等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM