码迷,mamicode.com
首页 > 其他好文 > 详细

openwrt驱动与应用程序的联系

时间:2014-08-20 12:09:22      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   使用   io   文件   数据   

应用程序与驱动之间需要进行命令的传递,因而它们之间需要共同定义一套双方都可以识别的数据结构,实际使用时它们include的是名字和内容相同但位置不同的头文件。

比如spi_gpio_ad7193.h这个头文件中包含有仅给驱动所使用的结构 _mode/_conf

struct _mode {
    // Mode Register Settings
    unsigned char mode:3;
    unsigned char dat_sta:1;
    unsigned char clk:2;
    unsigned char avg:2;
    unsigned int fs:10;
};

还包含驱动和应用程序都使用的定义等

// reset the device 
#define CMD_DEVICE_RESET    _IOW(SPI_IOC_MAGIC, 1, __u32)

// Calibrate channel
// (‘cmd‘refer to: Operations Modes[MOD_INTERNAL_ZS_CAL:MOD_SYSTEML_FS_CAL])
#define CMD_CHANNEL_CALIB    _IOW(SPI_IOC_MAGIC, 2, __u32)

我的openwrt中,驱动和应用程序的C源码都放在openwrt/package/utils中

SPI驱动的头文件#include <linux/spi/spi_gpio_ad7193.h>对应于build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.49/include/uapi/linux/spi/spi_gpio_ad7193.h

SPI应用程序头文件#include <linux/spi/spi_gpio_ad7193.h>对应于build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.49/user_headers/include/linux/spi/spi_gpio_ad7193.h

应用程序的头文件可以放在自己utils文件目录下面,这样应该比较容易管理。

如果想在make clean之后自动拷贝你的spi_gpio_ad7193.h到你的/linux-3.10.49/include/uapi/linux/spi/下面的话,那么在make clean之前应该在target/linux/generic/files/include/uapi/linux/spi下放置spi_gpio_ad7193.h这个文件。

这样当你make clean && make V=s之后,该文件就会自动拷贝到对应的目录下去了,编译驱动的时候就不会出现找不到头文件的错误了。

 

openwrt驱动与应用程序的联系,布布扣,bubuko.com

openwrt驱动与应用程序的联系

标签:des   style   blog   color   使用   io   文件   数据   

原文地址:http://www.cnblogs.com/tfanalysis/p/3924110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!