在linux2.6.30内核中,内核也提供了相关的平台驱动来操作gpio或LED,但更简便的方法是直接操作GPIO来控制led。

网上一博文中介绍直接封装led_on和led_off()函数直接调用即可。

void led1_on() {

s3c_gpio_cfgpin(LED_ID1, S3C_GPIO_OUTPUT);

s3c_gpio_setpull(LED_ID1, S3C_GPIO_PULL_NONE);

gpio_set_value(LED_ID1, 1);

}

void led1_off() {

s3c_gpio_cfgpin(LED_ID1, S3C_GPIO_OUTPUT);

s3c_gpio_setpull(LED_ID1, S3C_GPIO_PULL_NONE);

gpio_set_value(LED_ID1, 0);

}

2.6.30内核中9261中实现tick led功能,可在板卡文件中添加LED gpio初始化,之后在时钟中断中添加led闪烁功能即可,具体分析如下:

>>板卡文件中初始化led gpio。

at91_init_leds(0, AT91_PIN_PA11);

进一步追踪此函数,就是设置此gpio为输出,并初始化为高或低电平。

>>在时钟中断函数at91sam926x_pit_interrupt()中,增加tick led闪烁功能。

static inline void do_leds(void)

{

static unsigned int count = HZ/2;

if (--count == 0) {

count = HZ/2;

leds_event(led_timer);

}

}

>>leds_event()在leds_init()中初始化,

__initcall(leds_init);

其在系统初始化时设置。

进一步追踪:leds_event(led_timer);<==> at91_led_toggle(AT91_PIN_PA11);

至此tick led功能实现。

参考:

  1. http://blog.csdn.net/hellowxwworld/article/details/11001739

LED_9261在linux2.6.30中tick_led的实现的更多相关文章

  1. linux2.6.30.4内核移植(3)——yaffs文件系统移植

    内核源码:linux2.6.30.4 交叉编译工具:3.4.5 移植linux内核至:TQ2440 工作基础:http://www.cnblogs.com/nufangrensheng/p/36696 ...

  2. linux2.6.30.4内核移植(2)——Nand Flash驱动移植

    内核源码:linux2.6.30.4 交叉编译工具:3.4.5 移植linux内核至:TQ2440 工作基础:http://www.cnblogs.com/nufangrensheng/p/36696 ...

  3. linux2.6.30.4内核移植(1)

    内核源码:linux2.6.30.4 交叉编译工具:3.4.5 移植linux内核至:TQ2440 1.进入内核顶层目录,修改顶层Makefile,大概在193和194行,将ARCH和CROSS_CO ...

  4. 【Linux驱动】TQ2440 DM9000E网卡驱动移植(Linux-2.6.30.4)

    花了一天的时间研究了一下Linux-2.6.30.4版本号内核下关于TQ2440 DM9000E的网卡驱动移植.总结一下自己的收获. 事实上.在Linux-2.6.30.4版本号内核下有关于网卡驱动, ...

  5. 详解Linux2.6内核中基于platform机制的驱动模型 (经典)

    [摘要]本文以Linux 2.6.25 内核为例,分析了基于platform总线的驱动模型.首先介绍了Platform总线的基本概念,接着介绍了platform device和platform dri ...

  6. linux2.6.30.4内核移植(7)——插入hello world驱动模块

    详细步骤参考自:http://www.cnblogs.com/wanyao/archive/2011/11/21/2257628.html 过程比较顺利,结果截图如下: 这里需要注意的是:http:/ ...

  7. linux2.6.30.4内核移植(5)——构建根文件系统(yaffs文件系统格式的镜像)

    一.首先编译并安装BusyBox 这里使用的交叉编译器还是3.4.5. 注意:编译内核.编译BusyBox以及编译文件系统中的所有应用程序的交叉编译器要使用同一个版本. 1.获取BusyBox源码 下 ...

  8. 从串口驱动的移植看linux2.6内核中的驱动模型 platform device & platform driver【转】

    转自:http://blog.csdn.net/bonnshore/article/details/7979705 写在前面的话: 博主新开了个人站点:你也可以在这里看到这篇文章,点击打开链接 本文是 ...

  9. Linux2.6 内核中结构体初始化(转载)

    转自:http://hnniyan123.blog.chinaunix.net/uid-29917301-id-4989879.html 在Linux2.6版本的内核中,我们经常可以看到下面的结构体的 ...

随机推荐

  1. [转]动态调用webservice时 ServiceDescriptionImporter类在vs2010无法引用的解决方法

    本文转自:http://blog.csdn.net/limlimlim/article/details/8647038 [导读]ServiceDescriptionImporter是创建Web Ser ...

  2. 一些用过的C#类库收集

    [System.Math] [System.Guid] [System.Management.Automation.RuntimeException] [System.DateTime] [Syste ...

  3. iisNS 安装程序的思路

    1. 安装程序的目录和 frontEnd一个目录,通过判断是否存在 common/config/db.php 来验证是否已经安装过,如果已经安装过,该文件会自动生成 2.  如果没有安装过,则跳转到 ...

  4. PAT 基础编程题 4-11 求自定类型元素序列的中位数(希尔排序)

    4-11 求自定类型元素序列的中位数   (25分) 本题要求实现一个函数,求N个集合元素A[]的中位数,即序列中第\lfloor N/2 +1\rfloor⌊N/2+1⌋大的元素.其中集合元素的类型 ...

  5. MySQL update语句和insert插入语句写法完全不一样啊,不要搞混

    1.mysql update 语句: update user set name = 'xiaoming',age = 18 where uid = 3000; 更新记录时update操作也不需要写ta ...

  6. Java中的定时调度

    Timer类是一个线程设施,用于实现在某个时间或者某一段时间后安排某个任务执行一次或者定期重复执行.需要与TimerTask配合使用. TimerTask类用来实现由Timer安排的一次或重复执行的某 ...

  7. android ListView详解继承ListActivity

    [转]http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html 在android开发中ListView是比较常用的组件,它以列表的形式展 ...

  8. 【转】简单的虚拟摇杆控制移动(NGUI)

    http://www.cnblogs.com/zhangbaochong/p/4928688.html 一.用NGUI创建虚拟摇杆贴图 先创建一个sprite作为背景叫做JoyStick 并添加一个B ...

  9. nodejs爬虫

    前言 几个月之前,有同事找我要PHP CI框架写的OA系统.他跟我说,他需要学习PHP CI框架,我建议他学习大牛写的国产优秀框架QeePHP. 我上QeePHP官网,发现官方网站打不开了,GOOGL ...

  10. 【转】MySQL USE NAMES 'UTF8'

    先说MySQL的字符集问题.Windows下可通过修改my.ini内的 # CLIENT SECTION [mysql] default-character-set=utf8 # SERVER SEC ...