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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' I6 w, H- I# U1 H
#include <linux/init.h>
% d6 v; O" U8 u#include <linux/module.h>
" r  R8 R2 p& O4 ?, @, p, Z: p#include <linux/kernel.h>
3 Y* R( X# A! `- {#include <linux/types.h>
1 |0 j+ `0 [* A& K( ^* P9 V#include <linux/gpio.h>
7 R# V: B+ n* ^1 I" S1 \#include <linux/leds.h>
9 k; z  J: }/ {' B: K#include <linux/platform_device.h>; H# _6 v! V9 Z& ], L

  f! M2 p; Y4 b6 B; |#include <asm/mach-types.h>
, `$ d* `+ L/ ~1 U# Y: e$ f" ?#include <asm/mach/arch.h>
5 f" x/ k* M/ P( z- C9 O#include <mach/da8xx.h>8 j. A4 H) l# ]; v, l
#include <mach/mux.h>
0 }5 D3 l7 _7 ^- O- f$ |' ~8 B4 I8 }! F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 f" ~/ n$ V7 y: P, J; M4 X, C/ X( }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% o% S0 U, Y/ p1 m7 {! Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 ?5 e$ h* O) V2 n8 D# X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  V' P9 y9 o: _2 J. f2 j6 ?- h% P8 n* ~% U
/* assign the tl som board LED-GPIOs*/  u( M3 q( Q+ P% U
static const short da850_evm_tl_user_led_pins[] = {
5 N; z! I) c1 K+ h. p& k        /* These pins are definition at <mach/mux.h> file */
6 d: h5 s3 X; v9 a9 ~& O; g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 o* K. G- D0 O" t
        -1
+ p. n+ p( o8 x9 ]/ M0 l# p};0 y4 N# r' ?" W
5 b7 v* H6 }) s! v# R0 u
static struct gpio_led da850_evm_tl_leds[] = {
2 z2 ]; I9 j( B" D- t        {
# k4 U) b% b6 j                .active_low = 0,
5 I# f7 X/ k2 B; [" Q: k4 R& n. m9 t                .gpio = DA850_USER_LED0,! O( @/ S( g- m( B! U
                .name = "user_led0",
& g2 K- R, r" b  J                .default_trigger = "default-on",, ~; w+ i/ W! g. \
        },
9 e. X: k! }4 H% Z! [        {5 D# n7 B8 l( L4 K+ {/ t6 @# z$ N
                .active_low = 0,
% ?+ J* P1 b9 `8 |+ o" f' p* E                .gpio = DA850_USER_LED1,/ L3 F9 h/ V; M; b
                .name = "user_led1",6 ~3 h' A1 Z- D; U. v. y
                .default_trigger = "default-on",
. U2 ?  Z; }  U  U        },2 W! c9 {& `) @6 z3 K+ z
        {+ A, x/ D7 H& [: B
                .active_low = 0,, ~' _, h" @. p$ O& i
                .gpio = DA850_USER_LED2,
7 h' P% w9 |. d0 d                .name = "user_led2",
5 F* {/ ?9 ~9 Q9 D                .default_trigger = "default-on",
" h" Y: O) S. Z: r        },
% L( a% c/ [5 a2 J2 h) Z7 \        {
6 w* o) i) \% U                .active_low = 0,
: d: K1 J& O6 L9 S                .gpio = DA850_USER_LED3,
3 l" Z! j/ x; q( S' Q, w- g                .name = "user_led3",# X0 Q# T2 \- v8 z; p' Y3 d! G
                .default_trigger = "default-on",; w1 q8 Q& c9 H* T; ]6 |% b5 r
        },
8 P4 u  u2 k3 H+ C( y- M};
3 g, p7 {: ^' y& O
% O, w0 ?0 @( }, R: ~  h7 F+ |  ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 y& H+ ~! X2 A4 r$ O8 i, O5 w
        .leds = da850_evm_tl_leds,' A; e1 }5 D1 V: o0 v% W% D8 B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" l0 n# ^( p4 T6 J0 O};
# L: g4 u6 I3 Q. a
3 a+ R- k4 E2 y" M% W: J  ^* Qstatic void led_dev_release(struct device *dev)
$ ]3 L' u% h, S2 ~0 L! z{$ ]1 X6 e* z5 c( {% b# C! A2 B
};& g0 a. L! |+ z: R
+ y0 w7 s7 c7 Z
static struct platform_device da850_evm_tl_leds_device = {
2 s9 Z1 M( u2 J* `0 V8 V6 w        .name                = "leds-gpio",
  @3 M7 @; G1 _        .id                = 1,
: T  w- e( z4 [- ?# p$ c* X' i- a        .dev = {
7 k; q. y& p" T4 O" c                .platform_data = &da850_evm_tl_leds_pdata,
: Z$ F0 l# ]7 ~$ T6 n( Q7 u/ P                .release = led_dev_release,
, Q! a& n6 V! ]% z, g: S        }/ W% g5 O8 d# `
};1 [* w3 o2 _, W- `& t* a

8 x% Y5 f; N9 {( K! U& ~/ `7 Pstatic int __init led_platform_init(void)
& w- ~; {# d/ z; G) b* W/ n9 E( u: e{
# `  k, ]! k2 q: p! \# E        int ret;
/ j3 i6 }4 y- R% k4 [#if 05 i! ]* z) Q3 Q6 E1 ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 p7 C& A: T7 q7 n; N9 r, n
        if (ret)9 B/ a: a4 o& }4 |# m
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". V/ @. q# C3 ?0 G" [% s
                                "%d\n", ret);
. t% a6 M- {7 I! a+ }# j#endif
' |2 P1 R! n2 R( B        ret = platform_device_register(&da850_evm_tl_leds_device);
0 w. A* x3 i  f& p        if (ret), a" a1 `: [7 z- o1 G7 M1 Z
                pr_warning("Could not register som GPIO expander LEDS");' W  V- _1 N* Q7 D
        else
" X. l) u% d! D7 z3 `8 C7 r3 q) d. z                printk(KERN_INFO "LED register sucessful!\n");
0 C' K: K4 j& t  j
  _3 q5 A) o1 M; V6 E! M        return ret;
5 E, s4 a' a3 r/ L4 \}0 S; ^8 w3 m( b2 z: y$ q$ V! `  @
' f: V% A& e! |0 j  t8 l% \
static void __exit led_platform_exit(void)
0 a) C# P! m* t9 I$ F4 t$ ^{
5 u0 ^+ z; a1 E" o: e" j        platform_device_unregister(&da850_evm_tl_leds_device);  Y. `0 F6 _6 A+ ]
7 u7 k) [- f. S0 ?$ h! O" z
        printk(KERN_INFO "LED unregister!\n");
7 @1 U; y* L/ A" X0 k}
: c0 ^" U7 h" V8 `2 z" T$ S# s0 e3 _9 U* ]" b2 Z5 _7 t9 k& _( s2 D
module_init(led_platform_init);: L: Z  F. p) D9 ]. r8 h) \
module_exit(led_platform_exit);3 i: D4 k! a# j' w3 l# L7 h
7 ]* J# L4 W  z5 T+ r0 S  _7 |! t+ N
MODULE_DESCRIPTION("Led platform driver");
9 y+ c* O# Y( QMODULE_AUTHOR("Tronlong");
6 {- x6 z& m8 u* Z- N( e9 hMODULE_LICENSE("GPL");
* U  d: T/ W+ V* y3 ]- Q
. K$ Y3 x! ]2 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-29 16:34 , Processed in 0.040790 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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