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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; [* O, Y3 K9 Y# u. J
#include <linux/init.h>; P; u+ Z# ^7 H# V/ a
#include <linux/module.h>6 Y# D. k/ V( b6 }8 `2 s
#include <linux/kernel.h>
2 ~& y& o2 B# Z5 D( t$ P#include <linux/types.h>/ G& n5 @8 E5 x
#include <linux/gpio.h>4 z! S' c0 j7 R0 S# ^1 M! y
#include <linux/leds.h>
& L' u1 |7 G- E8 J5 u#include <linux/platform_device.h>
6 L1 y5 Y! Z/ U% u- E  \* B( e* D( }  t: {, y& s  F( d
#include <asm/mach-types.h>
! Q& g) k: x1 ^8 r# H0 A% E$ E' `#include <asm/mach/arch.h>
( c6 @, B" o4 y, l  R1 E#include <mach/da8xx.h># H- Z9 q5 W, h- l' D% ]* s
#include <mach/mux.h>
- |( ^  B# n+ z6 _7 k4 P. M6 b/ r$ A+ u" D' x) Z4 d' d$ f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 `* q* A) I# N7 q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 `- q+ ~) ?/ k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- V# U( l7 {' v: Z7 R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 ~) e1 ?4 h4 U. i: J3 ?
# _$ a4 r! ?% x
/* assign the tl som board LED-GPIOs*/. M$ f. w: g# t/ v+ J
static const short da850_evm_tl_user_led_pins[] = {8 `4 e& b; \& ?0 y1 J
        /* These pins are definition at <mach/mux.h> file */) }0 G' B* j. _# p' R
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 H/ W9 _! \6 L( x+ Z' a        -1
/ y3 _) d  S6 T6 r/ v7 ?# {) N7 F};
) p2 Y8 n3 W) A+ ~5 `9 c; E' n, [( y4 ^# s. e- u
static struct gpio_led da850_evm_tl_leds[] = {! W6 Z/ X8 u$ \2 }2 w  }  Q
        {
! ]6 s9 W3 p% ]3 o1 P) O                .active_low = 0,6 W4 }" G7 }8 D2 T; J9 _7 _$ P
                .gpio = DA850_USER_LED0,
+ @0 i8 v! `& p; A7 n                .name = "user_led0",% Y& x3 O! C* Y
                .default_trigger = "default-on",
! z0 ]" d3 P! M% J7 p1 T% s! B        },! [! X+ O9 I4 n1 T6 p
        {/ e0 Q7 M5 g2 f$ m
                .active_low = 0,8 l, B8 Y: d* N) _, q" ]
                .gpio = DA850_USER_LED1,
6 z0 [4 r0 N+ ^1 _0 x2 |                .name = "user_led1",
3 v4 t3 g, K$ f& w: H                .default_trigger = "default-on",: s% n+ u4 N' `+ z, a7 R- Y+ I
        },$ u0 L+ d5 C/ q8 i: L! r
        {
) {! ]" e% f& I: P- ]  p3 f0 a                .active_low = 0,' h/ f8 G  T: Z
                .gpio = DA850_USER_LED2," ~- Z6 B9 m0 Z3 y( ^# e
                .name = "user_led2",: I0 |$ @9 C; Z, R7 k
                .default_trigger = "default-on",
7 h( n8 x5 K9 m) N* `) ~        },, n* Z0 a$ ?% ~; }
        {2 u) g) g1 S' _  b! Y
                .active_low = 0,& ^2 _- `3 ~4 Z7 }
                .gpio = DA850_USER_LED3,
2 ?* `' k( X! q' Y# K                .name = "user_led3",
* F9 a* Q* Y2 p6 F! o                .default_trigger = "default-on",
1 r- U/ p2 V* M8 T  Q) G        },* A8 I  {' ^8 O. h) o  b1 |0 V8 K4 T
};
" j' a0 x. m3 {- U0 e
& R" G" X4 c: T! f7 H! b  V2 Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 R" _% k2 q: b1 [1 T        .leds = da850_evm_tl_leds,+ p4 K" V, _3 {2 k6 i
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! ^- `% c' _& N/ h( v. l/ a5 L};2 g. H/ j- Y0 l: ~  H8 n- e$ R$ ~

) B( b" N1 \0 w& t. X; Fstatic void led_dev_release(struct device *dev)& v9 R& B: O* w% v+ @' U" a  o/ ^* v. m
{" F8 S- A. ?& M
};
2 h* r, {; A% R# O$ r8 N
! I, K" N* ?7 X. hstatic struct platform_device da850_evm_tl_leds_device = {; \( {: q2 @0 ]4 K( W
        .name                = "leds-gpio",
6 \" b1 ?* _& T( F5 _. @$ |        .id                = 1,8 z, q9 A; M' b3 t+ R; v" G. w
        .dev = {( x9 y& g) h$ N: d7 j# L. N
                .platform_data = &da850_evm_tl_leds_pdata,! |$ U9 i8 k: _: Z  Z
                .release = led_dev_release,
3 v  V% q( c- k& B9 k* {% \$ J; U        }( N5 M. `5 b2 h
};. Z+ Y6 Z2 e) n' t0 e( O6 i5 q& v
+ `8 w0 O4 k9 ?+ `0 r' o
static int __init led_platform_init(void)
) m5 f& ^. b% M" m5 x" A7 r1 H8 Z{
$ g) [" ~# @/ ?0 p/ M        int ret;
" U5 I* c8 y: ?) h  p8 Z# t: O0 F+ }#if 0, c' J7 z1 o, _& I$ L
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  v, r5 j5 _# P" h" ?- j" T& p        if (ret)6 A% t. p/ B1 T2 k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. S: M$ ^$ S* h0 ^9 _* o                                "%d\n", ret);" A: T5 s. b2 s" W3 ^" g
#endif
- C, W( D! g+ A        ret = platform_device_register(&da850_evm_tl_leds_device);# G+ O# f5 v1 q0 y: u' p
        if (ret)
2 b& z# f- j- _- N                pr_warning("Could not register som GPIO expander LEDS");% ]1 Z3 y4 v* m, `4 M
        else
& O& k6 J& S$ G5 {+ u                printk(KERN_INFO "LED register sucessful!\n");8 S2 c% O2 _2 Q" s9 p

. k4 q9 f: M2 {3 i, e& A+ R8 {7 T        return ret;- e& f  F# f. y; w
}7 E0 N: ^+ l) D1 U. t- D6 U

6 [1 M; L# P5 z5 f8 Sstatic void __exit led_platform_exit(void)
  Y1 d: t$ @8 k. E{5 k( Q7 X4 w+ m7 c0 O, ~: ^
        platform_device_unregister(&da850_evm_tl_leds_device);( o0 f, b5 o! ?$ G7 j# a3 f
  q! O9 @5 d5 F7 K' [8 q
        printk(KERN_INFO "LED unregister!\n");
, V% G' D% T- \- o}7 W. L* b7 R/ x# ?: r1 F$ k
6 x3 v8 p4 _! h  h2 _) L3 A% X
module_init(led_platform_init);
% V( c" [* M. Nmodule_exit(led_platform_exit);5 T9 f; c" I( a$ I

) t3 u* I; X6 @" i4 w" [: J9 zMODULE_DESCRIPTION("Led platform driver");! I' y/ B5 ^1 h- l; X
MODULE_AUTHOR("Tronlong");1 z# y# @: S. M8 h" r
MODULE_LICENSE("GPL");
2 h* D- e$ j2 G- W0 h* M4 B. e+ P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 14:33 , Processed in 0.039665 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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