当前位置: 技术问答>linux和unix
内核模块编译,无法点亮第二个led灯,ioctl()不能输入2?
来源: 互联网 发布时间:2017-05-01
本文导语: 最近在学内核模块编译,用的是三星a8的板子,想通过ioctl()函数对led灯进行控制,但是很奇怪,第三个灯总是无法点亮。求大神!!! 内核模块代码下: #include #include #include #include #include #include #include #de...
最近在学内核模块编译,用的是三星a8的板子,想通过ioctl()函数对led灯进行控制,但是很奇怪,第三个灯总是无法点亮。求大神!!!
内核模块代码下:
#include
#include
#include
#include
#include
#include
#include
#define COUNT 3
#define GPH0CON 0xE0200C00
dev_t devid;
u8 *virt;
//在模块里实现对led灯的操作,通过应用程序来操作
int qioctl (struct inode *ind,struct file *f,unsigned int cmd,unsigned long arg)
{
int val;
val = ioread32(virt+4);
if (cmd==1 || cmd==2 || cmd==3)//只要输入的不是1,2,3灯就会全部灭
{//注意:a8板开机就有一个灯是亮着的,只能操作另外三个
val |= 1a.out--->在板子上运行a.out控制led on/off
*/
#include
#include
#include
//输入2不行?
int main(int argc, char *argv[])
{
int fd,cmd;
if (argc != 2)
{
printf("usage:[./a.out][num]n");
return 2;
}
fd = open("/dev/qdev",O_RDONLY);
if (fd
内核模块代码下:
#include
#include
#include
#include
#include
#include
#include
#define COUNT 3
#define GPH0CON 0xE0200C00
dev_t devid;
u8 *virt;
//在模块里实现对led灯的操作,通过应用程序来操作
int qioctl (struct inode *ind,struct file *f,unsigned int cmd,unsigned long arg)
{
int val;
val = ioread32(virt+4);
if (cmd==1 || cmd==2 || cmd==3)//只要输入的不是1,2,3灯就会全部灭
{//注意:a8板开机就有一个灯是亮着的,只能操作另外三个
val |= 1a.out--->在板子上运行a.out控制led on/off
*/
#include
#include
#include
//输入2不行?
int main(int argc, char *argv[])
{
int fd,cmd;
if (argc != 2)
{
printf("usage:[./a.out][num]n");
return 2;
}
fd = open("/dev/qdev",O_RDONLY);
if (fd