程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 R8 B1 \5 j& I5 p+ E6 x) M#include <linux/init.h>, [* N* g* p1 g* q. ~. h2 O, }
#include <linux/module.h>
8 @* Y7 d3 J7 p) p#include <linux/kernel.h>
+ [) {- [) r* Q. [6 f9 v#include <linux/types.h>
& v! g2 I1 N8 _( D#include <linux/gpio.h>
% T- y5 R. x3 p/ T#include <linux/leds.h>* \  y2 U; ~- Q& w( h
#include <linux/platform_device.h>
& L$ @8 D4 \4 H6 C
& C4 y5 m( |. W- c#include <asm/mach-types.h>& F3 y$ L+ l* T
#include <asm/mach/arch.h>
! ~' ~* W  H* j2 }1 A6 ^# z! U# F  X#include <mach/da8xx.h>
/ G% [5 h5 p' P: E* I: w#include <mach/mux.h># M3 L9 E( y7 P. \1 `
8 n. R( ^7 L  [) R' q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ i" g: {! F$ [7 p% I! s! a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): `/ \# a1 i: N) g6 U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# r" x, D4 U0 Q) D- o: u' K4 c- ^
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 x" M' k8 @8 ^, R/ W0 q. M* g
7 I% `4 L: \% r. e
/* assign the tl som board LED-GPIOs*/
) c# A2 |: r9 Z- }static const short da850_evm_tl_user_led_pins[] = {
  i" \/ Y6 k/ i/ y  Z* I" \0 B        /* These pins are definition at <mach/mux.h> file */
6 g1 X' S; O  _. C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) \  V. `  P# \        -1- K; B$ B  u( s- U4 i
};5 X8 R5 i: x  y+ }

, z8 k4 F% L3 M3 O5 Kstatic struct gpio_led da850_evm_tl_leds[] = {
: r9 w# U% e8 d& k- [8 L  }8 h; J        {
' X7 ?. d$ O+ U) X! ^2 a- Z$ L                .active_low = 0,
$ y( `) N" a+ l                .gpio = DA850_USER_LED0,- |; y7 J5 _4 d/ A6 V! {, D! \* g
                .name = "user_led0",* s7 r3 j  }% X
                .default_trigger = "default-on",
3 Q3 ^1 v. \) ]' _. f9 q        },$ B: B! @) \6 w2 B- o# q
        {
4 b* z4 _! H" v; N0 B% D& s                .active_low = 0,+ N9 j; O! ?/ a5 X
                .gpio = DA850_USER_LED1,
% n4 ], |3 H; D; W                .name = "user_led1"," R  O& r8 [5 }8 ]" C- R' S
                .default_trigger = "default-on",7 X* ?, w" \' N; a
        },( h9 z) w0 r7 q1 H- R
        {
& q$ U4 ]( Q# |6 @) k( m. S                .active_low = 0,
& ^" D! a: M% j- n                .gpio = DA850_USER_LED2,- Z5 g' i' F( p! i) X
                .name = "user_led2",1 ^2 [0 D) n1 m
                .default_trigger = "default-on",5 d. f2 w9 j: ]1 Y+ A6 u5 T8 G
        },9 {3 j1 u3 m9 m9 V: {# Y
        {5 l1 ]4 o: H6 l* y, g% K& ^3 r  O
                .active_low = 0,1 s9 \) I5 c- S3 J( O- x  K8 S
                .gpio = DA850_USER_LED3,
0 ~1 N  x/ K* q% k  n0 K9 n                .name = "user_led3",9 E4 I3 ?3 M) y- T, g  S& g
                .default_trigger = "default-on",) c* t. @6 m$ O- n: g. ]
        },% u  E0 k0 g0 H/ u' l
};
' E4 _' R& r2 ^
  A) ]: M5 r8 ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 X" i0 M  a' \
        .leds = da850_evm_tl_leds,
0 }1 h1 k7 C" q2 J6 f3 J9 G        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ {4 k1 }7 H: i# z3 E};- L$ \5 G0 q9 c$ O8 ~  Q

  w8 J, _( `2 J  Rstatic void led_dev_release(struct device *dev)$ h8 F1 y& z8 R/ Y; i! D1 P
{6 i/ u; E# ?- a+ j. z
};3 ^: e: Q0 W+ @1 x, q

& ]) F  O2 V! Gstatic struct platform_device da850_evm_tl_leds_device = {) @+ y0 i  c0 w% ~# X
        .name                = "leds-gpio",! a4 G$ m8 w/ @& q* D2 p! O# j
        .id                = 1,1 y8 T9 s  B: E2 s, f
        .dev = {+ _- J" |  J- u
                .platform_data = &da850_evm_tl_leds_pdata,* W8 e, n  s/ ?; j
                .release = led_dev_release,) ^" {+ q5 f* D$ w( T4 N
        }" e& }5 F  l. F5 N" ^( |
};& z% o6 \% g4 H- ~; B5 k/ Z, `) e' w

( c3 e. t6 _7 l0 m/ X% t. v6 sstatic int __init led_platform_init(void)
: {1 T( b+ [" d{* M4 k. L* B7 f  o0 T; t3 x- R' I
        int ret;
1 ~2 |* }- U. q4 R3 z- p#if 0/ r; V& S: z9 v! ]( X4 B& V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 Y- [% t9 E& \3 Z
        if (ret)
+ z. m, R& @0 H                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; H7 l! g/ F! r( D# j4 P                                "%d\n", ret);
$ s" I$ g  g, c' o* M% z#endif. O! |  L3 G% |/ t* Y
        ret = platform_device_register(&da850_evm_tl_leds_device);% _$ x9 K. h6 G6 T  X) h" P
        if (ret)/ F, J. ]! I+ j! n, |
                pr_warning("Could not register som GPIO expander LEDS");
) B; d' v1 k# W- Q" K: R        else
3 g& q# Y+ F# z8 l                printk(KERN_INFO "LED register sucessful!\n");2 d6 K" U! \2 g9 v; X) B
! I7 z/ B& U! M; k$ c
        return ret;
9 y4 W! `" s7 @, }- \}+ {5 w" C$ d0 O5 L# q

/ K( i/ f" g0 S" a0 z2 Mstatic void __exit led_platform_exit(void)
6 q# S* J* x' E7 S2 `: f1 E{
% X, y7 O. [) M& k  H$ n        platform_device_unregister(&da850_evm_tl_leds_device);
/ F- O( Q% t% |) ~
, r( z/ c% W7 r+ p, Q        printk(KERN_INFO "LED unregister!\n");
* f8 X- v: d. L+ U$ F/ R% v}
/ g+ P: |5 Z# f! `8 \- O1 W" v4 s  S/ f1 R/ U/ d
module_init(led_platform_init);
% X8 ?+ G# C! p$ H$ v0 fmodule_exit(led_platform_exit);
$ z; U, r, j$ h+ ~, L. j8 O2 s0 J% M0 I8 o
MODULE_DESCRIPTION("Led platform driver");
  P1 m! A- y% T2 `3 PMODULE_AUTHOR("Tronlong");
; {# s2 v: X; M# qMODULE_LICENSE("GPL");
1 q4 M. h7 S0 w3 a7 L0 h* }" w+ k8 k7 N; S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-4-7 06:48 , Processed in 0.039240 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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