国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 3192|回復: 0
打印 上一主題 下一主題

初學者必知- 嵌入式開發

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2016-4-16 12:03:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Osboy觀點1:一種類型的驅動程序都有一個固定的數據結構來代表,然后我們要做的事情就初始化這個數據結構,然后通過一個API注冊給內核,而對該設備進行讀寫等操作的函數在初始化這個結構體的過程中聲明過了,我們需要針對相應設備的特性實現這些讀寫函數,這就是編寫設備驅動我們需要做的事情,很簡單吧?
下面我們根據上述osboy的觀點來分析下字符型設備驅動如何編寫:
(1)代表字符型設備驅動的數據結構:cdev
1. struct cdev {
2.         struct kobject kobj;
3.         struct module *owner;
4.         const struct file_operations *ops;
5.         struct list_head list;
6.         dev_t dev;
7.         unsigned int count;
8. };
(2)初始化這個數據結構
(3)Linux提供了cdev_init函數對cdev數據結構初始化。在初始化過程中,我們需要創建一個file_operations類型的結構體ops,類似于:
1. static const struct file_operations raw_fops = {
2.         .read                = do_sync_read,
3.         .aio_read        = generic_file_aio_read,
4.         .write                = do_sync_write,
5.         .aio_write        = blkdev_aio_write,
6.         .fsync                = blkdev_fsync,
7.         .open                = raw_open,
8.         .release        = raw_release,
9.         .unlocked_ioctl = raw_ioctl,
10.         .llseek                = default_llseek,
11.         .owner                = THIS_MODULE,
12. };
這個
raw_fops 初始化cdev中的ops。
(3)把這個cdev注冊給內核
(4)Linux提供了cdev_add函數對cdev數據結構進行內核注冊。
(4)實現ops中的聲明函數
(5)我們需要根據您編寫設備的特性對raw_fops中的函數實現。
.aio_read        = generic_file_aio_read,
        .write                = do_sync_write,
        .aio_write        = blkdev_aio_write,
        .fsync                = blkdev_fsync,
        .open                = raw_open,
        .release        = raw_release,
        .unlocked_ioctl = raw_ioctl,
上面這些函數都需要我們來實現,實現之后,驅動就編寫完成。是不是很簡單?
Osboy觀點2:字符型設備驅動是linux設備驅動架構中最基本的一種驅動類型,很多大型的設備驅動,其實都根據字符型設備驅動進行的擴展,比如您在linux v4l2驅動中__video_register_device的函數中就能找到cdev字符型驅動的影子哦。
字符型驅動實例稍后給出,您也可以自己動手實踐,向osboy提交您的編寫代碼,供大家研究哦!!!
更多資訊可加交流群QQ277686564     QQ2905283896

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品免费i 国产 | 2021国产精品自在拍在线播放 | 五月天第一页 | 国产精品青青 | 日本欧美一区二区三区在线观看 | 国产成人午夜性a一级毛片 国产成人午夜视频 | 精品自在线 | 4虎影视国产在线观看精品 4虎成人 | 免费视频 久久久 | 香蕉视频免费播放 | 激情亚洲的在线观看 | 亚洲一级片免费看 | 亚洲免费网站观看视频 | 黄色成人免费观看 | 视频精品一区二区三区 | 日韩视频免费在线 | 成人欧美一区二区三区白人 | 婷婷七月丁香 | 青青青国产在线视频 | 失乐园日本版 | 日韩欧美一二区 | 在线免费观看国产精品 | 国产成人永久在线播放 | 青青青国产在线观看 | 91国偷自产一区二区三区蜜臀 | free性欧美hd另类精品 | 国产激情一级毛片久久久 | 精品久久一区二区三区 | 欧美精品免费看 | 91免视频 | 上海一级片 | 一级做a爰片性色毛片视频图片 | 国产手机视频在线观看 | 国产亚洲第一 | 久久九九精品一区二区 | 欧美成人性色生活片免费在线观看 | 久久大香伊蕉在人线观看热2 | 国产三级精品91三级在专区 | 男人天堂综合网 | 中文字幕在线精品视频入口一区 | 99热国产免费 |