S3C2440 Linux驱动移植——LED heartbeat
来源:互联网 发布:免费听课的软件 编辑:程序博客网 时间:2024/05/27 14:13
转自 http://blog.csdn.net/yj4231/article/details/11674223
开发板: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
0 0
- 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)驱动
- Android的AlertDialog详解
- Lucene
- 教你从零开始成为优秀交互设计师(一):交互设计师修炼指南
- 自动连接VPN
- 字符串处理
- S3C2440 Linux驱动移植——LED heartbeat
- MFC遍历某个文件夹,并用tree Control简单显示
- Labview使用UDP通信的问题
- spring源码阅读(五)之ApplicationContext
- Android系统权限和root权限
- 客户端程序开发中的mvc设计模式
- 【Leetcode】Permutations (Backtracking)
- 终于摆脱千里之外~~~~~
- Appium_Selendroid安装native应用