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

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();

猜你喜欢

转载自blog.csdn.net/sunshinebooming/article/details/86141713