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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ e2 v. w  B( R6 \6 K/ c+ u#include <linux/init.h>
! |4 t$ m1 D* ]" [#include <linux/module.h>8 t$ e. _! N+ F1 {! t0 v  c
#include <linux/kernel.h>+ ^& X' g2 z/ x5 |3 e" V* N: W
#include <linux/types.h>- `6 S6 k# Q4 u2 j
#include <linux/gpio.h>
/ e8 d( }9 K- e/ X/ c+ W+ E0 E#include <linux/leds.h>, Y2 @3 _; Z2 P- b/ O3 Q
#include <linux/platform_device.h>6 V* y$ u6 }6 F5 w& g3 C4 S1 O
" R) a9 ]% i1 L0 s7 a/ t$ e, T7 a
#include <asm/mach-types.h>
& G" i5 x: v( d7 `" u4 j5 E#include <asm/mach/arch.h>
* y- y* ^/ C9 i# D#include <mach/da8xx.h>" A$ P% F: ~  c
#include <mach/mux.h>; t. N) w% ^7 p* J! r

& D; G! u% _- V% T. Y  ]#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  m$ d8 w( K* T: P+ G# {) a% q5 h#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) u+ r& @! u. ^' j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 t8 R; F4 W7 f( W" `! }0 T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 \( ~; H2 I" N! n- U6 q, L. r0 K
7 f  u" R! _- L
/* assign the tl som board LED-GPIOs*/% r0 k) D' }& }  Y# T3 _9 e% `
static const short da850_evm_tl_user_led_pins[] = {
( k" I9 {, D( _" h        /* These pins are definition at <mach/mux.h> file */
% }$ n- m% ]* M0 r% r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 ^% O4 ~! a2 x: \# Q* o        -1
5 x6 Y- u2 e) x5 E};* U: K" m2 `4 r, \2 Z" R! h

& E8 {6 q5 ^2 r. x, Hstatic struct gpio_led da850_evm_tl_leds[] = {
+ h/ O9 }1 L5 s5 m        {+ }. i; e! \( F
                .active_low = 0,0 }; U1 o. U7 E  z( U" w
                .gpio = DA850_USER_LED0,% J  i- O6 e5 ?/ A$ v+ k. R
                .name = "user_led0",
- _0 Y7 Q; |; P$ q                .default_trigger = "default-on",
& V* C/ ]- P# |, ?$ J        },9 v6 S7 I1 O+ V' E, o
        {
& l0 G# N# F6 X% @* B9 ?                .active_low = 0,
7 G3 q; ?) G- N                .gpio = DA850_USER_LED1,7 [5 z0 P5 e' u% f/ C8 J1 _
                .name = "user_led1",
" m2 U" x4 T' A                .default_trigger = "default-on",
+ ~, s9 c4 H( J) ]0 x% c, U        },
6 ^% i* }- s9 |! r; b        {
2 ?1 _/ [4 Y8 X; X/ L                .active_low = 0,
' W3 I+ B* r, q( {3 T- G1 w                .gpio = DA850_USER_LED2,, S4 `! v( z: p6 t+ y6 j
                .name = "user_led2",
: h4 |, x. V9 |! j: E                .default_trigger = "default-on",% Y' `; {% ^0 z- g8 e
        },' r  R% W* V& p( V' t
        {
' B% I: a$ u! M% t/ v! K, j" Z                .active_low = 0,4 V& j. E6 D! F0 U8 ?
                .gpio = DA850_USER_LED3,- {5 p- w/ F0 x; U- V9 d
                .name = "user_led3",9 {# T( ], b, H: t
                .default_trigger = "default-on",9 H* A2 v/ C0 M
        },  t) i/ Z5 a4 j7 A1 _: v: \
};! @, `& q8 J/ k' e: v: f3 t6 C3 z# _
$ V5 R7 p+ o3 q  O9 {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 Q* t9 l7 M! s# Y; J1 t' N
        .leds = da850_evm_tl_leds,
8 I1 ?' G' a  l/ _& n; Z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; W0 p9 Q$ d6 U" \; d1 g( f: R
};6 N; M% F4 ?! K/ K
: i- A- z& F# V, |  P( G& w
static void led_dev_release(struct device *dev)
3 }  M& ^6 D" H$ o{5 i+ i% ~# g6 R, G; ~% p
};/ I3 Z+ i8 y" \) I8 O; [5 l0 @

. M5 r4 J5 I" G+ o- b' e, ~0 d# U" [static struct platform_device da850_evm_tl_leds_device = {
+ U4 F/ S: N* O5 K0 x. b. N1 p, o        .name                = "leds-gpio",
6 W. P1 H# C' h$ k0 B" |5 Q* P        .id                = 1,
3 P3 H  m- N" R: f        .dev = {7 Q3 R. r& @; p6 H
                .platform_data = &da850_evm_tl_leds_pdata,+ i5 a3 I) N& Z) P* q- N5 z
                .release = led_dev_release,% Q# h) }7 o* G* t8 ^' B
        }* F3 a* @  c# ]! B; n- i+ w( }
};  q1 i$ e/ z9 P
* |' p: j! @. }
static int __init led_platform_init(void)5 f/ h1 p6 ~) |- p  l% C4 f
{
* G0 E# c+ y7 W. l3 m) v        int ret;
' p5 p8 \9 I: s! b9 v#if 0
5 t7 v. L' B# S4 E9 k        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 Y* x' F8 M7 J3 ?$ U' [
        if (ret)
. _# d9 g3 B  j) H6 v5 Q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ y/ T; ?  c  z7 n5 b: p4 `: g
                                "%d\n", ret);: \5 S" q2 y  `5 K
#endif
4 ]% @; z- y& _6 r" m, C        ret = platform_device_register(&da850_evm_tl_leds_device);
' h% h6 z$ W; k3 B5 W1 f0 d        if (ret): {) t2 T3 n; C& v( H
                pr_warning("Could not register som GPIO expander LEDS");
3 u8 N# v9 V: t4 G! t' {6 D        else/ s3 }6 x# E7 Z" l
                printk(KERN_INFO "LED register sucessful!\n");
! h, Z& C/ _8 k, g. j
# n+ M  d$ b- u  d8 w: q. \% u        return ret;
0 m; ~9 ]* F  q: i5 _$ `}+ m: _4 g+ [! G8 q, i
! m) i  I$ l" J- J# q$ c
static void __exit led_platform_exit(void)
/ g* h  x: Q+ j) b  q  }9 U{  v* J7 B6 R- M- H7 K
        platform_device_unregister(&da850_evm_tl_leds_device);" i4 ]# `: b# C: w8 a* C
" F* E3 ?5 i6 h1 g
        printk(KERN_INFO "LED unregister!\n");
7 r( k( j2 O7 y}$ M/ I* K  S5 r- |

* \' e- @, h7 S; r& R6 D4 |& \module_init(led_platform_init);' n% @; o2 ~& N7 [3 v% q
module_exit(led_platform_exit);. z: F- T/ s. R) D2 r/ `
) `2 B, F( i: H2 l, o
MODULE_DESCRIPTION("Led platform driver");
2 T2 F1 d, _" m; ^) f" D6 VMODULE_AUTHOR("Tronlong");
' M) a8 P, t* ?) ?MODULE_LICENSE("GPL");# w+ ?& d$ H0 j( ~+ L& w- t, k
) R  @  a3 u7 B# x3 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-5 10:33 , Processed in 0.091543 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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