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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ T) k) a. K( W#include <linux/init.h>
4 Q% @, Y) z9 a+ I7 j#include <linux/module.h>
) o! T+ Z9 a; @7 I#include <linux/kernel.h>
6 |1 G7 j. L1 k! U#include <linux/types.h>8 M: G! Z6 `3 N" Y: p7 [7 a0 t" o
#include <linux/gpio.h>4 `0 W3 G* `9 r
#include <linux/leds.h>
: W  }: _1 D8 `# r* `  H8 i3 C#include <linux/platform_device.h>
' |! W! D- p$ f, l# z
. g( b7 B9 V# _/ F' ^( u" n& u! R) O#include <asm/mach-types.h>9 p7 [/ X" w8 k
#include <asm/mach/arch.h>0 V$ N" j- [3 N3 L. p; x; t
#include <mach/da8xx.h>
, C$ s8 `2 k7 Y; }#include <mach/mux.h>+ c4 N5 q- X: ~4 A( K& }& B& P$ ~
: j6 O# T" H$ ~9 {6 |% G- _2 ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 k# `9 x& L+ f4 F& }! Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* t5 W, T( b7 }/ `
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ r, ^, v$ _) U& p: H
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& Z8 D9 H+ u! N4 f" P+ O
' b: {, C( G+ R( f
/* assign the tl som board LED-GPIOs*/" v! e3 e9 M  |" X
static const short da850_evm_tl_user_led_pins[] = {9 R% n+ V0 @: E( \& [' K
        /* These pins are definition at <mach/mux.h> file */4 R1 u* g: P' i" I2 `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 |9 w% c6 Z8 v" O2 @* I$ B
        -1  x1 ?9 B' {$ p' b0 u& P
};
: k8 S; O5 }9 u' t* P  s) o+ Z0 h- c
static struct gpio_led da850_evm_tl_leds[] = {
: v9 q7 _: v' i6 f        {# Y2 r, ]9 I; {2 l
                .active_low = 0,
( c) T& y5 I# B) S' J                .gpio = DA850_USER_LED0,
# k9 a% o; @6 Y6 @9 v& x* r4 }" b" g                .name = "user_led0",7 }; }" F& D* I4 ]" n/ j- C- v
                .default_trigger = "default-on",
2 {8 J* z/ O7 H' Q        },
. M2 x$ M" }8 g0 a$ G        {) c# B' L0 i, o1 v* U
                .active_low = 0,
) W/ `% l7 `, o2 C  ?% A                .gpio = DA850_USER_LED1,( i. g5 f" z; R) X( S* F
                .name = "user_led1",9 x# J9 i# K5 F8 D* b* B9 I1 X
                .default_trigger = "default-on",
: y9 }6 @% b! t% a& B. R        },: b( @; l, [- m6 h$ W& B
        {
/ [7 O8 O4 h4 m" }+ K: |* j                .active_low = 0,
2 y% b- Z: }5 U! A! B$ M. n                .gpio = DA850_USER_LED2,. o3 o" h5 M% P$ Z& q6 ^
                .name = "user_led2",# B# r* `' X1 Q- N& B
                .default_trigger = "default-on",: G" }  s0 `$ Q5 Z. q9 q0 d) {
        },
) E2 ~0 ~0 _# N$ f0 {; Y        {
" P; i) T. P" E* n+ S: W                .active_low = 0,
+ \* H4 w: C) f9 R                .gpio = DA850_USER_LED3,9 ]( T0 b( O& |/ @3 c- Q
                .name = "user_led3",
* J9 g6 j# C5 V: n2 [3 H                .default_trigger = "default-on",
$ _/ p. ?; U" g: P0 K! s        },
0 Y8 T- X& o8 F. ?( z; q};2 A8 z' x2 d+ }" Y  w: ?; \7 Z3 V, v6 L

, G" U3 e. q) \& Y9 ?static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( b7 M* R3 F8 n% |        .leds = da850_evm_tl_leds,& q6 W0 F! h+ i) _$ m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' W) x2 \4 L/ N9 z
};
: \# N0 q9 [( _# p- L, y& Q, z& c9 ]7 ]2 ^
static void led_dev_release(struct device *dev)  q$ \/ A' x  d9 R
{
* o3 C6 Z2 S2 o: N# f  ?};
! g1 T$ P, q* [# M9 N" ]  [" D: \! b& H: w, J  a
static struct platform_device da850_evm_tl_leds_device = {
6 `* H7 y( E0 e3 ?# I. O        .name                = "leds-gpio",/ K  x: b! k5 T$ \
        .id                = 1,% c% t+ e1 Y$ W6 r. y
        .dev = {
$ k  E& W6 \! i- ~                .platform_data = &da850_evm_tl_leds_pdata,
3 ^$ k+ \1 d$ c$ Y                .release = led_dev_release,
" j1 R5 h1 o0 }9 T& ]        }
6 E# s. [, ^$ x, T: @/ @};
5 F$ z: [+ c. o- S
- U  P3 s  @9 ~; ustatic int __init led_platform_init(void)
3 C5 X% E) T3 ^, i0 P{
, R9 J/ n" T& B$ S  O3 x        int ret;( D  P+ ~. g2 r7 Z
#if 0. P  ?; d1 O: |4 @' o
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 `  o! V. ~: ?1 s! m/ M3 F4 b
        if (ret)/ f9 o, N# j/ S" T- P9 ^3 {8 L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 R' A' ]  ^/ i- ?
                                "%d\n", ret);: {7 I* H, ~; J) ?1 w' {* c
#endif
; g8 \5 B1 h" O        ret = platform_device_register(&da850_evm_tl_leds_device);
/ Y: |7 u  t" }) u: ]        if (ret)
6 F6 J  u; h, y8 g  R8 X; o) w                pr_warning("Could not register som GPIO expander LEDS");
- C0 G0 y3 w9 d5 L* ^3 X( H0 j2 \8 F        else
4 m, o3 c3 m1 ^% j                printk(KERN_INFO "LED register sucessful!\n");' r" E3 h7 O2 H3 J0 n

9 |0 A- l+ l% K' @0 M* W) h        return ret;0 N- X+ w# h  R  z7 g1 n- b1 N
}( U" T2 h2 d& f. N) O
  ?3 i! ?1 R) U+ b) d, G
static void __exit led_platform_exit(void)7 y& m/ N8 k+ [, ]8 V8 R
{% b7 u2 C# E7 ~( {3 c: M
        platform_device_unregister(&da850_evm_tl_leds_device);
: Z3 Y  x) h3 ]# ^! C
# ]: ^8 r. @, s: [6 K        printk(KERN_INFO "LED unregister!\n");% V# ?5 ^/ A) t
}" M) {6 F* ?3 y7 [6 X" m

) n  r4 i6 U6 G3 jmodule_init(led_platform_init);- {2 F) t" Z# Q8 w, a
module_exit(led_platform_exit);
" n* P# _# U  b5 @" y2 m* V# K' V. y+ t' G! J
MODULE_DESCRIPTION("Led platform driver");) w+ T1 T7 {# x( h/ j. _
MODULE_AUTHOR("Tronlong");
& W3 x  W4 f* l* a4 E/ \0 ZMODULE_LICENSE("GPL");: c1 b& z- c( J$ R, L0 J- |

/ S" I8 \$ l6 ?5 V; S, P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 16:56 , Processed in 0.035881 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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