色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

Linux驅(qū)動中procfs接口的創(chuàng)建

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-09-27 11:24 ? 次閱讀

procfs接口創(chuàng)建

實現(xiàn)效果:

例如, 在/proc下創(chuàng)建一個clk節(jié)點,通過cat /proc/clk可查看內(nèi)容:

圖片

在驅(qū)動中添加以下代碼:

#include < linux/kernel.h >
#include < linux/module.h >
#include < linux/init.h >
#include < linux/proc_fs.h >
#include < linux/seq_file.h >

struct proc_dir_entry *my_proc_entry;

static int proc_clk_show(struct seq_file *m, void *v)
{
    //cat顯示的內(nèi)容
    seq_printf(m,
          "pll0: %u Mhzn"
          "pll1: %u Mhzn"
          "pll2: %u Mhzn",
          100, 200, 300);
   return 0;
}

static int clk_info_open(struct inode *inode, struct file *filp)
{
     return single_open(filp, proc_clk_show, NULL);
}

static struct file_operations myops = 
{
      .owner = THIS_MODULE,
      .open = clk_info_open,
      .read = seq_read,
      .llseek = seq_lseek,
      .release = seq_release,
};

static int __init my_module_init(void)
{
    //注冊proc接口
   my_proc_entry = proc_create("clk", 0644, NULL, &myops);

    return 0;
}

static void __exit my_module_exit(void)
{
    //注銷proc接口
   proc_remove(my_proc_entry);
}

module_init(my_module_init);
module_exit(my_module_exit);
MODULE_LICENSE("GPL");

procfs接口的創(chuàng)建,主要是實現(xiàn)struct file_operations結(jié)構(gòu)體,然后通過proc_create函數(shù)進(jìn)行注冊,通過proc_remove函數(shù)進(jìn)行注銷。

procfs通常是用來獲取CPU、內(nèi)存、進(jìn)程等各種信息,例如cat /proc/cpuinfocat /proc/meminfo,所以我們只需要實現(xiàn).open成員函數(shù)。當(dāng)使用cat命令查看/proc下的信息時,會調(diào)用到.open對應(yīng)的實現(xiàn)函數(shù)。

這里我們使用了seq_file接口,需要記住的是, procfs通常會和seq_file接口一起使用 。seq_file是一個序列文件接口, 當(dāng)我們創(chuàng)建的proc數(shù)據(jù)內(nèi)容由一系列數(shù)據(jù)順序組合而成或者是比較大的proc文件系統(tǒng)時,都建議使用seq_file接口 ,例如cat /proc/meminfo就會顯示很多內(nèi)容。

seq_file接口主要就是解決proc接口編程存在的問題, 推薦在proc接口編程時使用seq_file接口 ,另外.read、.llseek、.release成員函數(shù)也可以直接用seq_readseq_lseekseq_release

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8577

    瀏覽量

    151026
  • 驅(qū)動
    +關(guān)注

    關(guān)注

    12

    文章

    1838

    瀏覽量

    85263
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11294

    瀏覽量

    209344
收藏 人收藏

    評論

    相關(guān)推薦

    Linux驅(qū)動創(chuàng)建sysfs接口的方法

    在一些linux開發(fā)板,經(jīng)常可以看到通過echo的方式來直接控制硬件或者修改驅(qū)動
    發(fā)表于 05-31 16:24 ?859次閱讀

    Linux驅(qū)動創(chuàng)建procfs接口的方法

    上篇介紹了Linux驅(qū)動sysfs接口創(chuàng)建,今天介紹procfs
    發(fā)表于 05-31 16:48 ?738次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>中</b><b class='flag-5'>創(chuàng)建</b><b class='flag-5'>procfs</b><b class='flag-5'>接口</b>的方法

    Linux驅(qū)動創(chuàng)建debugfs接口的方法

    上篇介紹了procfs接口創(chuàng)建,今天再介紹一種debugfs接口創(chuàng)建
    發(fā)表于 05-31 16:53 ?1029次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>中</b><b class='flag-5'>創(chuàng)建</b>debugfs<b class='flag-5'>接口</b>的方法

    簡析Linux proc文件系統(tǒng)

    linux 操作系統(tǒng)把虛擬地址分為用戶空間和內(nèi)核空間,內(nèi)核空間可以通過procfs把內(nèi)核的數(shù)據(jù)呈現(xiàn)給用戶空間,用戶空間也可以把數(shù)據(jù)寫入到內(nèi)核從而更改內(nèi)核的行為,這在驅(qū)動很常見,最終目
    發(fā)表于 06-16 10:32 ?836次閱讀

    LiteOS-A內(nèi)核procfs文件系統(tǒng)分析

    procfs文件系統(tǒng)是LiteOS-A內(nèi)核文件系統(tǒng)的一個案例,通過了解procfs文件系統(tǒng),能夠熟悉LiteOS-A的文件系統(tǒng)框架,并很好地將內(nèi)核信息通過文件系統(tǒng)反饋給使用者。Linux系統(tǒng)
    發(fā)表于 12-08 11:31

    手把手教你創(chuàng)建Linux設(shè)備驅(qū)動和應(yīng)用程序

    其實我們創(chuàng)建的myLed IP相對于Linux操作系統(tǒng)可以是它的一個底層設(shè)備,因為PS總線為myLed IP分配了尋址地址,這樣我們就可以創(chuàng)建myLed IP模塊的硬件驅(qū)動,然后搭建應(yīng)
    發(fā)表于 11-10 14:49 ?4448次閱讀
    手把手教你<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>Linux</b>設(shè)備<b class='flag-5'>驅(qū)動</b>和應(yīng)用程序

    Embeded linux的MMC驅(qū)動

    Embeded linux的MMC驅(qū)動
    發(fā)表于 05-14 16:08 ?1157次閱讀
    Embeded <b class='flag-5'>linux</b><b class='flag-5'>中</b>的MMC<b class='flag-5'>驅(qū)動</b>

    linux系統(tǒng)如何創(chuàng)建文本菜單

    當(dāng)使用Linux系統(tǒng)時,最常見的Shell腳本交互類型是應(yīng)用菜單(文本菜單),文本菜單的核心是case命令。 H. L.使用case命令完成菜單交互。 讓我們在下面創(chuàng)建一個簡單的腳本。 在Linux系統(tǒng)
    發(fā)表于 09-25 15:45 ?1155次閱讀

    如何在 Vitis 中使用 UIO 驅(qū)動框架創(chuàng)建簡單的 Linux 用戶應(yīng)用

    Linux嵌入式設(shè)計中最基本的任務(wù)之一是創(chuàng)建用戶應(yīng)用程序。 在本篇博文中,我們將探討如何在 Vitis 中使用 UIO 驅(qū)動框架創(chuàng)建簡單的 Linu
    的頭像 發(fā)表于 11-20 14:05 ?4300次閱讀

    LiteOS-A內(nèi)核procfs文件系統(tǒng)分析

    文件系統(tǒng),不存在硬盤當(dāng)中,而是系統(tǒng)啟動時動態(tài)生成的文件系統(tǒng),儲存在內(nèi)存procfs文件系統(tǒng)通常掛載在/proc目錄下。 LiteOS-
    的頭像 發(fā)表于 12-02 21:10 ?1001次閱讀

    Linux驅(qū)動-spidev驅(qū)動使用方法

    Linux內(nèi)核集成了spidev驅(qū)動,提供了SPI設(shè)備的用戶空間API,支持用于半雙工通信的read()和write()訪問接口以及用于全雙工通信和I/O配置的ioctl()接口;使用
    的頭像 發(fā)表于 04-07 10:22 ?5119次閱讀

    Linux如何如何為現(xiàn)有用戶創(chuàng)建主目錄?

    Linux系統(tǒng),每個用戶都有一個主目錄,通常稱為home目錄,用于存儲用戶的個人文件和配置信息。然而,有時候我們會創(chuàng)建一個新的用戶,但是忘記或者沒有選擇為其創(chuàng)建一個主目錄。在這種情
    的頭像 發(fā)表于 05-12 16:24 ?2308次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b>如何如何為現(xiàn)有用戶<b class='flag-5'>創(chuàng)建</b>主目錄?

    Linux驅(qū)動proc新接口介紹

    proc新接口 注意,在較新版本的內(nèi)核procfs 的函數(shù)接口有所變化。 系統(tǒng) 內(nèi)核版本 Linux 5.10.111 在
    的頭像 發(fā)表于 09-27 11:29 ?407次閱讀

    如何在Linux創(chuàng)建節(jié)點

    手把手教你在 Linux 創(chuàng)建節(jié)點,使其可以進(jìn)行 cat 和 echo 。 我們測試驅(qū)動加載是否正常工作,一般都會寫應(yīng)用程序去測試,這樣驅(qū)動
    的頭像 發(fā)表于 10-07 15:25 ?950次閱讀
    如何在<b class='flag-5'>Linux</b><b class='flag-5'>中</b><b class='flag-5'>創(chuàng)建</b>節(jié)點

    linux創(chuàng)建group的命令

    Linux創(chuàng)建用戶組的命令是 groupadd 。 以下是一個例子: groupadd groupName 這個命令將創(chuàng)建一個新的用戶組,名稱為groupName。 在
    的頭像 發(fā)表于 11-08 11:35 ?1466次閱讀
    主站蜘蛛池模板: 老司机福利视频一区在线播放| 日本人奶水中文影片| 特级毛片全部免费播放免下载| 伊人影院中文字幕| 国产AV白丝爆浆在线播放| 久久秋霞理论电影| 羲义嫁密着中出交尾gvg794| a视频在线观看| 久久aa毛片免费播放嗯啊| 天美传媒MV高清免费看| asian4you裸模| 久久亚洲视频| 亚洲精品无码成人AAA片| 东北成人社区| 蜜臀AV中文字幕熟女人妻| 亚洲爆乳无码精品AAA片蜜桃| 成人区在线观看免费视频| 毛片999| 亚洲视频精选| 国产特级毛片AAAAAAA高清 | 蜜臀AV浪潮99国产麻豆| 亚洲精品一区国产欧美| 国产精品AV视频一二三区| 青青草 久久久| 99热热在线精品久久| 久久这里只有精品国产精品99| 亚洲精品国产在线网站| 国产精品久久久久影院色老大| 日日噜噜噜噜夜夜爽亚洲精品| 99欧美精品| 美丽的姑娘BD在线观看| 伊人青青久| 久草草在线视视频| 亚洲午夜精品aaa级久久久久| 国产性夜夜春夜夜爽1A片| 无人在线观看免费高清视频播放| 成在线人免费| 日韩亚洲欧美中文高清| 穿白丝袜边走边尿白丝袜| 日本高清色片| 出租屋交换人妻 全文|