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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ g3 e3 E8 z! s3 T9 n#include <linux/init.h>
6 n$ b( J& e6 R/ l5 n#include <linux/module.h>- z- L7 f0 S8 Y% g+ B5 u
#include <linux/kernel.h>
0 E! U8 B/ y1 C" B: d" c#include <linux/types.h>
8 x# _& z  m, }- G8 r#include <linux/gpio.h>
( R% Y( g$ i4 R# L5 [% Z, ^#include <linux/leds.h>
4 _4 [- J# y% [- M; T#include <linux/platform_device.h>
3 t8 x* [4 p3 R! Q
% r1 H( v9 q4 M9 b% H; W% A. a#include <asm/mach-types.h>
3 B! q; @& l0 Z+ m0 g#include <asm/mach/arch.h>- v$ F8 H# w7 T
#include <mach/da8xx.h>
, ~  K7 r& h9 Y* L9 {* \4 k#include <mach/mux.h>
; n$ P$ T7 B. P: `
0 `% A6 C' w; T- S8 O1 j+ N4 d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ [- V8 Q1 W  Z0 i" o% w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ D7 i. X. S( k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! @  Y; o2 K  p1 n$ k: `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" K6 l# k- ?( B+ M8 l

- k; ?  m3 u- f* Q! N3 V& W7 B/* assign the tl som board LED-GPIOs*/0 j# Y2 P" O0 v0 F
static const short da850_evm_tl_user_led_pins[] = {
) @2 o+ R; _, J% M" i" S; D7 K( X/ a        /* These pins are definition at <mach/mux.h> file */
1 s+ H  f4 r; W7 [4 g% o# t2 i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% D3 g7 w! U  ?3 q( h: m- Y
        -15 W  m* q. r4 u0 j; `) }9 M
};
- M0 f7 Y' s+ H# s4 V9 Y% Q  L. N4 b& s4 E. O0 I
static struct gpio_led da850_evm_tl_leds[] = {
* B/ E8 `0 l' M. Z* m! i0 h        {
4 o0 E& R* }5 f  g+ `3 x6 R- i                .active_low = 0,
! h, H. B1 o. p1 l% `: n                .gpio = DA850_USER_LED0,
* y1 i4 i5 O/ R3 G1 Z                .name = "user_led0",! ]* k0 x* f) _0 ^7 i9 _7 |
                .default_trigger = "default-on",  @$ C$ B5 t8 [  V: g7 G' G- q) f
        },
- r2 I- G- W0 q5 x3 I2 _! t        {
# [* c9 z$ h1 J6 j                .active_low = 0,
; _" x. {8 b) H1 `* ?                .gpio = DA850_USER_LED1,
$ z% T0 n& L7 H                .name = "user_led1",: J! W. J5 `, B. P
                .default_trigger = "default-on",
! f7 S" w* i& e$ r        },
/ V+ p$ V: d* ~+ `+ \3 @        {
  e5 i6 V4 L& u# p, ?! w                .active_low = 0,
/ d& _/ D8 F* ~  ~                .gpio = DA850_USER_LED2,6 |% G5 Y, A4 {8 a9 U
                .name = "user_led2",! N, M* t0 W: A4 b9 @
                .default_trigger = "default-on",
5 ?+ |  [; V8 W1 }        },$ o2 A1 X, e$ b  x6 F* j. X+ V
        {
$ t" y% j, Z# l. `3 D                .active_low = 0,
  j7 \) d  a$ O5 w, S% F! }                .gpio = DA850_USER_LED3,
9 I. R6 D! f5 y+ J                .name = "user_led3",1 M# S. W$ Y1 y0 c
                .default_trigger = "default-on",
4 c; y/ }8 O. D% D! j) P        },3 s: K0 R/ D5 Q/ a9 q% u1 g
};
$ V2 d' a; {  Y# N1 u) [' a: f
, M: b2 C9 K1 y6 {/ n2 q  B: u' Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( O# ]+ y) X0 i        .leds = da850_evm_tl_leds,7 Y; q0 o4 ~5 ~) j7 d! P5 h
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; Y) }# t0 c9 C+ b  F
};6 C; K% V) j7 Z0 H2 L& u# k8 N

& j/ y9 G: X7 I  Ostatic void led_dev_release(struct device *dev)
" M: g7 S1 ^' B( t{
9 h; j3 s7 c1 g+ d# X2 z};- B8 |9 L& P4 m3 k7 ^  p

' o; X0 W1 U  Q0 G9 {static struct platform_device da850_evm_tl_leds_device = {0 |1 \4 S6 r8 }! [4 Z
        .name                = "leds-gpio",
, e& x% f) c* n$ g  f$ d( y) O' g$ M. T$ f        .id                = 1,
& d, ^& G; l1 B9 e8 S0 W& @        .dev = {
# m, v) f- A, z8 _, r0 a                .platform_data = &da850_evm_tl_leds_pdata,
" |, m' e. _: p* d9 y) j. Q1 P                .release = led_dev_release,2 M! b& ?9 i- ^
        }1 H+ H( B" H7 H
};+ {! x: m2 _8 P8 Z
" k& r+ }% u* d* b7 m  D
static int __init led_platform_init(void)
/ w6 a1 B2 t0 I: X2 L{! P) ^! W6 g# j: r" A
        int ret;
2 J, Z' @& }' P: s0 ~8 l#if 0
4 C: @0 A6 {. r0 M, a4 N        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# _( s9 h9 l. K- i  D8 y        if (ret)- X. E  F) l) Y1 @* f5 q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 }8 t( |/ W5 \/ |                                "%d\n", ret);4 l4 n0 \: }/ l( b6 |7 I: B7 T
#endif
' d% Q3 G% g6 L8 j5 V        ret = platform_device_register(&da850_evm_tl_leds_device);8 G3 g  g( z9 A; J. W7 |
        if (ret)
/ Z* P* W; j5 T3 W0 W6 ~                pr_warning("Could not register som GPIO expander LEDS");- U$ y1 N: q$ X
        else9 F, Y5 b( ^4 ^3 P/ D6 O9 O$ ?
                printk(KERN_INFO "LED register sucessful!\n");. _& @! Y( e. s3 h3 @- V2 ]/ j

' f# ?5 w/ u$ f& ?( w+ {5 B        return ret;5 w$ M% r. U" C4 r6 J2 O- [  L$ N+ c
}1 k5 T! ]; j+ c0 w
2 W! k3 X9 Z; @6 e3 }+ c3 r
static void __exit led_platform_exit(void)
5 g  F* [% m' l2 J6 g2 H{/ a+ M6 U9 F1 A" T' f' M, u- l* f0 \
        platform_device_unregister(&da850_evm_tl_leds_device);
5 p& J& e/ @0 Z1 s' x. s' x- Q5 y3 l( u
        printk(KERN_INFO "LED unregister!\n");) I9 R) J4 ^! D* }# X3 P
}
: E0 |5 N) p" N8 s9 _1 E8 W( K& \1 B$ y; B9 x( z: V3 u. ]( M, V
module_init(led_platform_init);
6 {* d2 |# Q" l( [( Y. w# A* \$ Mmodule_exit(led_platform_exit);5 P& B. x2 M$ Z5 _# C; H3 _6 \

3 q& R/ @8 W. h3 S9 N8 jMODULE_DESCRIPTION("Led platform driver");
/ A  `$ b0 U* J4 }! Y5 dMODULE_AUTHOR("Tronlong");
: R! p5 o; [8 tMODULE_LICENSE("GPL");
2 N- C: e; L6 [! `2 A- Y/ o2 \- R  A8 m! t3 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 11:09 , Processed in 0.042956 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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