1. 程式人生 > >CPU暫存器操作方式

CPU暫存器操作方式



CPU暫存器的讀取方式,其實就是讀取某個地址中儲存的資料,只不過這個地址是晶片廠商規定好用於特定功能的。
一般IDE都會提供暫存器的標頭檔案,可以參考晶片的程式設計手冊,手冊中都有每個模組的暫存器定義,以及地址說明,如果你不想使用標頭檔案定義可以自己手動編寫,例如你想訪問一個32位的暫存器地址為0xE0000000,可以這樣寫,這些地址均在cpu程式設計手冊中有,
volatile unsigned long *reg = (volatile unsigned long *)(0xe0000000);
unsigned long val;
val = *reg;//讀取0xe0000000地址中的資料
*reg = 12;//寫入一個值到0xe0000000地址中

如果是想讀取通用暫存器R0-R7等可以通過組合語言進行操作,將讀取的資料傳到c中即可,本例子是在iar中的彙編格式
在c語言中可以這樣寫,即讀取r0的內容到val中
unsigned long val;
asm("mov %0,r0":"=r"(val));

通過以上兩種方式將資料讀取出來就可以通過串列埠將此值打印出來,
如果有其他硬體和嵌入式的問題可以諮詢。像以上我講的操作方式,很少有人講,研究的深入才能講出來。
本人上傳資源中有嵌入式程式設計相關的輔助工具,如果有意的可以下載使用,以及arm啟動框架的工程,上傳的工具和軟體根據自己多年的工作經驗自己編寫的。