增加一个LED的灯控制到内核问题
假设想回入一段程序来控制板上的LED灯,应该怎样添加到内核里,能够实现在linux启动时灯就会给出状态.
这里只想知到如何将一段代码做为一个单独的文件添加到内核源中,且不做为模块并在启动时能让它运行起来.
请指点,谢谢.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
假设想回入一段程序来控制板上的LED灯,应该怎样添加到内核里,能够实现在linux启动时灯就会给出状态.
这里只想知到如何将一段代码做为一个单独的文件添加到内核源中,且不做为模块并在启动时能让它运行起来.
请指点,谢谢.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
方法太多了。直接在内核初始化部分加代码,或者写个模块启动时加载,或者写个简单代码启动时执行。
我最近也在做 还没做成
请问二楼的大侠 具体思路是不是 这样 首先是查看到LED所对应的硬件地址 然后通过LINUX的MAP 得到地址
然后对该地址进行 0 1 赋值 控制灯的通断 是否可行????
到drivers目录下找一个看看是如何将某个驱动编译到内核里的
收到 谢谢 看看啊 我TRY TRY
1。如果你是通过CPU本身的GPIO来控制点灯并且该GPIO的控制寄存器地址是跟内存地址统一编址的,那你不需要写驱动,直接在应用程序中mmap一把,然后操作寄存器就行了;
映射后的地址 = mmap(NULL,映射大小,PROT_READ|PROT_WRITE,MAP_SHARED,fd,待映射的起始地址)
2。如果不是,那你有两种选择:
a。在boot/main.c使用C语言或者在更靠前的\arch\XXX\boot目录下的init.s文件中使用汇编来操作GPIO寄存器;
b。如楼上所说,写个驱动,或者编到内核中,或者启东时动态加载。
Say thanks to every feedbacks.
I have killed it successfully.