Linux中LonWorks现场总线设备驱动设计
http://tech.ddvip.com 2007年03月12日 社区交流
本文详细介绍Linux中LonWorks现场总线设备驱动设计
(5) 编译内核模块
在程序完成后,用gcc编译成目标文件(不链接,生成*.o文件),要做到这一点只需在gcc命令行里加上-c参数。另外,还要加上-D_KERNEL_ -DMODULE参数。上述程序可以这么编译。root# gcc -c -D-KERNEL_-DMODULE -Wall -02 lmdev.c。其中参数-Wall的功能是打印附加的警告信息。由于头文件中的函数都是声明为inline的,还必须给编译器指定-O选项。gcc只有打开优化选项后才能扩展内嵌函数,不过它能同时接受-g和-O选项,这样就可以调试那些内嵌函数的代码了。优化参数-O有三个级别:Ol,02, 03,它们的优化程度不同,优化效果03大于02大于Ol。编译好模块后的如何加载模块,在前面已经有所描述,这里就不再叙述了。
3.4 应用程序开发
在对以上模块编译并加载后,Linux根据用户可用mknod命令,利用动态分配的主设备号(该设备号在用户空间可以从/proc/devices文件中用设备名获得)建立相应的设备文件,并对它设置恰当读写权限后,就可以在我们的应用程序中,使用Linux的文件系统调用通过这个设备文件来操作LonWorks现场总线卡了。这样做不仅使得应用程序编程风格更加统一,代码更具鲁棒性,应用系统更加安全更易于维护。而且可在核心级来保证关键部分的实时响应,从而降低了用户程序开发的难度。
下面是我们为这个驱动开发的测试程序的一些实验结果,测试项目为:通过智能控制器检测LonWorks现场总线网络节点分布状况。
测试结果如图4所示:

结果分析:智能控制器分别检测出1#LonWorks现场总线通道6号节点有一个开关量前端(LM1202),2#LonWorks现场总线通道11号节点有一模拟量前端(LM1101)。智能控制器检测结果与实际LonWorks现场总线网络节点分布一致,这说明LonWorks现场总线设备驱动程序正确运行。到此,LonWorks现场总线设备驱动开发完成。
4 结束语
本文在研究了基于嵌入式Linux平台的驱动程序开发机制后,研究实现了嵌入式Linux环境下的LonWorks现场总线网卡的设备驱动。应用实现结果表明,该设备驱动运转正常、性能可靠。这一研究课题的成功的解决对于拓宽LonWorks现场总线应用领域具有借鉴和推广意义。
作者:刘 广 石婷婷 责编:豆豆技术应用
- Linux/Unix 新闻
- Linux/Unix 入门
- Linux/Unix 命令
- Linux/Unix 安装
- Linux 嵌入式系统
- Linux/Unix 编程
- Linux/Unix 管理
- Linux/Unix 桌面
- Linux/Unix 内核
- Linux/Unix 软件
- SCO Unix
- NetBSD
- OpenBSD
- Redhat/Fedora Linux
- 手机
- Linux/Unix find 搜索命令
- Linux/Unix vi 命令
- Linux/Unix kde 桌面环境
- Linux/Unix GNOME 桌面环境
- Linux/Unix Make 命令
- Linux/Unix crontab 命令
- Linux/Unix ext3 文件系统
- Linux/Unix 文件系统详解
- Linux/Unix ADSL 拨号设置
- Linux/Unix GRUB 配置及应用
- Linux/Unix nfs配置
- Linux/Unix 硬件信息查看及管理
- Linux/Unix 优化
- Linux/Unix 交换分区Swap管理及应用
- Linux/Unix 用户管理
- Linux/Unix Ramdisk
- Linux/Unix 密码恢复管理
- Linux/Unix 文件删除恢复
- Linux/Unix fdisk分区
- Linux/Unix lvs负载均衡管理
- Linux/Unix root用户
- Linux/Unix 集群
- Linux/Unix 日志
- 更多Linux/Unix专题……