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

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

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

3天內不再提示

如何在Linux中創建節點

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:Jasonangel ? 2023-10-07 15:25 ? 次閱讀

手把手教你在 Linux 中創建節點,使其可以進行 cat 和 echo 。

我們測試驅動加載是否正常工作,一般都會寫應用程序去測試,這樣驅動程序中需要實現 open、read 函數和 write 函數,然后寫一個應用程序通過 open 打開節點,獲取 fb 文件描述符,進而對文件進行讀寫操作。

這里我介紹另外一種方法,我們可以在驅動中實現 show_xxx 和 set_xxx 函數,使這個節點可以進行 cat 和 echo 操作,源碼如下:

test.c

#include < linux/module.h >
#include < linux/init.h >
#include < linux/platform_device.h >
#include < linux/gpio.h >
#include < linux/delay.h >
#include < linux/regulator/consumer.h >
#include < sound/soc.h >
#include < sound/jack.h >
 
 
static  char mybuf[100]="123";
//cat命令時,將會調用該函數
static ssize_t show_my_device(struct device *dev,
                              struct device_attribute *attr, char *buf)        
{
    return sprintf(buf, "%sn", mybuf);
}
 
//echo命令時,將會調用該函數
static ssize_t set_my_device(struct device *dev,
                             struct device_attribute *attr,
                             const char *buf, size_t len)        
{
    sprintf(mybuf, "%s", buf);
    return len;
}
//定義一個名字為my_device_test的設備屬性文件
static DEVICE_ATTR(my_device_test, S_IWUSR|S_IRUSR, show_my_device, set_my_device);
 
struct file_operations mytest_ops={
    .owner  = THIS_MODULE,
};
 
static int major;
static struct class *cls;
static int mytest_init(void)
{
    struct device *mydev;
    major=register_chrdev(0,"mytest", &mytest_ops);
    cls=class_create(THIS_MODULE, "mytest_class");
    //創建mytest_device設備
    mydev = device_create(cls, 0, MKDEV(major,0),NULL,"mytest_device");    
    
    //在mytest_device設備目錄下創建一個my_device_test屬性文件
    if(sysfs_create_file(&(mydev- >kobj), &dev_attr_my_device_test.attr)) {
        return -1;
    }
    
    return 0;
}
 
static void mytest_exit(void)
{
    device_destroy(cls, MKDEV(major,0));
    class_destroy(cls);
    unregister_chrdev(major, "mytest");
}
 
module_init(mytest_init);
module_exit(mytest_exit);
MODULE_LICENSE("GPL");

Makefile

KERNELDIR := /home/book/linux/tool/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek
CURRENT_PATH := $(shell pwd)

obj-m := test.o

build: kernel_modules

kernel_modules:
 $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules

clean:
 $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

在 Linux 中新建文件夾,將 test.c 和 Makefile 放在一個文件夾中,進行編譯,編譯之前記得準備好你的 Linux 內核源碼,因為編譯需要引用頭文件,所以我們在 Makefile 中寫明 Linux 內核源碼目錄(源碼必須是編譯過的源碼,編譯 Linux 大概需要半個多小時)。另外需要注意,你編譯驅動所引用的內核和你板子中真正運行的 Linux 內核要需要是同一個版本,否則掛載不上去。

編譯過程:

圖片

然后把 test.ko 傳輸過去,不管是使用 scp 命令還是使用 ftp 協議都可以。

加載驅動后cat:

圖片

echo

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 測試
    +關注

    關注

    8

    文章

    5469

    瀏覽量

    127436
  • 驅動
    +關注

    關注

    12

    文章

    1866

    瀏覽量

    85934
  • Linux
    +關注

    關注

    87

    文章

    11373

    瀏覽量

    211293
  • 程序
    +關注

    關注

    117

    文章

    3806

    瀏覽量

    81708
  • 系統
    +關注

    關注

    1

    文章

    1023

    瀏覽量

    21510
收藏 人收藏

    評論

    相關推薦

    Linux驅動創建procfs接口的方法

    上篇介紹了Linux驅動sysfs接口的創建,今天介紹procfs接口的創建
    發表于 05-31 16:48 ?805次閱讀
    <b class='flag-5'>Linux</b>驅動<b class='flag-5'>中</b><b class='flag-5'>創建</b>procfs接口的方法

    何在LoRaWAN網關的內置NS創建應用與節點設備

    本文章將說明如何在LoRaWAN網關的內置NS創建應用與節點設備,配置安信可Ra-08模塊連接至網關NS服務,實現數據發送與接收。注: 該教程僅適用于支持Class B模式通訊的網關。
    的頭像 發表于 12-16 16:18 ?2072次閱讀
    如<b class='flag-5'>何在</b>LoRaWAN網關的內置NS<b class='flag-5'>創建</b>應用與<b class='flag-5'>節點</b>設備

    何在Multisim創建新元器件

    何在Multisim創建新元器件步驟1:輸入元器件信息
    發表于 07-16 23:44

    何在單個或兩個節點環境下去創建索引呢

    Elasticsearch分片和副本機制是什么呢?如何在單個或兩個節點環境下去創建索引呢?
    發表于 01-20 07:18

    何在沒有udev的情況下啟動之前創建靜態/dev/節點

    / 節點,所有 /dev/ 節點必須在 rootfs 啟動之前創建“ [color=\\\"#FF0000\\\"]我想知道如何在沒有 udev 的情況下啟動之前
    發表于 05-05 10:27

    AN1246文手冊之如何在Microchip圖形庫創建控件

    本文介紹了AN1246文手冊之如何在Microchip圖形庫創建控件。
    發表于 06-21 09:25 ?8次下載
    AN1246<b class='flag-5'>中</b>文手冊之如<b class='flag-5'>何在</b>Microchip圖形庫<b class='flag-5'>中</b><b class='flag-5'>創建</b>控件

    何在IP Integrator創建MicroBlaze設計

    了解如何在IP Integrator創建簡單的MicroBlaze設計,并創建一個在KC705目標板上運行的簡單軟件應用程序。
    的頭像 發表于 11-20 06:13 ?3289次閱讀
    如<b class='flag-5'>何在</b>IP Integrator<b class='flag-5'>中</b><b class='flag-5'>創建</b>MicroBlaze設計

    何在Linux創建tarball

    tarball 通常用于備份個人或系統文件來創建存檔,特別是在進行可能需要撤消的更改之前。例如,Linux 系統管理員通常會在更改應用之前創建包含一系列配置文件的 tarball,以防必須撤消這些更改。從 tarball
    的頭像 發表于 01-09 16:08 ?2921次閱讀

    何在PADS創建差分對

    使用 PADS 集成的項目,快速、簡便、自動創建差分對。觀看 PADS 如何在不到 30 秒的時間內創建 50 個差分對!
    的頭像 發表于 05-21 06:10 ?5831次閱讀

    何在 Vitis 中使用 UIO 驅動框架創建簡單的 Linux 用戶應用

    Linux嵌入式設計中最基本的任務之一是創建用戶應用程序。 在本篇博文中,我們將探討如何在 Vitis 中使用 UIO 驅動框架創建簡單的 Linu
    的頭像 發表于 11-20 14:05 ?4490次閱讀

    何在Petalinux創建Linux內核模塊?

    --enable”,能創建Linux內核模塊,包括c源代碼文件,Makefile,Yocto的bb文件。相關文件放在目錄“ project-spec / meta-user / recipes-modules”
    的頭像 發表于 03-02 11:10 ?4516次閱讀

    何在linux服務器打開端口

    有時我們可能需要在Linux服務器打開端口或在Linux服務器的防火墻啟用端口來運行特定的應用程序。在本文中,小編將帶大家分析一下如何在
    的頭像 發表于 10-17 16:22 ?1.2w次閱讀

    何在Linux系統下自動創建設備節點

      Linux驅動實驗,通過使用insmod命令加載模塊后,需要通過mknod命令手動創建設備節點,這樣使用起來比較麻煩,并且不可能每個設備都這樣操作,
    的頭像 發表于 11-06 20:18 ?4699次閱讀

    何在Linux查找斷開的符號鏈接

    在之前的文章,我們解釋了什么是 Linux 的符號鏈接。符號鏈接(Symbolic links 或 symlinks)或軟鏈接(soft links)用于在 Linux
    的頭像 發表于 02-06 18:23 ?1738次閱讀

    Linux如何如何為現有用戶創建主目錄?

    Linux系統,每個用戶都有一個主目錄,通常稱為home目錄,用于存儲用戶的個人文件和配置信息。然而,有時候我們會創建一個新的用戶,但是忘記或者沒有選擇為其創建一個主目錄。在這種情
    的頭像 發表于 05-12 16:24 ?2398次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b>如何如何為現有用戶<b class='flag-5'>創建</b>主目錄?
    主站蜘蛛池模板: 国产精品一区二区欧美视频 | 久久久无码AV精品亚洲A片软件 | 久久国产亚洲电影天堂 | 男人J放进女人屁股免费观看 | 97在线观看免费 | 亚婷婷洲AV久久蜜臀无码 | 91嫩草私人成人亚洲影院 | 色一情一乱一伦一区二区三区 | 国产精品久久精品视 | 免费国产精品视频 | 99久久国产综合精品网成人影院 | 天美传媒在线观看免费完整版 | 中文字幕亚洲综合小综合在线 | 久久香蕉国产线看观看首页 | 日日夜夜影院在线播放 | 99久久婷婷国产麻豆精品电影 | 免费无码又爽又黄又刺激网站 | 日韩精品真人荷官无码 | 视频网站入口在线看 | 国产麻豆精品传媒AV国产在线 | 旧里番ovaの催○セイ活指导 | 日本一卡2卡3卡四卡精品网站 | 肉奴隷 赤坂丽在线播放 | 亚洲人成无码久久久AAA片 | 好大的太粗好深BL | 中文字幕永久在线观看 | 无限资源在线看影院免费观看 | 99久久精品6在线播放 | 日韩AV成人无码久久精品老人 | 久久精品国产亚洲AV麻豆欧美玲 | www.色片| 高清日本片免费观看 | 日韩欧美视频一区 | 亚洲精品入口一区二区乱麻豆精品 | 国产日韩欧美有码在线视频 | 一级毛片免费在线播放 | 日本精品久久久久中文字幕 | 亚洲人成77777在线视频 | 无码任你躁久久久久久老妇双奶 | 好满射太多了装不下了视频 | 芭乐草莓樱桃丝瓜18岁大全 |