Linux驱动编写中找不到sleep系列延时函数的解决办法

  • Post author:
  • Post category:linux




Linux驱动编写中找不到sleep系列延时函数的解决办法



开发环境

  • 宿主机:ubuntu12.04
  • 目标机:Freescale-iMX280开发板
  • 内核版本:linux-2.6.35.3
  • 交叉编译器:arm-fsl-linux-gnueabi-



问题描述

  • 开发linux驱动的时候,需要用到延时函数,准备调用:
sleep();
usleep();
msleep();

等函数的时候,编译器提示

error: implicit declaration of function 'usleep'



原因分析

sleep();
usleep();
msleep();

等函数是用户空间定义的函数,在内核中无法使用



解决办法

改用内核中定义的延时函数

//头文件
#include <linux/delay.h>

//函数原型
//秒级延时
delay();
//毫秒级延时
mdelay();
//微秒级延时
udelay();
//纳秒级延时
ndelay();



版权声明:本文为sunshinebooming原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。