linux 驱动测试程序无法编译,请大神指教。。

linux 驱动测试程序无法编译,请大神指教。。,第1张

你如果编译模块,需要有内核源码树,最少要有内核源码里的头文件。

你的环境里可能没有内核头文件,所以你要首先下载一份,然后在makefile时指出所在路径

至于makefile很容易写,你就参考ldd里给的例子就行

java程序的测试使用比较广泛的就是JUnit了。用这个编写测试用例,然后在打包编译之前执行测试用例,全部通过再执行打包,同时还可以生成测试报告。

linux和windows下都是一样的,这个与 *** 作系统无关。

应用层默认open函数定义:int open( const char * pathname,int flags)

驱程序般open函数定义:int(*open)(struct inode *inode, struct file *filp)

LED点亮应用层主函数

[code=C/C++][/code]void main(void)

{

int testdev

int i

char buf[10]

testdev = open ("/dev/test",O_RDWR)//应该用应用层默认Open函数吧

if(testdev == -1)

{

printf("Cann't open file...../n")

exit(0)

}

printf("buf = 0x%x/n",buf)

read(testdev,buf,10)//功opentestdev值0能够file文件描述符呢

write(testdev,buf,1)

led_ctl.port='G'

led_ctl.bit=5

led_ctl.value=0

ioctl(testdev,GPIO_IO_SET_GPG,&led_ctl)

printf("%s",buf)

pause()

close(testdev)

}

我疑问:

1.驱程序open函数:int(*open)(struct inode *inode, struct file *filp)

哪使用啊

2.驱open函数般用做啊

3.文代码功opentestdev值0能够file文件描述符呢

才始习Linux设备驱发借本书代码没注释面驱意思懂希望各位神指点指点万谢

面都我编写字符设备驱代码请问static int read_test()函数始static void release_test()函数参数内部代码意义

万谢

采纳前加100谢谢

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <linux/types.h>

#include <linux/fs.h>

#include <linux/mm.h>

#include <linux/errno.h>

#include <asm/segment.h>

#include <asm/uaccess.h>

#include <linux/module.h>

unsigned int test_major = 0

static int read_test(struct inode *node,struct file *fle,char *buf,int count)

{

int left

if (access_ok(VERIFY_WRITE, buf, count))

{

for (left = countleft >0left--)

{

_put_user('a',buf)

buf ++

}

}

return count

}

static int write_test(struct inode *node, struct file *fle, char *buf, int count)

{

return count

}

static int open_test(struct inode *inode,struct file *file)

{

try_module_get(THIS_MODULE)

return 0

}

static void release_test(struct inode *inode, struct file *file)

{

module_put(THIS_MODULE)

}

struct file_operations test_fops =

{

.owner = THIS_MODULE,

.read = read_test,

.write = write_test,

.open = open_test,

.release = release_test,

}

int init_module()

{

int result

result = register_chrdev(0,"test,&test_fops")

if (result <0)

{

printk(KERN_INFO "dddddddddddddddd")

return result

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8467466.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存