【发布时间】:2014-03-10 08:23:33
【问题描述】:
我正在尝试使用 GPIO 将 16x2 LCD 与 Beagleboard xM 连接。我已经通过使用 shell 脚本完成了这项工作,并且运行良好。现在我想通过编写内核模块来实现相同的功能。在学习阶段,我对内核编程知之甚少。需要一些指导。提前致谢!
【问题讨论】:
标签: c embedded beagleboard lcd interfacing
我正在尝试使用 GPIO 将 16x2 LCD 与 Beagleboard xM 连接。我已经通过使用 shell 脚本完成了这项工作,并且运行良好。现在我想通过编写内核模块来实现相同的功能。在学习阶段,我对内核编程知之甚少。需要一些指导。提前致谢!
【问题讨论】:
标签: c embedded beagleboard lcd interfacing
编写内核模块与编写 shell 脚本不同。您必须用 C++ 编写自己的代码,声明内核模式,然后编译它。我找到了一个例子,但没有时间检查它,所以我把它留给你。 Here is one example 编写内核模块,here 是连接 16x02 lcd 的教程。
【讨论】:
如果你有脚本,你可以像 linux 中的模块一样加载它,
在 /etc/rcS.d 文件夹中,您会发现很多脚本,例如 S13-some_name.sh 。这些脚本将在启动时由内核自动运行。所以你可以在这里添加你的 scipt 以使其成为一个模块
所以要做的一件事是找到这些脚本列表中使用的最后一个数字,并通过将下一个数字添加到列表中的最后一个数字来重命名您的驱动程序脚本
例如: 如果 /etc/rcS.d 中的最后一个脚本是 S53logger.sh
将您的 scipt 重命名为 S54-name-.sh(不要忘记通过 chmod +x 更改属性)
如果 /etc/rcS.d 不存在,则可能有一个文件 rc.local 文件,您只需将驱动程序脚本添加到其中
【讨论】: