個人整理的一些很簡單知識點:不知道你是否能夠回答的上來!
side effect,io
暫存器操作的邊際效應。sideeffect(譯為邊際效應或***):是指讀取某個位址時可能導致該位址內容發生變化,比如,有些裝置的中斷狀態暫存器只要一讀取,便自動清零。i/o 暫存器的操作具有sideeffect,因此,不能對其操作不能使用cpu快取。
linux核心中定義了很多巨集,對硬體埠和暫存器進行操作,從網上蒐集了一些巨集定義的資訊:
#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> */
* 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 固定成本 固定成本如 機器成本,管理成本,庫存成本 當產量小於某個值時沒有發生變化 可變成本 材料,包裝,運輸,人力成本等,隨著生產量變化而變化 單位產量變化時總成本的變化 單...
何為資料結構,何為演算法,為何要學習
一 何為資料結構,何為演算法 從廣義上講,資料結構就是指一組資料的儲存結構。演算法就是運算元據的一組方法。圖書館儲藏書籍你肯定見過吧?為了方便查詢,圖書管理員一般會將書籍分門別類進行 儲存 按照一定規律編號,就是書籍這種 資料 的儲存結構。那我們如何來查詢一本書呢?有很多種辦法,你當然可以一本一本地...