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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; F; i: O& N& U# E2 W
#include <linux/init.h>
% H1 _2 }* y2 g( @#include <linux/module.h>
5 S5 T9 M- {7 }& I# A0 Y#include <linux/kernel.h>
' w3 f' D- ~1 n3 p2 S# A/ ~#include <linux/types.h>
. Q" O+ W1 J* T0 S#include <linux/gpio.h>/ e* M+ y9 ^4 b7 S
#include <linux/leds.h>
+ R. c& e6 s3 U/ O$ m9 l& i#include <linux/platform_device.h>
- [* D2 j) j3 v& @9 @: W- H+ Z1 h/ o+ v) t% {0 g: n
#include <asm/mach-types.h>  Y( ?$ a% M8 S
#include <asm/mach/arch.h>
: j4 _, ~. g9 }7 ~/ `#include <mach/da8xx.h>
( O( s! p! P, [( j1 M+ U#include <mach/mux.h>
* p# u# `% z) i; d1 g& e: N' P1 t
: {* m- X( H/ I" H7 r# Y+ h#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' ^6 \. M2 [6 u  {; ]- x0 g
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 Y) Q# o8 S* n" i: L- E3 r
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ h, P+ @1 U# R, V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 M1 B: e0 p7 j3 o0 N" ~$ l' o5 j

1 m* K) Z6 L4 ~. F* R" n' H/* assign the tl som board LED-GPIOs*/
) H0 Y5 z2 _  s: h) ^+ Jstatic const short da850_evm_tl_user_led_pins[] = {
) V4 a  j  @- t: f  S        /* These pins are definition at <mach/mux.h> file */6 W* U  O6 i: R# g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 c& M' r/ \8 c
        -1, k" h, S1 ^+ C0 u/ r  Z
};
- `6 ]; [+ Y$ A1 e* R
' n2 g% w* r3 H2 L$ V% sstatic struct gpio_led da850_evm_tl_leds[] = {0 v' M5 C6 R$ B! U" ?: O
        {) c: u! N; h% c  k- o9 v
                .active_low = 0,
4 M  h6 U: r, ?6 W. I                .gpio = DA850_USER_LED0,
) ^( V6 Y) D4 {* x0 g( g, x                .name = "user_led0",
# Z; V$ ]: @5 A$ S                .default_trigger = "default-on",
: f. H5 {& S2 ^) @1 x. G% v) v& T5 ~        },
) M" h* t/ E! C' ~* z1 `        {0 L2 E: z7 a% h0 ?2 O: f7 U! W
                .active_low = 0,, L* x7 l$ W/ W& V( T. q
                .gpio = DA850_USER_LED1,! D6 r8 J  M2 x* y
                .name = "user_led1",
; N( T$ V" h- p6 I7 n: y: O- H6 y) x                .default_trigger = "default-on",
& v4 X* F1 V$ S2 J        },
: g6 e9 ?$ E" |. R1 a) Z. Y6 W        {
' a/ E2 [+ g5 O1 Y3 |" A8 \  D                .active_low = 0,4 Y: K% E  f# O4 h. s' d
                .gpio = DA850_USER_LED2,
5 A. S' g3 C$ A. _                .name = "user_led2",$ g8 F: L, \. K1 D  c/ P2 a
                .default_trigger = "default-on",/ g; ~! T. ?  Y5 e+ ~  j
        },. ~0 n3 ]) u  _- r  x/ _
        {& K5 S7 ]( ]9 C% R
                .active_low = 0,% c& }+ [0 d6 \, _
                .gpio = DA850_USER_LED3,8 L1 j2 g$ X- Y0 X1 `% K
                .name = "user_led3",
  Z, `4 ?4 w# D5 d7 d8 I                .default_trigger = "default-on",1 j3 g, \  h0 T8 S" ~+ B$ S
        },- [8 d: a& p# ~5 f
};
5 L5 S8 u# W. g! ?+ I
; s; w% ^) u( C0 a0 V4 H2 Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* ]9 k3 @! i3 ?$ A0 S4 y        .leds = da850_evm_tl_leds,9 o1 U- ], ^) {( G. V# Y0 [5 H: i# T, a
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; E) M$ E  _9 {; }1 l# S* h8 Q
};
& m$ t) N3 d  R7 v  A$ w
1 r$ H8 j$ t- O0 `+ g4 fstatic void led_dev_release(struct device *dev)
/ `, f& e1 Z% R  F2 p{
4 _9 `  g# a$ C; J, Z- L};
* P+ A9 d( ?7 h) W+ v3 Q/ ]9 ~+ j$ ~) |) q4 K
static struct platform_device da850_evm_tl_leds_device = {3 [; i/ J, u( ^$ [
        .name                = "leds-gpio",
  b! W$ G8 k7 p; @        .id                = 1,
* y3 ~. ?9 z( T2 T+ \7 W2 L        .dev = {; a! r4 L7 Q" W+ k& F9 n9 l5 B
                .platform_data = &da850_evm_tl_leds_pdata,: X, V, w8 o2 A) a" ?7 S' n
                .release = led_dev_release,3 F1 f2 a8 w: |4 v0 k
        }# B! Y: z5 n9 s. K
};
( }/ r# a: m) x4 w2 x! Q5 u# l) e+ \0 r+ M0 X( ~8 ~: N8 a
static int __init led_platform_init(void)
  ?! k. W; H( }% [% C; ?3 b{/ }  A* }$ l/ }$ q0 X# {" F
        int ret;
% E* v& n+ z: x5 X) V& B#if 0/ H* f+ E) w. U2 K# ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. k! H* N7 F2 \1 e+ o0 ]& d) i
        if (ret)
9 d( `. O/ k4 z5 c8 k0 Z7 x                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ H5 l4 P( `( ]& X                                "%d\n", ret);
+ O1 H* t8 _- B/ a#endif
2 P3 }. g# A$ f8 L3 b        ret = platform_device_register(&da850_evm_tl_leds_device);
5 G0 A6 d  ?) X# q        if (ret)1 N  \  X5 ~/ E  r* m
                pr_warning("Could not register som GPIO expander LEDS");4 M1 t$ o* I: e, b; F# ]
        else
. }/ l& w- e1 L% B- b1 W8 m8 J                printk(KERN_INFO "LED register sucessful!\n");
( i  Q9 _9 l! d+ E  c) a' o6 n  o* `( f0 K/ m  k
        return ret;
4 w% y3 }9 r9 Z7 g. F7 m& j: v: q# ^}
( l+ e2 _9 F; s9 M) j, i$ a: c1 s, v) I- \
static void __exit led_platform_exit(void)
; G: q4 {' }& @- D+ Y) Y+ ~3 A{
1 v9 Y8 `3 P% U/ G6 Y' t* I        platform_device_unregister(&da850_evm_tl_leds_device);/ n) t) D# j# h4 J' X" R
8 |( E. \( O3 d
        printk(KERN_INFO "LED unregister!\n");" i' b0 p1 F# Z4 K- E
}, q9 u- m2 ^8 @6 y2 x1 u" a4 E
5 K' x) r" w) u5 t5 @- E
module_init(led_platform_init);
/ I) \* U' i; u1 @9 b; _) xmodule_exit(led_platform_exit);$ p% u. c) w% Q& [- ~+ v) [
! K2 ?& C5 k/ X3 m$ U. q5 f3 A# m
MODULE_DESCRIPTION("Led platform driver");
$ G& K# |1 L8 r6 uMODULE_AUTHOR("Tronlong");% T9 y0 D. j# ~. M& K" T
MODULE_LICENSE("GPL");
! l. r* v' ], Q1 E. y; H" n: x& S; r' [" p! L7 f9 W- f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 20:52 , Processed in 0.037597 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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