历史上的今天
今天是:2025年01月15日(星期三)
2020年01月15日 | S3C2440 LED驱动
2020-01-15 来源:eefocus
//头文件
#include //定义设备名称 //led与ARM硬件连接 static unsigned long led_table [] = { //ARM I/0配置为输出 static unsigned int led_cfg_table [] = { //file operations 结构体的ioctl()函数 static int sbc2440_leds_ioctl( static struct file_operations dev_fops = { static int __init dev_init(void) ret = misc_register(&misc); printk (DEVICE_NAME"tInitializedn"); return ret; static void __exit dev_exit(void) module_init(dev_init); ///////////////////////////////////////////////////////////////////////////////// //Makefile DEVICE = led endif clean: depend .depend dep: //////////////////////////////////////////////////////////////////////////////////////////// //API #include int main(int argc, char **argv) //////////////////////////////////////////////////////////////// //Makefile CROSS=arm-linux- all: led led: led.c clean:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define DEVICE_NAME "leds"
S3C2410_GPB(5),
S3C2410_GPB(6),
S3C2410_GPB(7),
S3C2410_GPB(8),
};
S3C2410_GPIO_OUTPUT,
S3C2410_GPIO_OUTPUT,
S3C2410_GPIO_OUTPUT,
S3C2410_GPIO_OUTPUT,
};
struct inode *inode,
struct file *file,
unsigned int cmd,
unsigned long arg)
{
switch(cmd) {
case 0: case 1:
if (arg > 4) return -EINVAL;
s3c2410_gpio_setpin(led_table[arg], !cmd);
return 0;
default: return -EINVAL;
}
}
.owner = THIS_MODULE,
.ioctl = sbc2440_leds_ioctl,
};
{
int i,ret;
for (i = 0; i < 4; i++) {
s3c2410_gpio_cfgpin(led_table[i], led_cfg_table[i]);
s3c2410_gpio_setpin(led_table[i], 0);
}
}
{
misc_deregister(&misc);
}
module_exit(dev_exit);
MODULE_LICENSE("GPL");
ifneq ($(KERNELRELEASE),)
obj-m := ${DEVICE}.o
else
CC = arm-linux-gcc
KERNELDIR = /opt/linux-2.6.32.2
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(KERNELDIR)/include modules
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.symvers *~ modules.order
$(CC) $(CFLAGS) -M *.c > .depend
ifeq (.depend,$(wildcard .depend))
include .depend
endif
#include
#include
#include
{
int on;
int led_no;
int fd;
if (argc != 3 || sscanf(argv[1], "%d", &led_no) != 1 || sscanf(argv[2],"%d", &on) != 1 ||
on < 0 || on > 1 || led_no < 0 || led_no > 3) {
fprintf(stderr, "Usage: leds led_no 0|1n");
exit(1);
}
fd = open("/dev/leds0", 0);
if (fd < 0) {
fd = open("/dev/leds", 0);
}
if (fd < 0) {
perror("open device leds");
exit(1);
}
ioctl(fd, on, led_no);
close(fd);
return 0;
}
$(CROSS)gcc -o led led.c
@rm -vf led *.o *~
上一篇:ARM地址空间
史海拾趣
|
汽车的方便、舒适等都和车身电子控制技术密不可分,车身电子控制技术也日益引起业界重视。 目前国际上车身电子集成控制技术比较成熟,其中有代表性的公司有德科电子、博世、欧姆龙等,他们在电子控制ECU方面已经历经几十年的研发和生产,技术较 ...… 查看全部问答> |
|
提供基于Vxworks的各种PowerPC平台(MPC82XX/MPC85XX/MPC7448/AMCC440GX等) Beijing Freesense是专业PowerPC设计公司,提供基于Vxworks和Liunx的各种PowerPC平台(MPC82XX/MPC85XX/MPC7448/AMCC440GX等),提供设计开发服务。Tel: 010-82790138、13501394847,zhytang@freesense.com.cn… 查看全部问答> |
|
移动软件开发工程师 职位要求: 1、嵌入式平台(WinCE,平台),应用软件开发; 2、熟悉J2ME开发。 3、具有良好的团队精神。 4、一年以上WinCE平台开发经验。 请有意者将简历mail至 suntjl@sina.com ...… 查看全部问答> |
|
下面是nboot(steldr——boot)里关于休眠唤醒的处理代码 WAKEUP_POWER_OFF ; Release SCLKn after wake-up from the POWER_OFF mode. ldr r1, =MISCCR & ...… 查看全部问答> |
|
各位,我不是很清楚嵌入式系统,请问我们外面买的那些MP3/4属于嵌入式系统吗?还有一个问题,我在网上看到基本上嵌入式系统好像就分两种,什么LINUX和WINCE,怎么区分呢,我做MP3开发的,是C语言和汇编混合的,不知道这个是属于哪种呢?谢谢!… 查看全部问答> |
|
1. 智能电网。智能电网可能是本次FTF最为突出的主题,其实去年FTF也就在推这个理念,当然大家都相信智能电网是大势所趋,飞思卡尔在智能电表和集中器方面展示了解决方案,其中集中器用的就是传说中的MCF54418 ...… 查看全部问答> |




