中斷與時鐘機制

2021-07-14 21:25:47 字數 1060 閱讀 8174

一.中斷 irq

中斷安裝與釋放

1.申請中斷線

int request_irq(unsigned int irq,irq_handler_t handler,unsigned long irqflags,const char *devname,void *dev_id) 中斷號 中斷處理函式 中斷觸發方式 裝置名稱 共用中斷訊號線時使用到(一般裝置為null)

一般在init函式中設定

2.釋放中斷線

void free_irq(unsigned int irq,void *dev_id); 中斷號 null

一般在exit函式中設定

3.埠對映函式

void *ioremap(unsigned long phys_addr,unsigned long size);

phys_addr實際實體地址

size位址長度,arm為4位元組

返回對映後的虛擬位址

二.時鐘機制 rtc

linux中全域性變數hz,不同平台取值不同,一般取值hz 1000,意思是每秒發生中斷1000次,每次中斷內部計數器jiffies加1,也就是說這個變數記錄了系統自引導以來經歷的時間值。

1.核心級別短延時函式

static inline void ndelay(unsigned long x) 納秒級延時

static inline void udelay(unsigned long x) 微秒級延時

static inline void mdelay(unsigned long x) 毫秒級延時

2.睡眠方式延時

void msleep(unsigned int msec) 毫秒

unsigned long msleep_interruptible(unsigned int msec)

static inline void ssleep(unsigned int seconds) 秒

3.長延時

unsigned long timeout = jiffies + 3*hz;

while(time_before(jiffies,timeout));

中斷與時鐘

0 序言 中斷服務程式的執行並不存在於程序上下問中,要求中斷服務程式的時間要盡量短。因此,linux中斷處理中引入上半部和下半部分離的機制。另外,核心對時鐘的處理也是採用中斷方式,而核心軟體定時器最終依賴於時鐘中斷。1 中斷與定時器 基本概念 2 linux中斷處理程式架構 中斷會打斷核心程序的正常...

中斷與時鐘

0 序言 中斷服務程式的執行並不存在於程序上下問中,要求中斷服務程式的時間要盡量短。因此,linux中斷處理中引入上半部和下半部分離的機制。另外,核心對時鐘的處理也是採用中斷方式,而核心軟體定時器最終依賴於時鐘中斷。1 中斷與定時器 基本概念 2 linux中斷處理程式架構 中斷會打斷核心程序的正常...

時鐘中斷技術

時鐘中斷技術 1系統中斷與時鐘節拍 1.1 系統中斷 中斷是一種硬體機制,用於通知cpu有個非同步事件發生了。中斷一旦被系統識別,cpu則儲存部分 或全部 現場 context 即部分 或全部 暫存器的值,跳轉到專門的子程式,稱為中斷服務子程式 isr 中斷服務子程式做事件處理,處理完成後執行任務排...