程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6337|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; m! P5 B. K+ X: s4 u#include <linux/init.h>* o" S* z: W# g* P8 O
#include <linux/module.h>
, J7 b& P$ A! v. x- A: y#include <linux/kernel.h>1 h0 M5 ?5 F9 N: r5 E0 p/ u
#include <linux/types.h>
$ A& p' l- R# D0 o! {5 v2 n#include <linux/gpio.h>- C( b% y4 j2 h2 w. W7 j
#include <linux/leds.h>
7 z4 ]* M+ a9 D; G, t' T, t/ x#include <linux/platform_device.h>1 t8 V9 ?8 f) R( L

8 c1 h, v% i) b- q- m#include <asm/mach-types.h>. m- R+ q/ K6 C1 G  s
#include <asm/mach/arch.h>
1 w' l" F" r6 Z1 g7 G1 ^$ _$ Q5 B7 I#include <mach/da8xx.h>- v. B# g! x5 t6 d7 P6 b! e, ^/ _
#include <mach/mux.h>, j. R: f2 U1 ^3 z, t' \' O
* \) w/ {$ x6 ^' e5 P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 l* f: V0 R8 F7 y7 o5 l0 Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): b% Q% j, n; O/ u/ \
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 y4 b9 v9 ~6 ^$ ]9 `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* V) @2 O, o/ x6 i  n1 A0 o7 O( X" L
; C# z3 {0 q* |9 G3 j/* assign the tl som board LED-GPIOs*/* H/ D! O( }4 ]1 S% S+ P5 z
static const short da850_evm_tl_user_led_pins[] = {; {, L$ q0 h/ K/ n3 o. |
        /* These pins are definition at <mach/mux.h> file */
9 ?/ U- w: l- f# F" t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- @3 y5 U0 t7 K1 }* o/ t        -13 _  [: t$ m( G3 {; H6 i2 e
};; `( ?$ H# T$ d* N% n; V4 m

) K# S/ }" e' Z2 `" sstatic struct gpio_led da850_evm_tl_leds[] = {
) j9 E% h' B2 Z! l: d% ]4 X        {
% j: Q* X8 j! o4 |4 l                .active_low = 0,) z6 ~. X5 B7 V3 s" N/ W
                .gpio = DA850_USER_LED0,
& I, S7 |' `' [6 C1 }4 e                .name = "user_led0",7 x5 n' B& J% p# T
                .default_trigger = "default-on",
: h5 |7 f; F6 P3 Z( w8 O5 H        },
/ v9 `/ c4 ^9 `! X1 |* [+ W6 w        {8 E6 e) {0 t& @" B
                .active_low = 0,
2 ~" U1 [3 |. W  r( T* t0 C                .gpio = DA850_USER_LED1,
  F7 W3 M8 t: m" O. [1 H1 `" s                .name = "user_led1",; T# }1 |2 G: a4 s& C8 _
                .default_trigger = "default-on",# v; ]  O# Y8 @) w- p
        },
& O/ c1 k8 c% ~9 r  x  \' M        {
& P$ v1 ^9 d3 {( |. U. P  u6 j                .active_low = 0,
% r4 p9 O1 l7 D0 [; C                .gpio = DA850_USER_LED2,
. \# f" ], C1 W  u/ v  t; @1 v/ y                .name = "user_led2",
2 I0 b5 b: P, t; e                .default_trigger = "default-on",: r) b! w& d7 f6 g0 O
        },
+ D; O+ _+ p  C' Y- T        {1 j; h4 a+ p7 f( m& Y' h) O. Z8 z
                .active_low = 0,
$ v7 s" w7 {- c6 a9 l) p2 K2 K                .gpio = DA850_USER_LED3,
: a2 F, V& c4 b                .name = "user_led3",
; X5 u9 f/ \. {+ }  Y/ C/ q* i6 f                .default_trigger = "default-on",
( G9 B1 L0 r. {! ?2 `        },* A7 W" g7 [$ Y3 E
};
8 b/ X! D' K! F0 P) G5 Z5 X6 m& r" X# G" ~; k' i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# R$ N7 n- M8 K6 n  F* T# o
        .leds = da850_evm_tl_leds,3 t  K# Q" Y- b# A3 y& T+ J
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ X' i+ X' F) V- D- j
};7 @* y0 d9 r; Y0 C! ~7 U

9 P3 g4 w" j- |, l5 E+ Lstatic void led_dev_release(struct device *dev)" u2 X- q% M* C( f* p& W
{+ ?& I1 X+ V5 J
};3 _' Q: }) l# a5 h0 L- E7 W

  Y- A! T9 }# L* s  B. astatic struct platform_device da850_evm_tl_leds_device = {9 N! Z' k: ?5 r$ P4 U7 o* a
        .name                = "leds-gpio",4 a9 y: J; e0 \( ?8 M
        .id                = 1,- f/ F* A( R" q5 f) e
        .dev = {5 Z' G* D* W5 \0 t2 l; ~& t
                .platform_data = &da850_evm_tl_leds_pdata,/ c% a5 q3 y  {% N3 p+ ~0 @% {
                .release = led_dev_release,
! D1 i6 ^7 ~0 r7 l3 C3 i        }' p* L1 R6 P) P7 m( |5 k; X7 u
};
! e" {! ?" X2 F% v/ o8 s! }- ?% ^" s$ j4 e) X
static int __init led_platform_init(void)
- Z! ]* \3 Z, D7 z4 ]2 V{8 z" p8 Q4 i; q6 `- X
        int ret;
3 ]  x+ s; Q, [+ w6 I#if 0
; s+ b( _4 k) j/ n2 H6 q) I; ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; A; v( ~* ^* }: u6 \+ O( L1 `; _
        if (ret)9 N2 \! m" z: u$ d3 e9 I
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( z) H* [& [5 h3 s9 @
                                "%d\n", ret);  a' O9 t2 N0 W+ V5 o, j; v8 \) A
#endif
, ?, l2 I+ a5 \" H, Z6 `" E3 w. R        ret = platform_device_register(&da850_evm_tl_leds_device);& X2 H4 U$ a  K5 r9 j1 M
        if (ret)2 l2 J' F" l& }3 F( x6 y
                pr_warning("Could not register som GPIO expander LEDS");+ J( X0 }# @" z, m# {; r
        else
6 X" {6 {( @" z- ~7 G5 ^                printk(KERN_INFO "LED register sucessful!\n");
4 u" E! z# U1 ~5 W1 s, ^8 X: t& U* M6 L- U6 f( q
        return ret;
+ ]) T# m/ K+ A3 _5 J; @" N4 P( x}4 @) k3 E* f- \- `  J  }

' m' D* @( M% f, H/ }9 |0 P* ]  Gstatic void __exit led_platform_exit(void)
; U5 h# f4 f6 r2 q' |( J1 B1 w{6 y2 I( u3 y0 w  @  f- q
        platform_device_unregister(&da850_evm_tl_leds_device);) E8 t% V: `. H/ S0 z2 f8 I4 R

. v( c/ e' b% J! Z        printk(KERN_INFO "LED unregister!\n");
) b  e. z4 |0 ?( q}* t( O$ k/ v' b
) M+ K# |( e8 x9 n. V
module_init(led_platform_init);
  v$ ^$ \8 x4 ~3 I+ c8 P+ K* x  B! B2 Vmodule_exit(led_platform_exit);" I# I5 y  w% H; F0 ^

7 m$ ?4 V+ Z* q. D; d8 xMODULE_DESCRIPTION("Led platform driver");
# Q3 N9 ^, \3 I0 F& oMODULE_AUTHOR("Tronlong");$ m+ H$ M1 Y4 ~  R! a. ]3 ?
MODULE_LICENSE("GPL");
. X6 L5 H. a. g- n6 U: q6 Y$ u  V0 U& \% b  X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-11-18 02:32 , Processed in 0.041725 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表