S3C2440 Linux驱动移植——LED heartbeat
来源:互联网 发布:淘宝店招链接怎么做 编辑:程序博客网 时间:2024/05/06 14:30
开发板:TQ2440
内核:Linux 2.6.32
PC OS:Ubuntu 11.04
本文将对LED驱动的移植进行说明,本文的LED用于实现heartbeat,也就是系统启动以后,led会想人类的心脏一样,按固定频率进行闪烁。
除非系统死机,否则LED是不会停止闪烁的。
1. 配置内核,如下图
2. 修改代码
TQ2440开发板提供了4个LED可供用户控制,本文用其中一个LED实现heartbeat功能。
该LED和GPB5号管脚相连。
打开文件arch/arm/plat-s3c24xx/common-smdk.c
将smdk_pdata_led4修改为
static struct s3c24xx_led_platdata smdk_pdata_led1/*smdk_pdata_led4*/ = { .gpio = S3C2410_GPB(5),//S3C2410_GPF(4), .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, .name = "led1",//"led4", .def_trigger = "heartbeat",//"timer",};
由于这是板子上的第一个led,所以将名字也修改为LED1。
将smdk_led4结构体更名为smdk_led1。
将smdk_devs数组修改为如下:
static struct platform_device __initdata *smdk_devs[] = { &s3c_device_nand, &smdk_led1, //&smdk_led5, //&smdk_led6, //&smdk_led7,};
最后修改smdk_machine_init函数如下:
void __init smdk_machine_init(void){ /* Configure the LEDs (even if we have no LED support)*/ s3c2410_gpio_cfgpin(S3C2410_GPB(5), S3C2410_GPIO_OUTPUT); //s3c2410_gpio_cfgpin(S3C2410_GPF(4), S3C2410_GPIO_OUTPUT); //s3c2410_gpio_cfgpin(S3C2410_GPF(5), S3C2410_GPIO_OUTPUT); //s3c2410_gpio_cfgpin(S3C2410_GPF(6), S3C2410_GPIO_OUTPUT); //s3c2410_gpio_cfgpin(S3C2410_GPF(7), S3C2410_GPIO_OUTPUT); s3c2410_gpio_setpin(S3C2410_GPB(5), 1); //s3c2410_gpio_setpin(S3C2410_GPF(4), 1); //s3c2410_gpio_setpin(S3C2410_GPF(5), 1); //s3c2410_gpio_setpin(S3C2410_GPF(6), 1); //s3c2410_gpio_setpin(S3C2410_GPF(7), 1); if (machine_is_smdk2443()) smdk_nand_info.twrph0 = 50; s3c_device_nand.dev.platform_data = &smdk_nand_info; platform_add_devices(smdk_devs, ARRAY_SIZE(smdk_devs)); s3c_pm_init();}
3. 验证
编译内核,烧入后,并运行。
系统启动后,LED开始闪烁,同时可以在sys文件系统中看到该LED。如下:
[root@yj423 leds]#pwd
/sys/class/leds
[root@yj423 leds]#ls
led1
- S3C2440 Linux驱动移植——LED heartbeat
- S3C2440 Linux驱动移植——LED heartbeat
- 基于S3C2440的linux-3.6.6移植——LED驱动
- 基于S3C2440的linux-3.6.6移植——LED驱动
- LINUX移植——LED驱动移植
- S3C2440 Linux驱动移植——SPI
- S3C2440 Linux驱动移植——LCD
- S3C2440 Linux驱动移植——按键
- S3C2440 Linux驱动移植——SPI
- S3C2440 Linux驱动移植——LCD
- S3C2440 Linux驱动移植——按键
- S3C2440 Linux驱动移植——SPI
- S3C2440 Linux驱动移植——NAND驱动
- S3C2440 Linux驱动移植——SD卡驱动
- S3C2440 Linux驱动移植——AT24C02(EEPROM)驱动
- S3C2440 Linux驱动移植——NAND驱动
- S3C2440 Linux驱动移植——SD卡驱动
- S3C2440 Linux驱动移植——AT24C02(EEPROM)驱动
- WCF 广域网通讯问题
- WCF返回Image对象超时
- Message 和 error显示的问题
- Java中保留几位小数
- STM32使用Systick 实现精确定时
- S3C2440 Linux驱动移植——LED heartbeat
- 工作效率和薪水翻番七秘诀
- AT89S8253片内EEPROM字节读、字节写、页读、页写驱动代码、注意事项及注释
- Xenclient如何使用iso文件安装操作系统
- HDU_2059 龟兔赛跑
- 函数声明--默认实参
- Openc学习笔记:关于反投影直方图
- Linux脚本中用户自定义终止符-EOF
- 获取证书公钥信息