Linux kernel RT-Linux框架模块
我想为rt linux创建一个简单的linux模块。 我使用的是am5749(定制板)ti-processor-sdk-linux-rt-am57xx-evm-06.03.00.106。 所以…我试着编译很多例子。 它不适用于rt linux。 永远不会调用probe函数。我想了解为什么在rt中没有调用作为许多驱动程序一部分的探测函数,以及如何解决它。我想重新制作几个驱动程序来使用rt linux 以下是我的骨架模块的代码:Linux kernel RT-Linux框架模块,linux-kernel,kernel-module,Linux Kernel,Kernel Module,我想为rt linux创建一个简单的linux模块。 我使用的是am5749(定制板)ti-processor-sdk-linux-rt-am57xx-evm-06.03.00.106。 所以…我试着编译很多例子。 它不适用于rt linux。 永远不会调用probe函数。我想了解为什么在rt中没有调用作为许多驱动程序一部分的探测函数,以及如何解决它。我想重新制作几个驱动程序来使用rt linux 以下是我的骨架模块的代码: #include <linux/init.h> #incl
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/of_device.h>
static const struct of_device_id Some_i2c_dt_id[] = {
{ .compatible = "ti,Some_i2c"},
{ },
};
static int Some_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
printk("Module is probed\n");
}
static int Some_i2c_remove(struct i2c_client *client)
{
}
static const struct i2c_device_id Some_i2c_id[] = {
{ "Some_i2c", 0 },
{ },
};
MODULE_DEVICE_TABLE(i2c, Some_i2c_id);
static struct i2c_driver Some_i2c_driver = {
.driver = {
.name = "Some_i2c",
.owner = THIS_MODULE,
.of_match_table = Some_i2c_dt_id,
},
.id_table = Some_i2c_id,
.probe = Some_i2c_probe,
.remove = Some_i2c_remove,
};
static int __init Some_i2c_init( void ) {
printk("Module is started\n");
return i2c_add_driver(&Some_i2c_driver);
}
static void __exit Some_i2c_exit( void ) {
i2c_del_driver(&Some_i2c_driver);
printk("Module is stoped\n");
}
module_init( Some_i2c_init );
module_exit( Some_i2c_exit );
MODULE_AUTHOR("Someone");
MODULE_DESCRIPTION("Some_i2c_Driver");
MODULE_LICENSE("GPL v2");
探测后,应显示消息“模块已探测”。我是在非rt linux中获得的。
正如您所了解的,这在rt linux中不起作用
我不明白。为什么它不能与“rt linux”一起工作<代码>从不调用探测函数什么是“探测函数”?请创建一个。除了外部资源,请使问题独立-将所有代码、引用和makefile作为文本发布到您的问题中。请发布你执行了什么命令,做了什么,结果如何。你怎么知道“探测函数从未被调用”?请看一看。你的模块是构建的吗?您的模块是否加载?
obj-m = module.o
KDIR := /SDK/ti-processor-sdk-linux-rt-am57xx-evm-06.03.00.106/board-support/linux-rt-4.19.94+gitAUTOINC+a242ccf3f1-ga242ccf3f1/
all:
make -C $(KDIR) M=$(shell pwd) modules
clean:
make -C $(KDIR) M=$(shell pwd) clean