女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核延時(shí)函數(shù)接口

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-04 15:40 ? 次閱讀

內(nèi)核延時(shí)函數(shù)接口

延時(shí)的函數(shù)有delaysleep兩種類型:

delay接口

void ndelay(unsigned long nsecs);//納秒延時(shí)
void udelay(unsigned long usecs);//微妙延時(shí)
void mdelay(unsigned long msecs);//毫秒延時(shí)

sleep接口

void msleep(unsigned int msecs);//毫秒級(jí)延時(shí)
long msleep_interruptible(unsigned int msecs);//毫秒級(jí)延時(shí),可被信號(hào)打斷
void ssleep(unsigned int seconds);//秒級(jí)延時(shí)

delay和sleep的區(qū)別

delay型延時(shí):忙等待,占用CPU資源,延遲過程無法進(jìn)行其他任務(wù)。

sleep型延時(shí):休眠,不占用CPU資源,其它模塊此時(shí)可以使用CPU資源。

低分辨率定時(shí)器

jiffies和HZ

jiffies:全局變量,表示 系統(tǒng)啟動(dòng)以來產(chǎn)生的節(jié)拍數(shù) 。每產(chǎn)生一次中斷,jiffies自動(dòng)加一。

HZ:赫茲,也叫 節(jié)拍率 ,表示 每秒種產(chǎn)生多少次中斷 。

例如:HZ200,代表每秒產(chǎn)生200次中斷,那2秒鐘jiffies的值就應(yīng)該是400。因此系統(tǒng)的運(yùn)行時(shí)間可以用jiffies/HZ表示。

一秒鐘:jiffies + HZ表示一秒鐘

原因:內(nèi)核中統(tǒng)計(jì)時(shí)間是通過jiffies,因此要比較時(shí)間或者定時(shí)也是通過jiffies。

例如程序運(yùn)行一秒鐘,內(nèi)核如何知道運(yùn)行了一秒?答案是運(yùn)行一秒后的jiffies值和運(yùn)行前的jiffies值進(jìn)行比較,如果相差為一個(gè)HZ,則代表一秒鐘。jiffies+HZ其實(shí)就是一秒后jiffies的值,所以jiffies+HZ可以間接表示一秒鐘。

定時(shí)2秒:jiffies + 2*HZ。以此類推

獲取當(dāng)前的jiffies值,可以用get_jiffies_64()函數(shù)。

將時(shí)間轉(zhuǎn)為對(duì)應(yīng)的jiffies值,可以用msecs_to_jiffies()等函數(shù),例如msecs_to_jiffies(1000)代表1秒,函數(shù)返回值其實(shí)就是HZ

相關(guān)接口

#include< linux/timer.h >

struct timer_list { 
    struct list_head list;  
    unsigned long expires;  //定時(shí)器到期時(shí)間,傳入的是jiffies值
    unsigned long data;  //作為參數(shù)被傳入定時(shí)器處理函數(shù)
    void (*function)(unsigned long);
};
void init_timer(struct timer_list * timer);//初始化定時(shí)器
void add_timer(struct timer_list * timer);//添加一個(gè)定時(shí)器
int mod_timer(struct timer_list *timer, unsigned long expires);//修改定時(shí)器的定時(shí)時(shí)間expires
int del_timer(struct timer_list * timer);//刪除定時(shí)器
unsigned int jiffies_to_msecs (const unsigned long j);//將jiffies轉(zhuǎn)為對(duì)應(yīng)的毫秒值
unsigned int jiffies_to_usecs (const unsigned long j);//將jiffies轉(zhuǎn)為對(duì)應(yīng)的微秒值
unsigned long msecs_to_jiffies (const unsigned int m);//將毫秒值轉(zhuǎn)為對(duì)應(yīng)的jiffies
unsigned long usecs_to_jiffies (const unsigned int u);//將微秒值轉(zhuǎn)為對(duì)應(yīng)的jiffies
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1410

    瀏覽量

    41096
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8942

    瀏覽量

    153197
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11460

    瀏覽量

    212791
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4370

    瀏覽量

    64196
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux內(nèi)核學(xué)習(xí)筆記:printk調(diào)試

    很多內(nèi)核開發(fā)者喜歡的調(diào)試工具是printk,在Linux內(nèi)核中,使用printk()函數(shù)來打印信息,它與C庫(kù)的printf()函數(shù)類似。
    發(fā)表于 06-01 15:14 ?1412次閱讀

    Linux內(nèi)核教程

    本章學(xué)習(xí)目標(biāo)掌握LINUX內(nèi)核版本的含義理解并掌握進(jìn)程的概念掌握管道的概念及實(shí)現(xiàn)了解內(nèi)核的數(shù)據(jù)結(jié)構(gòu)了解LINUX內(nèi)核的算法掌握
    發(fā)表于 04-10 16:59 ?0次下載

    linux內(nèi)核kernel-api

    linux內(nèi)核kernel-api,不知道從哪兒找的了,但是你如果想要做內(nèi)核編程,這是一部api函數(shù)詳盡的工具書!??!五星推薦
    發(fā)表于 10-30 17:16 ?19次下載

    Linux 內(nèi)核數(shù)據(jù)結(jié)構(gòu):位圖(Bitmap)

    除了各種鏈?zhǔn)胶蜆湫螖?shù)據(jù)結(jié)構(gòu),Linux內(nèi)核還提供了位圖接口。位圖在Linux內(nèi)核中大量使用。下面的源代碼文件包含這些結(jié)構(gòu)的通用
    發(fā)表于 05-14 17:24 ?3594次閱讀

    嵌入式Linux內(nèi)核的驅(qū)動(dòng)程序開發(fā)是怎樣的

    設(shè)備驅(qū)動(dòng)程序是linux內(nèi)核的一部分,是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口,它由一組函數(shù)和一些私有數(shù)據(jù)組成,是連接應(yīng)用程序與具體硬件的橋梁。
    發(fā)表于 11-06 11:33 ?1656次閱讀
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>的驅(qū)動(dòng)程序開發(fā)是怎樣的

    最硬核的Linux內(nèi)核文章

    內(nèi)核。 擁有超過1300萬行的代碼,Linux內(nèi)核是世界上最大的開源項(xiàng)目之一,但是內(nèi)核是什么,它用于什么? 02 什么是內(nèi)核
    的頭像 發(fā)表于 10-19 17:46 ?2299次閱讀
    最硬核的<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>文章

    快速理解什么是Linux內(nèi)核以及Linux內(nèi)核的內(nèi)容

    01 前言 本文主要講解什么是Linux內(nèi)核,以及通過多張圖片展示Linux內(nèi)核的作用與功能,以便于讀者能快速理解什么是Linux
    的頭像 發(fā)表于 10-21 12:02 ?4490次閱讀
    快速理解什么是<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>以及<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>的內(nèi)容

    Linux內(nèi)核GPIO操作函數(shù)的詳解分析

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux內(nèi)核GPIO操作函數(shù)的詳解分析免費(fèi)下載。
    發(fā)表于 01-22 16:58 ?28次下載

    Linux內(nèi)核熱補(bǔ)丁安全隱患的探索

    Linux 內(nèi)核熱補(bǔ)丁可以修復(fù)正在運(yùn)行的 linux 內(nèi)核,是一種維持線上穩(wěn)定性不可缺少的措施,現(xiàn)在比較常見的比如 kpatch 和 livepatch。
    的頭像 發(fā)表于 10-11 11:54 ?1992次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>熱補(bǔ)丁安全隱患的探索

    C語言 | 延時(shí)函數(shù)(Delay)

    github:https://github.com/MichaelBeechanCSDN:https://blog.csdn.net/u011344545“nop”函數(shù)對(duì)于延時(shí)很短,要求在us級(jí)
    發(fā)表于 01-13 13:38 ?14次下載
    C語言 | <b class='flag-5'>延時(shí)</b><b class='flag-5'>函數(shù)</b>(Delay)

    Linux內(nèi)核系統(tǒng)調(diào)用概述及實(shí)現(xiàn)原理

    本文介紹了系統(tǒng)調(diào)用的一些實(shí)現(xiàn)細(xì)節(jié)。首先分析了系統(tǒng)調(diào)用的意義,它們與庫(kù)函數(shù)和應(yīng)用程序接口(API)有怎樣的關(guān)系。然后,我們考察了Linux內(nèi)核如何實(shí)現(xiàn)系統(tǒng)調(diào)用,以及執(zhí)行系統(tǒng)調(diào)用的連鎖反應(yīng)
    的頭像 發(fā)表于 05-14 14:11 ?2436次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>系統(tǒng)調(diào)用概述及實(shí)現(xiàn)原理

    Linux內(nèi)核模塊參數(shù)傳遞與sysfs文件系統(tǒng)

    Linux應(yīng)用開發(fā)中,為使應(yīng)用程序更加靈活地執(zhí)行用戶的預(yù)期功能,我們有時(shí)候會(huì)通過命令行傳遞一些參數(shù)到main函數(shù)中,使得代碼邏輯可以依據(jù)參數(shù)執(zhí)行不同的任務(wù)。同樣,Linux內(nèi)核也提供了
    發(fā)表于 06-07 16:23 ?2428次閱讀

    Linux Regmap 操作函數(shù)

    Regmap 操作函數(shù) 1、Regmap 申請(qǐng)與初始化 regmap 支持多種物理總線,比如 I2C 和 SPI,我們需要根據(jù)所使用的接口來選擇合適的 regmap 初始化函數(shù)Linux
    的頭像 發(fā)表于 07-06 17:31 ?3517次閱讀

    萬千設(shè)備,linux內(nèi)核如何知道?

    linux內(nèi)核設(shè)備的注冊(cè)由device_register()函數(shù)完成,這個(gè)函數(shù)linux設(shè)備驅(qū)動(dòng)模型的核心
    的頭像 發(fā)表于 07-12 08:52 ?1062次閱讀
    萬千設(shè)備,<b class='flag-5'>linux</b><b class='flag-5'>內(nèi)核</b>如何知道?

    Linux內(nèi)核如何使用結(jié)構(gòu)體和函數(shù)指針?

    我將結(jié)合具體的Linux內(nèi)核驅(qū)動(dòng)框架代碼來展示Linux內(nèi)核如何使用結(jié)構(gòu)體和函數(shù)指針。
    的頭像 發(fā)表于 09-06 14:17 ?1311次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>如何使用結(jié)構(gòu)體和<b class='flag-5'>函數(shù)</b>指針?