微型計算機入門之暫存器的作用與使用方法

2021-10-08 05:59:05 字數 1433 閱讀 1918

volatile

硬體控制中不可或缺的東西就是被稱為暫存器的特殊記憶體。從程式控制硬體是通過讀寫暫存器的記憶體來完成的。

程式是指cpu讀寫記憶體資訊並進行運算。你可以通過讀寫這個記憶體來控制硬體。

微型計算機在記憶體中提供唯一的暫存器區域。

表示這種微型計算機的記憶體的圖稱為記憶體對映。您還可以通過檢視記憶體對映來檢視程式記憶體和靜態記憶體的放置位置。

在該微型計算機中,儲存器位址由2byte表示。也就是說,指標變數的大小是2byte!

讓我們看看如何從程式具體地訪問暫存器。

io.pcr6         =

0x01

;io.pdr6.byte =

0x01

;

這就是對暫存器的寫入處理。

您可以看到您正在作為結構成員訪問。暫存器是乙個特殊的記憶體,但是您可以訪問它,就像這樣乙個普通的變數一樣。

volatile(bolatile)是const和static等修飾符的夥伴。volatile在一般的c語言的書籍等中沒有解說,但是在嵌入式開發中,在暫存器定義的時候一定會出現的修飾符。

在c語言學習篇中學習了編譯程式。編譯器的首要任務是翻譯,但在翻譯時,我們會改進程式**,這被稱為優化。通過這種優化,您可以減小您建立的程式大小,提高無用的處理效率並提高執行速度。

例如,下乙個程式絕對不會輸出printf語句的「hello」,因為***變數的值以1初始化。編譯器確定這種情況,刪除未執行的程式,然後進行翻譯。

但是,這種優化有時會對程式產生不好的影響。volatile是用於抑制(不執行優化)優化的修飾符。

通過在變數定義中賦予volatile修飾符,可以對編譯器進行乙個指令「不要對這個變數進行最優化處理!「。

#define   io  (*(volatile struct st_io *)0xffd0) 

/* io address*/

從這個定義可以看出,io的真實身份是被巨集定義替換的位址資訊。這個常量的位址資訊使用指標功能,通過覆蓋st_io結構的型別來訪問記憶體。

因此,c語言可以直接訪問任意記憶體位置,而無需使用變數。您可以直接訪問微型計算機中記憶體固定位址中的暫存器記憶體,這就是c語言仍然在嵌入式開發現場使用的原因。

微處理器 微型計算機 微型計算機系統

本人是學習微機的時候寫的筆記,不喜勿噴。是大規模積體電路的cpu,是微型計算機的核心。微處理器包含三個部分 算術邏輯部件 alu 用來執行基本的算術運算和邏輯運算 暫存器 register cpu中有多個暫存器,稱為cpu暫存器。用來存放運算元 中間結果以及儲存運算結果的狀態標誌等。控制器 cu 具...

微型計算機的組成

微型計算機的組成 1.計算機的工作原理 計算機的是根據使用者的命令來工作的,使用者的命令一般通過程式來下達 1.1指令 用來指揮硬體動作的基本命令包含了操作碼和運算元的一串二進位制編碼。1.2程式 為解決某問題的一系列的指令集合 1.3軟體 程式 資料以及相應的文件說明 沒有安裝任何軟體的計算機稱之...

微型計算機復位的因素

與復位有關的故障示例及其對應方法 微型計算機一般在接通電源時和輸入外部復位訊號時,使內部電路全部處於初始狀態。除此之外,還具有防止微型計算機失控時,或硬體無法正常工作時,強制復位,恢復初始狀態的功能。具體的功能根據微型計算機的不同而不同。看門狗定時器是監視微型計算機失控的定時器。軟體復位是指用軟體強...