X5之LED驱动

来源:互联网 发布:mysql认证考试费用 编辑:程序博客网 时间:2024/04/28 07:28



1、程序调用

1) 位于src\drivers\boards\px4fmu-v1\px4fmu_init.c  中 _EXPORT int nsh_archinitialize(void)  ()

{
    int result;

。。。。。。。。。。。。。。。。。。

    hrt_call_every(&serial_dma_call,
               ts_to_abstime(&ts),
               ts_to_abstime(&ts),
               (hrt_callout)stm32_serial_dma_poll,
               NULL);

    /* initial LED state */
    drv_led_start();
    led_off(LED_AMBER);
    led_off(LED_BBLUE);
。。。。。。。。。。。。。。。。。。。。。。。。。。
}

    

2)\src\drivers\led\led.cpp

void drv_led_start(void)
{
    if (gLED == nullptr) {
        gLED = new LED;
        if (gLED != nullptr)
            gLED->init();
    }
}

3)int
CDev::init()
{
    // base class init first
    int ret = Device::init();

    if (ret != OK)
        goto out;

    // now register the driver
    if (_devname != nullptr) {
        ret = register_driver(_devname, &fops, 0666, (void *)this);

        if (ret != OK)
            goto out;

        _registered = true;
    }

out:
    return ret;

}


由此可见调用CDev::init()会注册设备。



0 0