• Linux驱动设计编译错误信息集锦


    1、warning: passing argument 2 of 'request_irq' from incompatible pointer type

    http://blog.sina.com.cn/s/blog_7321be1101012gek.html

    今天在些key的driver的时候。。。写完了编译出现一个warmming如下:
    warning: passing argument 2 of 'request_irq' from incompatible pointer type

    我的request_irq函数调用如下:
    if(request_irq(key_info->irq_no, key_eint_handler, IRQF_DISABLED,"Mini2440_Key", &i))
    {
        return -1;
    }
    key_eint_handler函数的原型如下:
    static void key_eint_handler(int irq, void *dev_id,struct pt_regs *regs)

    问题出在key_eint_handler函数的原型,
    应该由:
    static void key_eint_handler(int irq, void *dev_id,struct pt_regs *regs)//错误的写法
    改为:
    static irqreturn_t key_eint_handler(int irq, void *dev_id)//正确写法

    原因从内核源码入手。。。
    linux/include/linux/interrupt.h, line 60 左右有这么一个定义
    typedef irqreturn_t (*irq_handler_t)(int, void *);
    这个定义是什么意思呢?
    它是指:定义一种函数指针类型irq_handler_t, 这种函数的返回类型为irqreturn_t,参数列表为int, void*
    再来看request_irq的函数声明部分
    kernel/irq/manage.c:
    int request_irq(
            unsigned int irq,
            irq_handler_t handler,
            unsigned long irqflags,
            const char *devname,
            void *dev_id)
    request_irq的第二个参数是handler函数,类型是irq_handler_t,
    也就是说:我定义的handler函数返回类型为irq_handler_t,
    结合最上面说的
    typedef irqreturn_t (*irq_handler_t)(int, void *);
    那么。。。
    handler函数应该是写成:
    static irqreturn_t key_eint_handler(int irq, void *dev_id)//正确写法
    2个参数。。。返回类型为irqreturn_t才是正确的!

    2、WARNING: "__bad_udelay" undefined!

    原因:udelay()的参数过大。

    内核中对udelay()的定义:

    ......

    #define MAX_UDELAY_MS 2

    #define udelay(n)

      (__builtin_constant_p(n)?                

        ( (n)>(MAX_UDELAY_MS *1000)?__bad_udelay() : __const_udelay((n)*((2199023U*HZ)>>11)) ):

        __udelay(n) )

    ......

     

    3、

  • 相关阅读:
    jmeter之jmx和控件介绍
    Jmeter使用1
    jmeter组件之聚合报告分析
    响应断言
    jmeter组件介绍-线程组、http采样器、结果树
    jmeter目录文件讲解和切换语言
    jmeter 学习 -安装
    关于去除input type='file'改变组件的默认样式换成自己需要的样式的解决方案
    js根据id、value值对checkbox设置选中状态
    javaweb简单的实现文件下载及预览
  • 原文地址:https://www.cnblogs.com/kwseeker-bolgs/p/4477870.html
Copyright © 2020-2023  润新知