1. 程式人生 > >嵌入式核心及驅動開發之學習筆記(五) 編寫字元驅動步驟總結

嵌入式核心及驅動開發之學習筆記(五) 編寫字元驅動步驟總結

1,實現模組載入和解除安裝入口函式
        module_init(chr_dev_init);
        module_exit(chr_dev_exit);

2,在模組載入入口函式中
    a, 申請主裝置號  (核心中用於區分和管理不同字元裝置)
             register_chrdev(dev_major, "chr_dev_test", &my_fops);

    b,建立裝置節點檔案 (為使用者提供一個可操作到檔案介面--open())
            struct  class *class_create(THIS_MODULE, "chr_cls");
            struct  device *device_create(devcls, NULL, MKDEV(dev_major, 0), NULL, "chr2");

    c, 硬體的初始化
           1,地址的對映
                gpx2conf = ioremap(GPX2_CON, GPX2_SIZE);
           2,中斷到申請
           3,實現硬體的暫存器到初始化


    e,實現file_operations
            const struct file_operations my_fops = {
                    .open = chr_drv_open,
                    .read = chr_drv_read,
                    .write = chr_drv_write,
                    .release = chr_drv_close,
            };