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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' ]' L, R8 t: ^; u8 E& l1 k#include <linux/init.h>1 Q4 v$ }( n5 `% e4 K+ D
#include <linux/module.h>7 D4 o$ Z5 s, q/ v' l
#include <linux/kernel.h>' L" c" S. \6 d2 g) f
#include <linux/types.h>7 t6 s% p4 n% y( B& ^0 T
#include <linux/gpio.h>
+ \% Z: a  C: y; Y#include <linux/leds.h>
, ]- T1 p  Y# S" C. }1 V, P#include <linux/platform_device.h>5 G5 R' g0 ?* M
+ I: L1 {9 {$ c$ o1 p. m6 n
#include <asm/mach-types.h>
. {' b# ?$ l! B( Z% j. N, Y* G#include <asm/mach/arch.h>6 L2 Y1 n2 b( c: d  T# {3 l7 W2 u
#include <mach/da8xx.h>9 W  Y  d+ H9 S0 ]
#include <mach/mux.h>
0 @# ]& i7 ^4 b: @; l
7 s) t( D0 l+ x* X8 D% F2 \1 f#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 O6 o- m: U& e6 L6 C/ N1 B; Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& j* F8 v+ h! _) K9 ^) ]. U#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; S/ ?" T0 C( h9 f. u#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- R3 t2 X; _& x. C7 ~4 F
- w0 w* m( x0 ]/* assign the tl som board LED-GPIOs*/
- G( B" v/ a1 y) |( y* n" estatic const short da850_evm_tl_user_led_pins[] = {
, Z2 R6 F: r2 J, l& }7 u5 S, M        /* These pins are definition at <mach/mux.h> file */: g6 ]" W7 R1 g/ H7 C8 A  H( @" W
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," t" R" U0 S) g, _8 p
        -17 Q: N  g+ W- y% G5 [8 ~3 ^4 E
};
  I* v2 s& `2 `* A$ |+ z
1 q( P  }; t" z* g- qstatic struct gpio_led da850_evm_tl_leds[] = {% c6 i1 Y" N# o+ G) H& ^5 L
        {
' K: A% {+ }) @* ?. l                .active_low = 0," X) r5 _+ J! v
                .gpio = DA850_USER_LED0,
: u# K: A  R1 m1 U# `, N3 f: F                .name = "user_led0",6 |2 I8 T8 Y/ {8 n( n" _; M
                .default_trigger = "default-on",4 ?3 h  ^4 H( e6 Y* }
        },
+ B5 t( e9 t% i  b1 m% ^% D        {
$ e" R' B, j& E0 I! D& W4 K$ {                .active_low = 0,
4 ~2 Q0 D) h" g5 @  O! y3 L: d                .gpio = DA850_USER_LED1,
& H- {/ ~) _6 L' G9 m6 [                .name = "user_led1",
+ f- {" J* m' n1 T                .default_trigger = "default-on",
4 ~0 O' G0 p+ g" S3 t        },- C" a' K/ l: @7 M& l% R
        {
& a/ S/ R/ p4 H4 d' P                .active_low = 0,
" {5 d8 p* g1 N1 a4 r. Q/ d  O/ ^                .gpio = DA850_USER_LED2,
: a5 o9 ^! d9 y& M# _8 `2 _/ {0 i- b3 Y                .name = "user_led2",% f6 N; x2 |9 k8 T
                .default_trigger = "default-on",
6 }" _% L/ \6 z4 ^        },
  \+ C) p! [7 `5 L9 I0 G7 Q% S" E: C        {: \! O& g$ s  w3 S
                .active_low = 0,/ @8 g; x/ e( F! |  c+ T7 L
                .gpio = DA850_USER_LED3,
) t- j& T& c$ l) j                .name = "user_led3",
) s2 x' @; v7 R8 s) @* P7 [: Y6 B                .default_trigger = "default-on",
1 M! \/ G1 Y* N# {        },* Z# J7 ^7 j% m3 w: ~# `
};/ x: s! n- b/ ?6 y
8 j8 l9 K. s! t6 Z- g& }/ F) A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 c' p: g  q/ P9 D' q( T2 Q! P& X        .leds = da850_evm_tl_leds,
; H2 k% B% `% Z! _$ O5 F, d        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. W7 N' d! ~+ b/ u3 w
};4 j3 u& W, l: H6 D8 I1 e6 ?# q0 g

; `$ A( [) }  b6 J  w  Kstatic void led_dev_release(struct device *dev)% }, n1 Q; K0 _& W! ^  i. w5 s) |
{% q7 A" M. M3 Z
};
% B# t! m( T6 O) C) v. T
7 z* l2 x4 F- L% `+ ]static struct platform_device da850_evm_tl_leds_device = {
5 G7 {. x- u% E- q$ l8 K' V6 u. ^( |        .name                = "leds-gpio",
2 m$ [# T. ?7 l0 y$ E  E! B        .id                = 1,, M5 h( _: `# q% a
        .dev = {
; n/ V* [' v" Z; y" M& h                .platform_data = &da850_evm_tl_leds_pdata,
- L/ h" ]( x9 j                .release = led_dev_release,
  A# B; `' [1 S8 N/ Q. e        }! A, c, t: }; j  K( B2 ]
};6 s/ `# o& Y* u, x6 i8 N5 b
. b. g: g* T( i& G6 x
static int __init led_platform_init(void)* r5 y$ ?7 g1 E- t0 k; A4 N
{
: M6 ^- I! Z# s5 }7 [        int ret;
. r% U7 m" [0 @* s#if 0
4 q3 w/ U$ Y7 @" S1 }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, P/ i/ C% d( D) {7 \; w$ ^# o$ l        if (ret)& }) _. @: ?( I* A6 A
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 r0 B5 C) a# |9 t9 {  g  H  e                                "%d\n", ret);
6 e/ T- `) p+ i9 W) c0 @#endif/ N" m" \3 t+ B0 ^
        ret = platform_device_register(&da850_evm_tl_leds_device);
) E8 s$ I# L$ k5 S        if (ret)2 o0 i" I! [3 n0 b1 Y+ o
                pr_warning("Could not register som GPIO expander LEDS");
; X4 U2 o& O( V  l4 \0 ~1 Q( ?8 j        else
  X+ f2 O/ ]- @8 R2 d6 `/ p- w                printk(KERN_INFO "LED register sucessful!\n");
$ G$ D+ X& t: G8 C5 Z( R2 u, k9 }
        return ret;) j4 I3 w: f! w3 g
}
7 H$ F$ d- h- `; v9 z  m) B
. H/ m  p! H0 W: ^2 ustatic void __exit led_platform_exit(void)  d  }3 N8 C+ c# }% [8 Y# A6 a) v
{. }" ]3 n. c+ V. N& z( k
        platform_device_unregister(&da850_evm_tl_leds_device);
8 v/ L: X- K4 Z& ?5 e
7 }4 ^: m( J+ M0 r( t        printk(KERN_INFO "LED unregister!\n");
- p, S; l, D5 t2 A! _) C" I$ ^# Q}
5 F' |- T2 V: G& {6 b6 q- Q: }& M7 ?' Z1 y  N8 Q8 {
module_init(led_platform_init);8 I2 V- Y' a7 _. ]7 B
module_exit(led_platform_exit);3 O$ [$ t: u: F, n1 n

; F( V! e" |- `  y& cMODULE_DESCRIPTION("Led platform driver");
8 J. J; j0 O- l- Q6 ?* TMODULE_AUTHOR("Tronlong");0 O6 {. q: x$ T, J6 y! @$ y( z% p
MODULE_LICENSE("GPL");0 \: v- C8 A; w/ V# z& s
0 r! T' v2 N" W+ p; S# `% ^* R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 07:51 , Processed in 0.037776 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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