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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. A4 H) M% n5 R1 ?
#include <linux/init.h># e0 ~  I; p9 A/ f- `4 r# O
#include <linux/module.h>0 j: w* ~3 R/ n/ \
#include <linux/kernel.h>
8 R5 {% L9 q6 ]8 X) M+ s# x#include <linux/types.h>
6 k# g. \: t9 V# _#include <linux/gpio.h>
& B7 r4 q3 L" R) [#include <linux/leds.h>: a, G; M- w7 y' o! X
#include <linux/platform_device.h>& v7 M0 }% _2 Q  c$ x( s- i, ]7 d1 v

) t8 H6 D; e1 e#include <asm/mach-types.h>' k+ s7 q! c1 C
#include <asm/mach/arch.h>
+ C1 F4 `% F5 n* S6 Y* H: J4 `6 [#include <mach/da8xx.h>3 F+ e9 T+ q2 m7 k& X) G
#include <mach/mux.h>- H4 L% o# E* F' K
- h. N: S: O% O- d+ E
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% V$ W) }4 s0 P" z7 i, p6 R& H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! F- i; O3 D/ t' D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ D% F! L% ~: k: R$ v9 L: l3 ?9 C3 H
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 j9 n- z: j% m8 G& {. Y8 @" N1 H; U
# C1 _( e) [4 H3 M/ G% I  }
/* assign the tl som board LED-GPIOs*/
0 r; }5 d  @  n" O2 ostatic const short da850_evm_tl_user_led_pins[] = {+ p7 Z( S/ Y0 |
        /* These pins are definition at <mach/mux.h> file */
. D% _- J7 p, W7 C4 q' a        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) L: E$ B/ f6 D- y8 F
        -1
9 |2 M/ g/ b9 K};
5 B9 F. ?2 o- {7 e  k5 f! o( K
" C, [# w8 q) k. K0 J# wstatic struct gpio_led da850_evm_tl_leds[] = {
7 c& J: Z9 m6 M+ D) |" x& s- U: \        {$ t8 i  o  q2 `  Q: m
                .active_low = 0,( L8 d1 [; {0 O" s
                .gpio = DA850_USER_LED0,( O0 H) y) f; A1 `( k- f% E9 L3 u
                .name = "user_led0",8 B1 c" P% p! h5 g/ u* _
                .default_trigger = "default-on",
# Q" F, ~& H  Z4 H& M# Q  O/ _        },- U0 G9 A% {+ H( T0 S' L: h9 v/ l; ?
        {1 Z' [" @' b# _& X) }; v; x
                .active_low = 0,' J5 O' r" [' y5 b! Q6 B, k: o9 F
                .gpio = DA850_USER_LED1,& x) q8 T- b% a( y0 ?0 U
                .name = "user_led1",
5 G0 l- i, e% z- R                .default_trigger = "default-on",0 N; G/ u; ]9 s4 y
        },6 C5 W7 L8 d1 W! m  V4 s. B+ z
        {5 l- U+ M, a2 W8 R
                .active_low = 0,% G3 d7 V  ?& A7 }: ^
                .gpio = DA850_USER_LED2,+ j( l4 I* V4 w6 M' E
                .name = "user_led2",
, I! e% a$ _6 y# v% v5 F                .default_trigger = "default-on",
8 S" ~% u9 d8 |1 Y1 J        },
9 J2 c' F" N8 n        {) ^3 s" G9 d) f7 B9 `8 K) q4 B
                .active_low = 0,
0 w9 R( [8 F5 b( m! t' Q0 e' O                .gpio = DA850_USER_LED3,
* @: e0 c" y* a+ d0 i& I                .name = "user_led3",
+ e/ S  d& {% x1 e# j# Z$ B  V                .default_trigger = "default-on",
: X; A! e5 B. B2 m6 O* p) o5 Z        },& h5 @4 n! M' C% C, f
};
  f2 T; S! L( o  W9 e; k/ @' `; o4 w/ B3 @' d7 {% e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 z) `5 E8 O8 z
        .leds = da850_evm_tl_leds,
5 n4 z9 M1 ?' E- X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; M* @$ M* \$ C/ i};
! @' i' @5 u: @7 k* i+ c( D  C% r# I8 O0 e* o6 B  @
static void led_dev_release(struct device *dev)
; j! l9 K( B: f, Q5 e$ C" x2 z, m, Q{& I5 b& h$ v& n- i5 H; ?) r9 r
};: {' @: {: k& q' C/ S* b
$ f# j0 b0 p) y) D, A. h2 j
static struct platform_device da850_evm_tl_leds_device = {
% H; _& T5 t6 S& C        .name                = "leds-gpio",
2 Z8 B6 D9 s1 B( P7 ^        .id                = 1,
% j! W4 l) C/ c' ?! Q" N        .dev = {  R8 r/ g- g7 r' H7 r) T
                .platform_data = &da850_evm_tl_leds_pdata,4 G8 G* q% c  A. K. B; S
                .release = led_dev_release,
) D8 V0 Y6 A* ], @" @/ f$ g        }
: A" @1 C2 v$ I( \/ r' V2 L};  D$ l4 J- R/ o; t

5 p" B; ^% e2 S8 u: D4 Qstatic int __init led_platform_init(void)( f" h0 c9 v; j; z
{& g* Q0 m  a* R2 @
        int ret;
9 {3 n( U) K4 p6 K#if 0* f, s& S% J- s" x( J7 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! V& ^, [( \/ _2 p2 W& v, A" l
        if (ret)
$ J0 Z( d; ~% T1 b: {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": i$ T  i0 t8 A" |# P
                                "%d\n", ret);
* C  [0 D. z) a# H+ O1 e6 O. H#endif
/ q4 O; u" P. C/ s6 m3 D( O        ret = platform_device_register(&da850_evm_tl_leds_device);1 r+ g$ D1 \" }4 C& z1 H, ?
        if (ret)
2 Z1 }' U; H  ?8 M$ F                pr_warning("Could not register som GPIO expander LEDS");
0 i2 l$ T3 v0 e0 G* t2 I        else; X2 D8 a2 _# k& d( ?
                printk(KERN_INFO "LED register sucessful!\n");
% ]. s/ y; i# f) @. ]
( r) T4 d4 Z  ~+ Q6 y# W! d- i8 `        return ret;$ Y. n; I% o) @5 z# f2 h: \* _
}
! W1 g  D" _. e5 P
" @3 M% C" G: Y2 X7 W* c3 Hstatic void __exit led_platform_exit(void)* u3 B" {* z7 X! c3 r7 G; K; |5 E
{! k! E" y3 q: F& ^/ r% `) d0 t
        platform_device_unregister(&da850_evm_tl_leds_device);
6 a3 B. ?0 D" J  C: \
6 _+ x4 x. b$ m- |        printk(KERN_INFO "LED unregister!\n");
9 n0 f+ e- j3 E6 M}
% Y9 R% Y+ a: z; G* U+ q' e( ^' G3 ~- v) m
module_init(led_platform_init);
, M# h/ Y/ J- O( q6 D! [2 _module_exit(led_platform_exit);! p% G& l& K, Z  K5 O/ [2 ]( k

! S0 ^1 ]% b5 R9 ~8 A. _MODULE_DESCRIPTION("Led platform driver");
% z  \# G. W  @4 A0 ]3 wMODULE_AUTHOR("Tronlong");0 O5 ]0 {4 N$ B: v* S: ^
MODULE_LICENSE("GPL");
3 }: K3 u/ H2 |$ L# i% \0 [
' I1 ~$ b+ y0 o* }5 m2 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-28 04:39 , Processed in 0.046752 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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