linux中readl 和writel 函式

2021-07-31 04:56:42 字數 1150 閱讀 2036



* differently. on the ****** architectures, we just read/write the

* memory location directly.

writel() 往記憶體對映的 i/o 空間上寫資料,wirtel() 

i/o 上寫入 32 位資料 (4位元組)。

原型:#include 

void writel (unsigned char data , unsigned short addr )

readl() 從記憶體對映的 i/o 空間讀取資料,readl 從 i/o 讀取 32 位資料 ( 4 位元組 )

。原型:

#include 

unsigned char readl (unsigned int addr )

變數 addr 

是 i/o 位址。

返回值 :

從 i/o 空間讀取的數值。定義

#define readb __raw_readb

#define readw(addr) __le16_to_cpu(__raw_readw(addr))

#define readl(addr) __le32_to_cpu(__raw_readl(addr))

#ifndef __raw_readb

static inline u8 __raw_readb(const volatile void __iomem *addr)

#endif

#ifndef __raw_readw

static inline u16 __raw_readw(const volatile void __iomem *addr)

#endif

#ifndef __raw_readl

static inline u32 __raw_readl(const volatile void __iomem *addr)

#endif

#define writeb __raw_writeb

#define writew(b,addr) __raw_writew(__cpu_to_le16(b),addr)

#define writel(b,addr) __raw_writel(__cpu_to_le32(b),addr)

Linux中readl和writel函式的使用方法

differently.on the architectures,we just read write the memory location directly.writel 往記憶體對映的 i o 空間上寫資料,wirtel i o 上寫入 32 位資料 4位元組 原型 include void ...

Linux中 bashrc和profile的區別

之前安裝qt 4.7.2,由於習慣了在命令列下編譯原始檔,我在網上搜了一下關於qt環境變數的配置方法,配置很簡單,在 etc profile檔案裡新增下面幾行語句 export qtdir opt qtsdk 2010.05 qt 這個路徑根據自己安裝的位置進行配置 export ld librar...

linux中mutex和semaphore的區別

很多程式設計的書裡在介紹mutex和semaphore的時候都會說,mutex是一種特殊的semaphore.當semaphore的n 1時,就變成了binary semaphore,也就等同與mutex了。但是實際上,在linux中,他們的實現什有區別的,導致最後應用的行為也是有區別的。先看下面這...