在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux內核延時函數接口

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

內核延時函數接口

延時的函數有delaysleep兩種類型:

delay接口

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

sleep接口

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

delay和sleep的區別

delay型延時:忙等待,占用CPU資源,延遲過程無法進行其他任務。

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

低分辨率定時器

jiffies和HZ

jiffies:全局變量,表示 系統啟動以來產生的節拍數 。每產生一次中斷,jiffies自動加一。

HZ:赫茲,也叫 節拍率 ,表示 每秒種產生多少次中斷

例如:HZ200,代表每秒產生200次中斷,那2秒鐘jiffies的值就應該是400。因此系統的運行時間可以用jiffies/HZ表示。

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

原因:內核中統計時間是通過jiffies,因此要比較時間或者定時也是通過jiffies。

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

定時2秒:jiffies + 2*HZ。以此類推

獲取當前的jiffies值,可以用get_jiffies_64()函數。

將時間轉為對應的jiffies值,可以用msecs_to_jiffies()等函數,例如msecs_to_jiffies(1000)代表1秒,函數返回值其實就是HZ

相關接口

#include< linux/timer.h >

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

    關注

    3

    文章

    1378

    瀏覽量

    40343
  • 接口
    +關注

    關注

    33

    文章

    8668

    瀏覽量

    151529
  • Linux
    +關注

    關注

    87

    文章

    11329

    瀏覽量

    209967
  • 函數
    +關注

    關注

    3

    文章

    4344

    瀏覽量

    62809
收藏 人收藏

    評論

    相關推薦

    Linux內核學習筆記:printk調試

    很多內核開發者喜歡的調試工具是printk,在Linux內核中,使用printk()函數來打印信息,它與C庫的printf()函數類似。
    發表于 06-01 15:14 ?1186次閱讀

    Linux內核教程

    本章學習目標掌握LINUX內核版本的含義理解并掌握進程的概念掌握管道的概念及實現了解內核的數據結構了解LINUX內核的算法掌握
    發表于 04-10 16:59 ?0次下載

    linux內核kernel-api

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

    Linux 內核數據結構:位圖(Bitmap)

    除了各種鏈式和樹形數據結構,Linux內核還提供了位圖接口。位圖在Linux內核中大量使用。下面的源代碼文件包含這些結構的通用
    發表于 05-14 17:24 ?3493次閱讀

    嵌入式Linux內核的驅動程序開發是怎樣的

    設備驅動程序是linux內核的一部分,是操作系統內核和機器硬件之間的接口,它由一組函數和一些私有數據組成,是連接應用程序與具體硬件的橋梁。
    發表于 11-06 11:33 ?1521次閱讀
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>內核</b>的驅動程序開發是怎樣的

    最硬核的Linux內核文章

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

    快速理解什么是Linux內核以及Linux內核的內容

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

    Linux內核GPIO操作函數的詳解分析

    本文檔的主要內容詳細介紹的是Linux內核GPIO操作函數的詳解分析免費下載。
    發表于 01-22 16:58 ?28次下載

    Linux內核熱補丁安全隱患的探索

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

    C語言 | 延時函數(Delay)

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

    Linux內核系統調用概述及實現原理

    本文介紹了系統調用的一些實現細節。首先分析了系統調用的意義,它們與庫函數和應用程序接口(API)有怎樣的關系。然后,我們考察了Linux內核如何實現系統調用,以及執行系統調用的連鎖反應
    的頭像 發表于 05-14 14:11 ?2243次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核</b>系統調用概述及實現原理

    Linux內核模塊參數傳遞與sysfs文件系統

    Linux應用開發中,為使應用程序更加靈活地執行用戶的預期功能,我們有時候會通過命令行傳遞一些參數到main函數中,使得代碼邏輯可以依據參數執行不同的任務。同樣,Linux內核也提供了
    發表于 06-07 16:23 ?2180次閱讀

    Linux Regmap 操作函數

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

    萬千設備,linux內核如何知道?

    linux內核設備的注冊由device_register()函數完成,這個函數linux設備驅動模型的核心
    的頭像 發表于 07-12 08:52 ?880次閱讀
    萬千設備,<b class='flag-5'>linux</b><b class='flag-5'>內核</b>如何知道?

    Linux內核如何使用結構體和函數指針?

    我將結合具體的Linux內核驅動框架代碼來展示Linux內核如何使用結構體和函數指針。
    的頭像 發表于 09-06 14:17 ?1052次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核</b>如何使用結構體和<b class='flag-5'>函數</b>指針?
    主站蜘蛛池模板: 国产 麻豆| 黄色午夜| 国产特黄1级毛片| 亚洲bbb| 一级做a爱 一区| 亚洲成人在线网| 午夜黄色福利视频| 四虎永久在线精品免费影视| 123456成年免费视频| 丁香网五月天| 久久人人网| 在线亚洲小视频| 亚洲精品久久久久久久蜜桃| 午夜亚洲精品| 欧美午夜免费观看福利片| 国产精品天天操| 中文字幕在线一区二区在线| 日本在线一区| 亚洲天堂网站在线| 日韩免费| 色天使色婷婷丁香久久综合| 日本www高清| 国产亚洲高清在线精品不卡| 一级不卡毛片| 操的好爽视频| 天天拍天天干| 午夜高清视频| 午夜视频在线看| 日日干夜夜操视频| 日本sese| h在线观看免费| 成人二区| 日产乱码免费一卡二卡在线| 激情五月婷婷在线| 午夜在线观看视频在线播放版| 奇米777狠狠| 影音先锋午夜资源网站| 亚洲欧美色图| 来吧成人综合网| 狠狠插综合网| 天天爱天天做色综合|