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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ [, a5 M: I  Q, ?* t#include <linux/init.h>+ W6 H9 d3 i$ t& e( h; l! C3 O
#include <linux/module.h>
# L/ j/ H& b9 d# i: c) Q#include <linux/kernel.h>- f0 u  M- U- ~0 K- M1 _+ y) v
#include <linux/types.h>
% C. m( c& [. N" I: g#include <linux/gpio.h>& A+ p+ {+ R7 M5 R' n9 b
#include <linux/leds.h>0 U9 ~* D9 }: C3 O7 w
#include <linux/platform_device.h>
9 B  @  @9 f: g7 x0 c7 y+ D4 a$ o6 `8 S1 w, X/ n
#include <asm/mach-types.h>
0 `1 N0 c, L4 Q4 M5 [, D, k  e#include <asm/mach/arch.h>; o0 M& d0 `5 p, k( e, a
#include <mach/da8xx.h>
# X# P5 t: ?7 @, G#include <mach/mux.h>
$ D6 l5 U1 e  L6 w$ L5 t; W2 L6 _
' n' |/ _, u5 r& |0 S$ G- |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 h4 E# T3 ^& a% C
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 ]8 c, R- o4 u* a6 D, {, I#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ Q9 B* S; v2 O5 p# d% R$ |#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 g5 R  Q3 z- W
. [7 d' w7 U  x; Y) k/* assign the tl som board LED-GPIOs*/
0 ~7 j' @& x4 {1 V$ l! @static const short da850_evm_tl_user_led_pins[] = {+ f* Y! N1 M; O) Y% y' Z+ g" E
        /* These pins are definition at <mach/mux.h> file */
7 A' ~9 c6 ?% q7 Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 v& A9 f" {9 ?: u. x6 `
        -1
7 k* j- P  ?8 t; p4 C};' B' j1 r1 G1 u$ r& X: M! M

9 }; R+ B7 R) K( ^4 u( {1 ]7 F) x0 qstatic struct gpio_led da850_evm_tl_leds[] = {0 c+ P# K7 n; x. q$ d
        {
, U9 g- l0 _: m/ F- D+ j2 D                .active_low = 0,+ d, d1 C1 |0 ?3 f; G+ l
                .gpio = DA850_USER_LED0,  y. M2 u3 x% ^3 ^8 P
                .name = "user_led0",
# ~3 K, w0 B9 U, i                .default_trigger = "default-on",
% @/ s* ]. }5 n2 p4 w        },3 M% s- Z: I. y, J' f" t) Y/ u
        {3 N$ v5 B7 D; f
                .active_low = 0,% y- h  f5 |/ h5 A5 g
                .gpio = DA850_USER_LED1,$ j; K& t, `* y8 y
                .name = "user_led1",
, K! ]# W2 w7 a' ?                .default_trigger = "default-on",
1 C: x+ e0 V5 V( t        },
5 g3 G/ G( t+ e4 A3 a5 l        {2 i+ l& w2 b# h, Y: H
                .active_low = 0,
+ P; U) w& O) \) Q                .gpio = DA850_USER_LED2,
9 X/ ~0 @* L" y  X; b5 a                .name = "user_led2",
' y; x0 i* d' `4 |; f" p, u1 a                .default_trigger = "default-on",
0 ~& `( S9 k: r  f4 S        },% `& Z. }; }% n/ a! j2 L
        {: E4 G! I5 Y9 Q4 r" f4 N
                .active_low = 0,
6 V/ S+ r& U2 T0 v                .gpio = DA850_USER_LED3,# z) v( {( u: X2 b, r5 k8 \
                .name = "user_led3",
8 \% k2 i' Q& }5 O. p/ h                .default_trigger = "default-on",& J: [+ p- t0 p5 T" i1 V$ W
        },& ~  g. _/ O8 O: K3 b' s, y9 c
};
, |) F2 T2 _! c, G+ L0 p( Q: n( ^' N( ~1 i1 Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 M# L: l$ ]1 z, w0 ~
        .leds = da850_evm_tl_leds,5 p" V; _$ P* Q; k" n6 p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# q  c! Y- j8 q: s8 v+ ~: E
};" Z2 q% w* ]8 |6 }$ ?. L; u
6 `% W$ R" T, t; e  f5 q; x
static void led_dev_release(struct device *dev), \6 f8 j) ~# x
{2 F- s* G1 o$ S
};+ U0 b" m& B, i) \. {

6 G0 O2 U9 S" R1 Ystatic struct platform_device da850_evm_tl_leds_device = {( f8 ~: _% X+ l, h- o
        .name                = "leds-gpio",; B4 m9 a% b8 y- x+ b* C6 J. e
        .id                = 1," y* p0 L7 }1 m: |, _* q( w: T
        .dev = {; ^+ N/ W" i+ p4 C
                .platform_data = &da850_evm_tl_leds_pdata,( k. b, [" t% _7 f+ t
                .release = led_dev_release,
+ _! U8 Z$ {4 Q! y( ?: n) C; f        }
8 ^# P9 u: ^  v0 U( [  t$ S; i& E};
# o' v4 L5 h  m, u, S  M# S. ?( T3 A/ z/ ~; K1 i( Y
static int __init led_platform_init(void)
+ D3 {( u) d+ q. v, O% k" @. \{  D: d3 s+ k/ J( k
        int ret;" V" a8 W- t' O- A& ^2 K0 s
#if 0
" l, q; C2 B) ^# j( ^4 _. T2 s  |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 ]8 ?7 s6 C, q4 }/ ]( Z        if (ret)
7 {/ `* q3 {. Z8 P8 k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. r% ?6 t* M9 G2 H% G# G                                "%d\n", ret);) \% @, q# y, L5 D* l
#endif
- e" k$ ]7 q& P. c3 i( u        ret = platform_device_register(&da850_evm_tl_leds_device);& C: s- z' k6 H; R, K
        if (ret). C3 V2 n3 P5 Z: P3 A! ?' z
                pr_warning("Could not register som GPIO expander LEDS");
$ {0 Y! n' |' H7 ^  }1 m        else
6 j/ C! U2 [5 C& q$ ~' X! |4 S                printk(KERN_INFO "LED register sucessful!\n");0 ~) H6 u! v) t# P9 j: M

; Q5 v/ c5 L' D1 y0 o1 t4 f: L        return ret;8 h$ v. O: n- Q& K5 ^- z( o( {' b
}
0 J" C/ r/ e$ I& ^
& B1 S* @; ?3 P; B* b7 tstatic void __exit led_platform_exit(void)
. @1 m! [1 @% Y. P& X- D{. w$ {; V1 s& F( }! W  r
        platform_device_unregister(&da850_evm_tl_leds_device);  Y6 A, A3 b5 p8 J) W4 e
) X2 W8 }8 }- [1 s, i, v
        printk(KERN_INFO "LED unregister!\n");
$ j; B( P/ C* c! f/ p}! N* p% K6 G( _- I$ W+ z0 S
" e3 u0 L) [8 `9 T* X2 o- E& ]
module_init(led_platform_init);! W: ~' Y3 v1 u" t& ~. r& w
module_exit(led_platform_exit);
" W! B5 }1 [/ z1 i& R
7 j# p) U  M. I+ N( qMODULE_DESCRIPTION("Led platform driver");
6 O" g" q3 A  h4 ?  NMODULE_AUTHOR("Tronlong");
' B) |8 {/ q$ z& G( |4 AMODULE_LICENSE("GPL");9 w4 ~7 S. b/ G% `
9 j8 E( R& d+ z' a. f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-8 05:48 , Processed in 0.040145 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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