当前位置:  技术问答>linux和unix

驱动模块里能不能加while(1)语句

    来源: 互联网  发布时间:2016-09-16

    本文导语:  RT 驱动模块里能不能加while(1)语句 比如: int function() {    while(1) {    ... } return0; } int time_init(void) {     function();     ...     return 0; } | 秒表的话,也可以使用内核定时器 http://download.csdn.net/sour...

RT
驱动模块里能不能加while(1)语句
比如:
int function()
{
   while(1)
{
   ...
}
return0;
}

int time_init(void)
{
    function();
    ...
    return 0;
}

|
秒表的话,也可以使用内核定时器
http://download.csdn.net/source/2323904
里的第10章后半部是一个完整的秒字符设备驱动

|
如果是短延时的话,可以用以下几个函数:
#include 
void ndelay(unsigned long nsecs);//延时纳秒时间
void udelay(unsigned long usecs);//延时微妙时间
void mdelay(unsigned long msecs);//延时毫秒时间
如果是长延时的话,建议用内核定时器,基本接口如下:
#include 
struct timer_list {
  unsigned long expires;
  void (*function)(unsigned long);
  unsigned long data;
};
void init_timer(struct timer_list *timer);
struct timer_list TIMER_INITIALIZER(_function,_expires,_data);
void add_timer(struct timer_list *timer);
int del_timer(struct timer_list *timer);
int mod_timer(struct timer_list *timer,unsigned long expires);
int del_timer_sync(struct timer_list *timer);
int timer_pending(const struct timer_list *timer);

|
同意1楼。while(1)本身当然没有问题,比如下面的代码:
while(1) break;
虽然调皮,但也没什么大害。

所以关键还是看楼主想做什么,怎么做。

|
如果循环里在某种条件下就跳出来,那就问题不大,不过这好像不是楼主想讨论的问题。
如果是死循环,在非抢占式内核那是绝对不行的。即便是抢占式内核,也未必就能及时被抢占,所以也不好。
纯属个人理解,请楼下高手指正。

    
 
 

您可能感兴趣的文章:

  • 请教结构体定义--LINUX驱动程序中语句
  • 求助:驱动中看到一种平常没有见到的RETURN方法:return 判断语句
  • 一个驱动文件,生成多个驱动模块??
  • insmod 加载驱动模块后,重启后驱动为什么没有了
  • 驱动模块可以编入内核,想单独编译成模块,makefile怎么写?
  • 内核模块和设备驱动的区别?
  • 为何每次重启都要重新加载驱动模块?
  • Linux 2.6 和2.4 驱动开发有什么不同,特别是驱动模块
  • 驱动模块的加载和卸载的疑问
  • linux 2.6.15 中被编译为模块的驱动test.ko,应该放在什么路径下才能使得在需要该驱动时,由内核自动加载?谢谢
  • 驱动模块编译调试问题、、????
  • 将驱动模块编译进内核是否有用??
  • 关于驱动模块和中文的问题,问题比较傻,还望大家赐教
  • 驱动模块与mknod
  • 关于驱动模块卸载不成功的问题
  • rndis驱动编译成内核模块
  • 驱动模块断电重加载问题
  • *** AIX 下如何编写内核驱动模块?或者哪位有相关资料? *****
  • 关于驱动模块调试
  • 请教,如何知道内存中某个驱动模块是否已经被加载??
  • S3C2440接NRF24L01无线模块Linux驱动
  • 如何在内核模块中对linux字符驱动进行读写呢
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • fedora13 安装ati官方驱动后 不能正常驱动ati显卡
  • 我的网卡在redhat7.3下不能自动驱动,但我有for linux的驱动程序,请问如何才能驱动我的网卡,我是菜菜,请详细说明,谢谢!
  • 弱智问题:搞内核能不能不学驱动编程啊?网络协议栈必须要谙熟驱动吗?
  • 关于LINUX下1024*768显示问题,是不是因为没有驱动显卡才不能设置,如果是的话应该怎么驱动
  • 是不是7.3的nVIDIA驱动不能在8.0下装?
  • 我的linux不能打开我的主板驱动程序,谁能告诉我该怎么办啊?
  • 『急』安装完显卡驱动之后,不能进入Linux系统
  • SPI驱动能够写寄存器,不能读出寄存器
  • 技嘉主板好像都没有Linux下的驱动啊?板载网卡不能用。
  • 工作电脑不能上网,学习linux驱动开发
  • 为什么我下载的 “SQL Server 2000 JDBC 驱动程序” 不能安装啊?
  • 在底层驱动代码C中能不能嵌入shell脚本?
  • 一个LINUX的驱动程序中,能不能注册多个中断?
  • pqmagic出现“初始化失败,不能识别分区的驱动器字母”
  • 驱动程序不能安装
  • 加载驱动后,为什么有时在dev下不能自动显示设备文件?
  • misc驱动不能自己确定主设备号么?
  • windowsxp 下安装linux5.0时说不能找到驱动
  • 驱动怎么不能静态编译进内核?
  • UVC摄像头罗技c250不能驱动
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • 字符设备驱动,混杂设备驱动,总线、设备、驱动模型、平台驱动
  • UIO(linux Userspace I/O子系统)用户空间设备驱动I/O技术介绍
  • 好不容易下到sis900网卡for unix的驱动,但装上驱动后系统驱动时: SiS900 adapter initialization failure!
  • Linux环境下,“PC机的驱动”与“嵌入式驱动”有什么区别?
  • linux:怎么在驱动中调用IIC驱动?
  • linux驱动 单片机驱动
  • linux下一个驱动怎么调用另一个驱动
  • u boot中怎样写flash驱动以及串口驱动
  • Linux环境下,如何一个驱动中调用另外一个驱动
  • -------------- 请问大家,做好一个PCI设备驱动了,如何做个应用程序来使用这个驱动呢??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3