免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3134 | 回复: 6
打印 上一主题 下一主题

增加一个LED的灯控制到内核问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-17 17:54 |只看该作者 |倒序浏览
假设想回入一段程序来控制板上的LED灯,应该怎样添加到内核里,能够实现在linux启动时灯就会给出状态.
这里只想知到如何将一段代码做为一个单独的文件添加到内核源中,且不做为模块并在启动时能让它运行起来.
请指点,谢谢.

论坛徽章:
0
2 [报告]
发表于 2007-01-22 11:29 |只看该作者

回复 #1 Pacer 的帖子

方法太多了。直接在内核初始化部分加代码,或者写个模块启动时加载,或者写个简单代码启动时执行。

论坛徽章:
0
3 [报告]
发表于 2007-01-22 12:04 |只看该作者
我最近也在做 还没做成
请问二楼的大侠 具体思路是不是 这样  首先是查看到LED所对应的硬件地址 然后通过LINUX的MAP 得到地址
然后对该地址进行 0 1 赋值 控制灯的通断 是否可行????

论坛徽章:
0
4 [报告]
发表于 2007-01-22 12:47 |只看该作者
到drivers目录下找一个看看是如何将某个驱动编译到内核里的

论坛徽章:
0
5 [报告]
发表于 2007-01-22 13:38 |只看该作者
收到 谢谢 看看啊 我TRY TRY

论坛徽章:
0
6 [报告]
发表于 2007-01-22 14:22 |只看该作者
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。如楼上所说,写个驱动,或者编到内核中,或者启东时动态加载。

论坛徽章:
0
7 [报告]
发表于 2007-01-26 09:40 |只看该作者
Say thanks to every feedbacks.
I have killed it successfully.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP