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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ p% W% M& |* h: [#include <linux/init.h>
; B$ K* h9 K5 S  |- _4 K3 W#include <linux/module.h>& l, ~' k8 J9 A
#include <linux/kernel.h>, [8 ^" |. u' |" X1 d+ X$ s
#include <linux/types.h>
- H7 ~8 r) c. }) x6 ^* t( e#include <linux/gpio.h>( a2 w4 Q5 T3 q% L
#include <linux/leds.h>
( {! O4 A" _' p) U- g#include <linux/platform_device.h>, X  ]1 [/ z5 S& I5 t3 v8 U
; @. c: t$ w, S) l4 n( v5 w* H
#include <asm/mach-types.h>
! w% I; ?" O6 V#include <asm/mach/arch.h>- M5 |, C( Q8 m$ S
#include <mach/da8xx.h>
' i7 z" v) B- r' k0 j1 v; S8 b#include <mach/mux.h>1 Q0 x% R+ G9 s) U3 C& F  V

4 n# k& q0 Z  T/ l0 m4 S. Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! s) y' E' r+ U6 V" m* `- ^/ Q/ v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& m8 f; I- `' l6 S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# u% V( k7 ?2 j* l1 Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* f+ b/ E' U' {3 [; u. S$ S
- E/ \% {- d$ q, m5 k7 ^8 {/* assign the tl som board LED-GPIOs*/
0 V; g  I9 N( q6 ?1 V; E% Z# @static const short da850_evm_tl_user_led_pins[] = {5 a8 N3 J. H/ W+ P
        /* These pins are definition at <mach/mux.h> file */
* J& g7 t3 o1 C) o0 E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 p2 g3 ~$ V* v0 H1 X1 z4 e
        -1
7 w# j* i, ]' j4 X$ J};
# m# F3 O; d" b8 v8 U  x0 ]2 h) @9 ]% v' I
static struct gpio_led da850_evm_tl_leds[] = {
/ M* ], m( T; l& I) ~7 G* @        {
! u8 Z' z8 D9 J' f! T; U                .active_low = 0,
* S( I; H/ m$ r8 V* A# k' k8 B) D                .gpio = DA850_USER_LED0,
: c' z4 X1 V0 O0 r                .name = "user_led0",* x5 k# ~5 F, Z! D4 X- K2 S* i
                .default_trigger = "default-on",+ T' O9 w# U, g& M& o9 e; Q* |
        },
; Q- p1 F. z& D. \- V        {3 ~( @9 \7 c+ {5 l" R
                .active_low = 0," R/ h" d/ K# n' `5 Z: |
                .gpio = DA850_USER_LED1,
) I% `# f6 N: e$ s+ x- q: y: ~                .name = "user_led1",3 G) [5 p2 ~5 w, d
                .default_trigger = "default-on",' q" y6 I. y0 Z
        },
1 \! B# x! I6 i2 O$ D5 R        {
- c7 z! @; a1 F% u                .active_low = 0,# u# b7 Z$ C1 H
                .gpio = DA850_USER_LED2,+ x5 K: G' I$ y7 V
                .name = "user_led2",
" @& T' u, U+ G& S9 ?                .default_trigger = "default-on",8 ?9 E0 d1 K* k! M3 U
        },0 U2 G  m* m( J: G8 D
        {9 X* t% E8 P. J7 Q6 [
                .active_low = 0,
5 Q' X: i$ B4 E, T                .gpio = DA850_USER_LED3,( |. P; g  X' ^) ]: _
                .name = "user_led3",
- K+ T: d$ A' h: T% a' \/ q& E                .default_trigger = "default-on",* r' [6 s& O  U0 X. {( B$ u
        },
9 V  G# h5 L( ^/ i  G% I7 C  m};. b  M+ j0 Z* }, K$ ~7 _+ y  m, U& H; J0 ^

9 T' D, c# `6 T: d" Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 J" h' O* v& _& \
        .leds = da850_evm_tl_leds,- E% g7 d6 _* ^$ U% S% Q- X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% `/ \. n5 r$ V! G4 L
};
/ y, E! L0 g' R7 x+ Z6 S) s% Y% M3 B, y* z1 V, _3 I4 L% {
static void led_dev_release(struct device *dev)& v4 Q& l7 O1 e( i
{! m: G/ d( u# r. q
};
6 p: Y; b6 v$ u1 A" B6 b# {4 p/ F+ X3 R4 t# d
static struct platform_device da850_evm_tl_leds_device = {2 A+ Z# G- q. `" i) _
        .name                = "leds-gpio",* w' K# v$ K, _, H
        .id                = 1,9 N5 Y% h8 c# y& q( H" }
        .dev = {
8 p7 A- a0 x. h" \+ D6 s                .platform_data = &da850_evm_tl_leds_pdata,
( O: h: j/ F/ D* e3 C                .release = led_dev_release,3 m9 `" U9 ~& q7 }
        }
8 ^. t! g- N- Q. a" M};. P1 X) h) T3 v$ g
1 J5 n+ }& V; B& W; T
static int __init led_platform_init(void)4 }6 c; u" ?+ u5 R0 W
{, e: x+ {* h0 G* @- }9 W# D
        int ret;! E* ]  L6 ?: V, \! v* u
#if 01 ~+ c3 H8 j+ T+ u5 n  a, V6 a4 V+ F7 I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' ~% R7 J5 p7 a        if (ret)
* Y* S6 x+ b( X) K9 ^; P5 L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% l! E" [! }% X/ R
                                "%d\n", ret);
6 o7 A8 w) Q) J; W0 h; k9 f#endif* Q' u! `# @9 W( d1 v/ |* n
        ret = platform_device_register(&da850_evm_tl_leds_device);+ p9 S1 D' o+ @* f
        if (ret)
6 B* t% I1 H$ j* z9 {; N                pr_warning("Could not register som GPIO expander LEDS");
' g, c: r" H) u% J( l" L0 \        else
3 ?- v# v9 R4 S# g4 ]& ~$ p5 r# U: n3 x                printk(KERN_INFO "LED register sucessful!\n");
4 q  Y& }+ s2 L! Z3 N
8 E5 a3 _4 _6 d4 j        return ret;
0 Z8 c0 u. f- Y( ]/ b- _2 ]2 x}
; t8 {0 y/ V) S
7 I4 \7 D2 W$ }4 Y7 P) Jstatic void __exit led_platform_exit(void)
+ D# B  n" |8 O{2 ?' J+ P, R. T$ b  X0 i+ U
        platform_device_unregister(&da850_evm_tl_leds_device);; Z2 ^) ?* I. @0 Y6 m; H6 J
4 }( t9 u( M  A* X
        printk(KERN_INFO "LED unregister!\n");9 d6 L' k5 B+ \. b* @) I
}
- ~5 s) e0 U8 _" ~1 L4 W$ F- P6 g2 t  o  x
module_init(led_platform_init);; u  M& v9 H* z) d* w5 g
module_exit(led_platform_exit);0 ~+ E+ h' r0 i7 q5 ^

( s: m1 f2 f+ Q( h+ ZMODULE_DESCRIPTION("Led platform driver");
" C( J0 x* b/ R/ ^8 p9 g+ QMODULE_AUTHOR("Tronlong");5 e" y: |9 ~+ l! r! j* W
MODULE_LICENSE("GPL");
2 U( V+ r3 M8 p7 T4 ]. J( L. \' ]! N% _( D3 G" q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 18:02 , Processed in 0.036809 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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