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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3656|回复: 0

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2018-1-19 19:02:07 | 显示全部楼层 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- Q( K% m2 x. o' }( U; \/ K2 }#include <linux/init.h>2 a; v$ e/ g; a2 x- v
#include <linux/module.h>  m  [" x1 C" e
#include <linux/kernel.h>
9 c. A- i- d& ^! k0 d7 }# E3 T#include <linux/types.h>' X9 O0 k8 V$ n1 x/ A
#include <linux/gpio.h>
9 o, k* ^4 S  N1 S6 x#include <linux/leds.h>6 i9 v$ [. r, b+ ], v( s; V
#include <linux/platform_device.h>
& W4 h+ p) N1 f. R
6 c" A) s9 }  g#include <asm/mach-types.h>) ?( F$ D* }& J  V: K7 D% |; [
#include <asm/mach/arch.h>/ Y9 i. R9 W' M
#include <mach/da8xx.h>
# C) o  B% ~2 R: T0 E& \#include <mach/mux.h>
& X% f. g* V8 O
' y/ i) z9 H- {# Z0 }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 w' W+ A2 J5 M5 q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: m9 V2 [' q7 R! Z& x' r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, ^+ p0 [4 `( C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# |# @7 A  h1 r6 h
( }% k* L5 K5 D7 t( }/* assign the tl som board LED-GPIOs*/
7 J; A! E# E6 ystatic const short da850_evm_tl_user_led_pins[] = {
) j4 n1 I% ]# O) p' d! `9 h$ `        /* These pins are definition at <mach/mux.h> file */
2 u) A* j: c' ]        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 ~8 H& K+ x- D( n0 s* F  q1 E        -1
5 D7 y5 T5 y7 F. o2 h};4 H" \) R* @* q3 g* k
5 M2 S" c, g- V1 L- w4 M
static struct gpio_led da850_evm_tl_leds[] = {
1 }: k; h% T( X! R        {
3 C% ?6 I  t" o# [                .active_low = 0,. s* A$ @. l4 U0 e, f! f* P, _3 T; r, b
                .gpio = DA850_USER_LED0,
0 b6 F! d! E+ Y, o: O; ^- c% g& x                .name = "user_led0",- e! x# D- z1 j1 G
                .default_trigger = "default-on",
/ W! p( T- ]% O! E        },
1 ^! ~8 f' s8 Z# s, @        {; U2 [8 F5 _! z- I
                .active_low = 0,
  x% m9 D7 T9 S$ Q  C. i5 y/ e1 G6 c                .gpio = DA850_USER_LED1,
0 a/ j- a% s0 K, h                .name = "user_led1",+ B5 I* G: y5 {! |
                .default_trigger = "default-on",
. o* K% {$ m7 l1 r7 ?3 ?0 Q        },+ E& E6 ^6 M" W  }% F
        {
% h2 R/ D) M3 d) J4 N  @5 E                .active_low = 0,
8 T1 M7 k6 x4 Z% G! j$ U" E                .gpio = DA850_USER_LED2,
  o3 H5 [+ W# a& Y' Y                .name = "user_led2",
; `- \3 n* S2 L/ k+ I/ L7 q. U                .default_trigger = "default-on",
. A% N% s# C+ P. V/ t        },$ P9 P$ \4 ]) o, ~, O" A
        {" c6 u) b5 }+ I( m6 U0 x6 k
                .active_low = 0,! p6 j5 W6 G: T) s
                .gpio = DA850_USER_LED3,. m9 R0 K/ W/ w2 `' G, y
                .name = "user_led3",0 h& X4 V- x; W
                .default_trigger = "default-on",9 `. M$ ~- a; X5 u( V6 t& w
        },
/ j* v, b; C6 y$ p7 _* y};
: G+ E* D7 l) D" n' G$ q6 M% G4 G1 |0 ~( Q& K6 M  T/ T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% n. Q7 t5 _( D# o: s
        .leds = da850_evm_tl_leds,
6 K" s- d5 ^3 L  T2 L0 }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ I' L( g; O7 S# o8 x};
% p' ^9 c% A6 S7 P1 ]; W* s0 R
$ [$ N) Y% O2 ustatic void led_dev_release(struct device *dev)
4 p/ w: g! r+ F5 {1 r7 e9 B4 |. z4 ?{% K, }8 G; K6 d" }( d. {
};1 F+ M$ Y: g( X; ^* D
4 W4 [7 U& N3 g( M0 \$ u' ?. y) p
static struct platform_device da850_evm_tl_leds_device = {
$ z8 d2 \7 A& ?2 J$ K. Y/ J        .name                = "leds-gpio",7 O8 v0 @) ]5 d! c$ O. c
        .id                = 1,  I; g1 z! p# L
        .dev = {+ H0 x, G) g2 S8 z  c4 W$ M
                .platform_data = &da850_evm_tl_leds_pdata,. J% g2 Q0 c2 Z8 w0 o) {* n
                .release = led_dev_release,
1 ^# A2 v: E7 G9 P  q        }
, c# _: k( S" M};
6 x. `3 [( B& Y: m# c% s/ r# t8 T& E' r* P5 X) J: h
static int __init led_platform_init(void)
8 a: H0 h7 E3 K+ d/ y{
5 @0 |  k' u8 I7 U+ c, \% T        int ret;
! O7 ?# I2 s0 p% I#if 0. ^& e, g# t$ b% U, d" B! Z2 `- J0 K
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, s! [1 a2 U3 J" V% k" M: _8 a
        if (ret)
8 |4 ]  J: K$ F: a# U, D                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 ~' R. h* g1 E# D: E- t
                                "%d\n", ret);
( h# ]3 W$ Y- [  c# e4 ^8 y- w#endif5 G: r% D5 R/ o  A
        ret = platform_device_register(&da850_evm_tl_leds_device);
; X/ Y6 O* T7 M, S/ D* G! P, C        if (ret)/ y3 _( E6 E: J; T( @: w8 B3 j
                pr_warning("Could not register som GPIO expander LEDS");/ n8 P  {9 l) L: j9 h& ]
        else3 l+ t  l6 b' i" \) e$ ]5 t
                printk(KERN_INFO "LED register sucessful!\n");
: k2 ^8 h; w1 |. ^9 {  O
6 r. O5 Y! e. l        return ret;
0 M% W% |6 M0 x( W( C+ \}
/ G* |% s. j$ U4 \4 j: C. X' e1 O
9 g7 k& l# w7 f1 i! f1 ystatic void __exit led_platform_exit(void)) @6 M; c& ?" L$ P$ G( S( C
{
; L1 K' J& u: y  H        platform_device_unregister(&da850_evm_tl_leds_device);# J% ^/ D/ K# [( G& a0 X, L* S

- N" R( G" s+ P2 q2 A% Z        printk(KERN_INFO "LED unregister!\n");
7 d" }- N/ Q6 \' e}
9 |0 s: o+ P4 S8 K- U! e2 H1 J8 L
module_init(led_platform_init);( E6 A+ A* w, D4 d: z
module_exit(led_platform_exit);  y  V( m+ _( V7 E1 G% n

8 b. |: s$ E1 I& ZMODULE_DESCRIPTION("Led platform driver");
) H( w, H% E+ w! ?. j1 ?" YMODULE_AUTHOR("Tronlong");
6 U: k9 X+ X4 S/ ~& E% RMODULE_LICENSE("GPL");2 k9 n. ?& k, v) w7 w

1 M" Y$ h2 w; E$ z: h3 g
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 03:19 , Processed in 0.035870 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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