Linux下TCM驱动的加载及测试
2012-03-23 09:20
525 查看
Linux下TCM驱动的编译加载及测试过程
一、 编译加载驱动
如果按照所给文件夹tcmdV1.1下的文件,直接运行命令make就可以对驱动模块进行编译。编译会生成tcm.ko、tcm_tis.ko两个模块。 之后运行如下命令加载驱动: #insmodtcm.ko #insmodtcm_tis.ko #lsmod 即可看到驱动已加载到内核。但是通过var/log/messages文件中的log信息我们发现驱动是按pnp方式默认加载的,没有绑定TCM硬件。所以此时在/dev下找不到对应TCM的设备文件节点tcm0。此时驱动尽管加载了但是没有运行成功! 针对这种情况,我们可以对提供的驱动源码进行分析,同时通过printk调试驱动发现了问题的出现的位置。
问题如下: 在执行到static int _initinit_tis(void)函数时出现设备不会自动探测到所用的入口,而是执行了pnp_register_driver的默认注册方式。所以在这里我们将函数中的if(force)注释掉,然后添加一行if(true)强制其进入ACPI入口。(注销的函数 static void __exit cleanup_tis(void)中也做同样修改)r 然后按照以上方法编译加载,此时可以看到在/dev下创建了tcm0设备文件节点,表面驱动与硬件绑定,此时可以用文件操作的方法来操作tcm0。到此linux下TCM驱动才正在加载成功。
二、 测试驱动
方法一:按照所给文件中的代码如果运用gcc编译命令来编译 #gcc–g –o test test.c 则会产生找不到头文件的现象。针对这种情况我们需要将所包含的头文件的路径做相应的修改,比如“trousers/tss.h”找不到,得修改为”include/trousers/tss.h”然后编译,则又会出现其他的找不到头文件的现象,根据编译提示的错误一一修改,直到不出现头文件没有发现的错误,此时将lib文件夹下的静态库libtcs.a、libtddl.a拷贝到usr/lib文件夹下,同时拷贝到与test.c同一目录下。此时运行编译命令:
#gcc–L /usr/lib test.clibtddl.alibtcs.a–o test 即可编译成功,生成test可执行文件。运行命令 #./test 即可查看到测试结果。
方法二:直接运行命令: #gcc -I include test.c -L lib -ltddl -ltcs -g -o test.o 即可生成test可执行文件 #./test
即可
一、 编译加载驱动
如果按照所给文件夹tcmdV1.1下的文件,直接运行命令make就可以对驱动模块进行编译。编译会生成tcm.ko、tcm_tis.ko两个模块。 之后运行如下命令加载驱动: #insmodtcm.ko #insmodtcm_tis.ko #lsmod 即可看到驱动已加载到内核。但是通过var/log/messages文件中的log信息我们发现驱动是按pnp方式默认加载的,没有绑定TCM硬件。所以此时在/dev下找不到对应TCM的设备文件节点tcm0。此时驱动尽管加载了但是没有运行成功! 针对这种情况,我们可以对提供的驱动源码进行分析,同时通过printk调试驱动发现了问题的出现的位置。
问题如下: 在执行到static int _initinit_tis(void)函数时出现设备不会自动探测到所用的入口,而是执行了pnp_register_driver的默认注册方式。所以在这里我们将函数中的if(force)注释掉,然后添加一行if(true)强制其进入ACPI入口。(注销的函数 static void __exit cleanup_tis(void)中也做同样修改)r 然后按照以上方法编译加载,此时可以看到在/dev下创建了tcm0设备文件节点,表面驱动与硬件绑定,此时可以用文件操作的方法来操作tcm0。到此linux下TCM驱动才正在加载成功。
二、 测试驱动
方法一:按照所给文件中的代码如果运用gcc编译命令来编译 #gcc–g –o test test.c 则会产生找不到头文件的现象。针对这种情况我们需要将所包含的头文件的路径做相应的修改,比如“trousers/tss.h”找不到,得修改为”include/trousers/tss.h”然后编译,则又会出现其他的找不到头文件的现象,根据编译提示的错误一一修改,直到不出现头文件没有发现的错误,此时将lib文件夹下的静态库libtcs.a、libtddl.a拷贝到usr/lib文件夹下,同时拷贝到与test.c同一目录下。此时运行编译命令:
#gcc–L /usr/lib test.clibtddl.alibtcs.a–o test 即可编译成功,生成test可执行文件。运行命令 #./test 即可查看到测试结果。
方法二:直接运行命令: #gcc -I include test.c -L lib -ltddl -ltcs -g -o test.o 即可生成test可执行文件 #./test
即可
相关文章推荐
- linux驱动加载查看测试 步骤
- Linux驱动:信号量同步测试
- linux下测试RTC驱动date和hwclock
- Linux 设备驱动的固件加载
- Linux驱动的加载方式
- 编译和安装linux内核2.6.x,一个简单的内核驱动测试
- openwrt系统之字符设备驱动软件包加载、测试程序加载
- linux驱动入门---test驱动模块加载
- Linux 2.6 内核驱动模块的编译和加载
- linux下DMA驱动测试代码
- linux驱动加载顺序
- Linux CAN驱动及测试总结
- Linux下fl2440之led驱动编写以及测试
- Linux下实现流水灯等功能的LED驱动代码及测试实例
- linux下驱动模块化编译,动态加载以及卸载
- linux驱动的入口函数module_init的加载和释放
- 编译和安装linux内核2.6.24,并且写一个简单的内核驱动测试之
- linux驱动加载时错误“Unknown symbol in module”的分析与处理
- 在linux中添加一个模块驱动,并手动加载和卸载
- Linux系统网卡驱动的加载流程