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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- z* |  Z; p, H$ Q6 d#include <linux/init.h>
/ T8 X5 n- K6 i3 a5 A#include <linux/module.h>* `2 `4 a1 T# J' P7 v
#include <linux/kernel.h>: u9 e. O7 h1 H+ r4 \' `& m
#include <linux/types.h>2 B  c6 z. D9 s* M$ n" n& d6 P. `
#include <linux/gpio.h>
) }* P" }. b  I4 Y#include <linux/leds.h>
- Q2 c9 U( g; x#include <linux/platform_device.h>8 ^+ e; u- G" W4 L

% ]" R; g9 s" o) F#include <asm/mach-types.h>
% p/ }1 E. Q7 v. k2 S#include <asm/mach/arch.h>
5 O, E# z+ m5 t7 m#include <mach/da8xx.h>4 f9 P) O/ M- o- s' u6 ]
#include <mach/mux.h>* e! k: @8 s& z' i  \

- P1 k, \, p0 j% e#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 w9 H( N0 n8 c( k+ E' S/ `* U#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" G4 M# w) E, H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ q2 }$ r1 t8 W5 e. X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 X, p8 w6 z# i3 M
8 b5 m) X% i( t* F+ A1 a, X
/* assign the tl som board LED-GPIOs*/& E$ ?  Y, x: @1 M
static const short da850_evm_tl_user_led_pins[] = {
3 G5 |; }, I' |. p( A% H4 p% y/ y        /* These pins are definition at <mach/mux.h> file */' t: r: j1 e5 z0 n0 r* n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  A0 ]* x1 d2 j        -1! m/ V; E2 [" [
};) G1 P4 t) ~  f' B* s+ G/ @1 h

( J4 I1 T( v& ?$ h: D2 Rstatic struct gpio_led da850_evm_tl_leds[] = {% o0 Y0 u0 ~& K; ^
        {
4 y$ p- n6 z: u                .active_low = 0,. m) ]7 q& \- z2 Y$ w7 U
                .gpio = DA850_USER_LED0,
0 n$ Z( f- h6 R8 D                .name = "user_led0",
; T; y7 ?* K3 O3 P6 X1 h: C                .default_trigger = "default-on",
  G" O* t& P9 ^- n- c( }, m3 @2 J        },, Z( x0 }3 o3 J7 M& W  _
        {
' _$ P" u% |2 I* k$ U                .active_low = 0,, ]7 N1 z' G! g8 C; |2 k/ m5 B, f
                .gpio = DA850_USER_LED1,
0 U2 o8 z, F1 m! o                .name = "user_led1",
) n0 P" M$ Y% {# P3 w                .default_trigger = "default-on"," B' V$ S# w. A) [$ h) M
        },
8 q) V6 j* a' [: \# G+ D        {( D4 K& L; q0 M5 x. a1 m
                .active_low = 0,
1 T* o7 R3 W' z                .gpio = DA850_USER_LED2,8 n1 q! s/ P8 o! `& \% _+ w" e  t
                .name = "user_led2",
/ x  n4 g" H8 I% I! @                .default_trigger = "default-on",- l( u" n$ J. Z- w# i( i
        },
4 ]( v% j& L  P* j) q1 t7 J        {
/ d+ r/ p' p0 }  `" c9 v  ?3 G                .active_low = 0,
' g$ ]2 b7 S' i4 A! @( ^( k                .gpio = DA850_USER_LED3,
2 r* N# O0 L7 M: p  m8 N/ C                .name = "user_led3",/ x1 `3 |2 g3 B$ P) N
                .default_trigger = "default-on",6 A" X, M, K! w; f$ r# r
        },+ A7 k  C( r$ j8 d( s! q
};: _4 X* `- |' o7 u! R

/ L1 ]9 |8 k! l1 A+ U0 m# @4 Rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% J: D! c  i" j) Y  [8 y        .leds = da850_evm_tl_leds,1 m+ M0 P% B+ a" l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ N1 E: |, _  U/ q8 U, ~
};
2 v$ T0 `1 Q8 Y1 B4 f
, O, j! I. x; V8 c" F5 l$ l0 Cstatic void led_dev_release(struct device *dev)5 q/ R0 ]  A0 y/ d0 }: X5 g# Z
{
  ~# ]$ ^: s. C5 B$ t9 N};" a; c4 }0 ?& M$ o" ?

- G) p" `# Y' g& sstatic struct platform_device da850_evm_tl_leds_device = {
* W% w9 r: R. ?* N: L" d8 N        .name                = "leds-gpio",) p. a7 |3 P8 t6 |
        .id                = 1,
$ f6 Q; u# G$ Q& b' |1 D/ p        .dev = {2 S: A. Z) _- @6 \& x2 c. W: z
                .platform_data = &da850_evm_tl_leds_pdata,
& e% o- b6 z6 x$ W1 f9 j                .release = led_dev_release,7 ^- l9 _3 Q0 A2 o2 F
        }( |2 ^/ n# t9 s2 g. U- u
};
3 o. {! i8 i( \  |- x
) P7 O, S+ Z' Z. Lstatic int __init led_platform_init(void)
; Y! T9 k! m0 }, j7 D/ b+ a" {{
$ q8 T) s5 a" Z- U1 `: d* S        int ret;
5 E9 A+ {! b4 }# n4 G  G; W! O6 y) V#if 0/ J4 T- n! z: k! }, W
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% Z& u/ G$ c) o* u; O        if (ret)
( G/ n7 D* Q6 D% |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ s" [8 D3 T. D) h) h& _# }
                                "%d\n", ret);3 S2 ?4 T  ?& g( l+ s; [8 e9 o
#endif
7 t0 h' o: K/ \  L1 U* y        ret = platform_device_register(&da850_evm_tl_leds_device);* t2 _6 O8 p* z; t! a
        if (ret)+ U6 O& z. x7 U5 Q4 K' \
                pr_warning("Could not register som GPIO expander LEDS");
# a! L) R) \  B0 x) D        else' R/ D# O, ~( w4 |) G( i
                printk(KERN_INFO "LED register sucessful!\n");5 \1 o1 r2 _- B, F, w: w4 g; I
+ c1 V  E9 I9 c
        return ret;! V9 o' t( Q1 u* x4 P" `( y
}" D& \4 Z+ X( q4 `

7 ^) \1 F  n( N3 v+ A( ?. `static void __exit led_platform_exit(void)0 r4 X3 R. }2 K
{
& K+ l1 R2 l0 P! [2 X        platform_device_unregister(&da850_evm_tl_leds_device);, e. g0 H) ]: b. q! w, g* p

6 @/ \4 W) g1 P/ G+ L        printk(KERN_INFO "LED unregister!\n");5 ~0 B! N0 ^) \+ K
}+ t( q% y# i# s) H/ Y5 ~' m% a5 J, H
- ]. X# b- l( f: A- T: P) y$ ~) K
module_init(led_platform_init);
: P! Z+ P& q2 n. T' m# v8 n. pmodule_exit(led_platform_exit);; V/ \* V  p3 d: V$ a8 u

! L' t! m) ]$ [) R; ~MODULE_DESCRIPTION("Led platform driver");
8 _+ j5 h6 i% F3 oMODULE_AUTHOR("Tronlong");
3 c; u- {9 @0 G( r+ MMODULE_LICENSE("GPL");9 N3 R2 ~5 r5 r

; s* ~" r/ V4 K0 w# v) M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 07:37 , Processed in 0.040066 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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