zoukankan      html  css  js  c++  java
  • Linux 驱动学习笔记

    最近用mini2440学习linux驱动,做一下笔记


    LED驱动:

    static int __init dev_init(void)

    在驱动的初始化函数中经常看到,__init 前缀, 这个在下面文件中定义

    file:/include/linux/init.h


    主要是将这个函数放在init段section中,这样可以在执行完成后,释放内存。


    关于s3c2410_gpio_cfgpin函数,只能了解到,设置某个GPIO的功能,但是怎么实现的没看明白,好像还用到虚拟地址了,最后也没有发现是怎么配置的GPCON寄存器的,

    而且,后面

    有个地方讲不通: (这个地方应该是都不满足 switch 的条件,所以, function 不改变)

    #define S3C2410_GPIO_LEAVE   (0xFFFFFFFF)

    #define S3C2410_GPIO_INPUT   (0xFFFFFFF0)  /* not available on A */

    #define S3C2410_GPIO_OUTPUT  (0xFFFFFFF1)

    #define S3C2410_GPIO_IRQ     (0xFFFFFFF2)   /* not available for all */

    #define S3C2410_GPIO_SFN2    (0xFFFFFFF2)  /* bank A => addr/cs/nand */

    #define S3C2410_GPIO_SFN3    (0xFFFFFFF3)  /* not available on A */

     

    #define S3C2410_GPB5_OUTP    (0x01 << 10)

    所以,

    s3c2410_gpio_cfgpin(S3C2410_GPB5, S3C2410_GPB5_OUTP);

    switch (function)

    根本对不上号?

     

    s3c2410_gpio_cfgpin(S3C2410_GPB5, S3C2410_GPB5_OUTP);

    s3c2410_gpio_cfgpin(37, S3C2410_GPB5_OUTP);

    s3c2410_gpio_cfgpin(37,  0x01 << 10 );

    剩下的37怎么变换出mask,怎么得到GPCON的地址没看懂?


    这个在 /arch/arm/mach-s3c2410/include/mach/regs-gpio.h 中定义

    #define S3C2410_GPB5         S3C2410_GPIONO(S3C2410_GPIO_BANKB, 5)

    #define S3C2410_GPB5_INP     (0x00 << 10)

    #define S3C2410_GPB5_OUTP    (0x01 << 10)

    #define S3C2410_GPB5_nXBACK  (0x02 << 10)

     

    S3C2410_GPIONO (S3C2410_GPIO_BANKB , 5)

     

    #define S3C2410_GPIONO (bank,offset) ((bank) + (offset))

    #define S3C2410_GPIO_BANKA   (32*0)

    #define S3C2410_GPIO_BANKB    (32*1)

     


    可以看一下这篇文章:

    http://www.linuxidc.com/Linux/2011-06/37322.htm


  • 相关阅读:
    es5预览本地文件、es6练习代码演示案例
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 836 矩形重叠(暴力)
    Subversion under Linux [Reprint]
    Subversion how[Reprint]
  • 原文地址:https://www.cnblogs.com/yanhc/p/2175239.html
Copyright © 2011-2022 走看看