何為邊際效益 Linux 學習

2021-06-05 00:44:26 字數 1512 閱讀 6871

個人整理的一些很簡單知識點:不知道你是否能夠回答的上來!

side effect,io

暫存器操作的邊際效應。sideeffect(譯為邊際效應或***):是指讀取某個位址時可能導致該位址內容發生變化,比如,有些裝置的中斷狀態暫存器只要一讀取,便自動清零。i/o 暫存器的操作具有sideeffect,因此,不能對其操作不能使用cpu快取。

linux核心中定義了很多巨集,對硬體埠和暫存器進行操作,從網上蒐集了一些巨集定義的資訊:

1. __reg簡單的說就是獲得後面所示物理位址對映後的虛擬位址,例如:

#define gplr0__reg(0x40e00000) /* gpio pin-level register gpio<31:0> */

#define gplr1__reg(0x40e00004) /* gpio pin-level register gpio<63:32> */

#define gplr2__reg(0x40e00008) /* gpio pin-level register gpio<80:64> */

pxa處理器內部暫存器的實體地址和核心空間的虛擬位址對應關係如下:

* 0x44000000 - 0x45ffffff <--> 0xfa000000 - 0xfbffffff

* 0x48000000 - 0x49ffffff <--> 0xfc000000 - 0xfdffffff

2. #define gplr(x)__reg2(0x40e00000,((x) & 0x60) >> 3).

還有乙個轉換的句子#define gpio_bit(x) (1 << ((x) & 0x1f))

gpio共有80個,所以32bit的暫存器只好沒組做3個. gpio_bit就是1左移x位(並且不要超過32);而gplr(x)則是根據x的數值(這個是gpio號,如16,37,72)得到3個gplr中屬於該gpio的gplr的起始位址,(__reg2就是獲得兩個位址的和).這樣子可以通過下面的賦值方法:

gpsr(gpio48_npoe) = gpio_bit(gpio48_npoe) | gpio_bit(gpio49_npwe);來設定gpio48所在gpsr的2個位.這麼一大堆,是為了用到gpio號定義好的巨集.簡單的gpsr3=***x|***x也是可以的.

3. side effect(譯為邊際效應或***):是指讀取某個位址時可能導致該位址內容發生變化,比如,有些裝置的中斷狀態暫存器只要一讀取,便自動清零。i/o暫存器的操作具有side effect,因此,不能對其操作不能使用cpu快取。i/o埠與實際外部裝置相關聯,通過訪問i/o埠控制外部裝置,「邊際效應」是指控制裝置(讀取或寫入)生效,訪問i/o 口的主要目的就是邊際效應,不像訪問普通的記憶體,只是在乙個位置儲存或讀取乙個數值,沒有別的含義了。我是基於arm平台理解的,在《linux裝置驅動程式》第二版中的說法是「***」,不是「邊際效應」。訪問i/o暫存器時,不僅僅會像訪問普通記憶體一樣影響儲存單元的值,更重要的是它可能改變cpu的i/o埠電平、輸出時序或cpu對i /o埠電平的反應等等,從而實現cpu的控制功能。cpu在電路中的意義就是實現其sideeffect。

何為邊際效益 Linux 學習

個人整理的一些很簡單知識點 不知道你是否能夠回答的上來!side effect,io 暫存器操作的邊際效應。sideeffect 譯為邊際效應或 是指讀取某個位址時可能導致該位址內容發生變化,比如,有些裝置的中斷狀態暫存器只要一讀取,便自動清零。i o 暫存器的操作具有sideeffect,因此,不...

邊際遞減,邊際成本,邊際收益,邊際效益

邊際成本 每增加1個單位成本,所帶來的總收益變化 總成本t,單位產量q,邊際成本m 總成本 固定成本 可變成本 t q c 固定成本 固定成本如 機器成本,管理成本,庫存成本 當產量小於某個值時沒有發生變化 可變成本 材料,包裝,運輸,人力成本等,隨著生產量變化而變化 單位產量變化時總成本的變化 單...

何為資料結構,何為演算法,為何要學習

一 何為資料結構,何為演算法 從廣義上講,資料結構就是指一組資料的儲存結構。演算法就是運算元據的一組方法。圖書館儲藏書籍你肯定見過吧?為了方便查詢,圖書管理員一般會將書籍分門別類進行 儲存 按照一定規律編號,就是書籍這種 資料 的儲存結構。那我們如何來查詢一本書呢?有很多種辦法,你當然可以一本一本地...