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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 O' Z/ K: ?6 K# Y+ S
#include <linux/init.h>, V  m/ O8 L% w7 W" V# ~6 s
#include <linux/module.h>) d8 ~1 ^5 c2 p: E. q" l5 a
#include <linux/kernel.h>" d  W; L& b" ^0 u* |
#include <linux/types.h>
4 v& d+ t# W8 x* W( f1 X' r#include <linux/gpio.h>
& I# J4 `& n) l# P#include <linux/leds.h>
) I! k' b- [% _5 ^3 a* {" @* ?1 I#include <linux/platform_device.h>
5 I- ]! [" F! q
# u4 y; ]+ l) v5 m, g#include <asm/mach-types.h>
. @& {% {$ A. r* I1 y3 N4 N1 ]#include <asm/mach/arch.h>
4 v* y3 b3 u* ]. q- K" D$ O9 \, M6 }#include <mach/da8xx.h># c2 l8 T7 V6 n! W  C
#include <mach/mux.h>) O- H( y; U6 J, K3 v- q
3 E; s, ?* a7 k0 l) Q  r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 m8 d" N, ]/ [& }) X7 _2 }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 a& y2 G* z/ ^  q' d* L# T: w#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), z0 k; z9 G7 l# u+ S
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) J! M5 g2 {6 b+ U8 T

* o3 h, P+ S* p4 H/* assign the tl som board LED-GPIOs*/
- T  p9 s7 |3 P$ C7 Ystatic const short da850_evm_tl_user_led_pins[] = {. t# ^$ d- z- h1 K
        /* These pins are definition at <mach/mux.h> file */3 Q, Q' a) Q; X" q2 V- W4 |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. L/ g5 R0 ^9 o3 `% c7 x: p
        -1, W" h0 V2 e+ I6 T
};
4 P. h- D& \0 h% M0 t
0 k2 b0 \% C& M9 O% i9 F4 qstatic struct gpio_led da850_evm_tl_leds[] = {0 i6 y" C9 X+ ?2 L2 W
        {
3 V7 V4 |1 c0 A: N8 H                .active_low = 0,
) \4 o% J" |# s                .gpio = DA850_USER_LED0,* b5 \9 ]8 t. ~) j4 O
                .name = "user_led0",6 `2 U$ u. J( N7 Y( `5 E. i9 r* V
                .default_trigger = "default-on",
( W/ r5 P5 _4 s1 y2 x* @9 h        },9 i6 F3 O0 L* z$ ^0 C
        {
2 D1 A* o9 W7 r* X                .active_low = 0,
6 F" F  A' h1 N5 \: t. I                .gpio = DA850_USER_LED1,; ^. r' W+ Q$ C# q/ d6 ~
                .name = "user_led1",
* P  ^! f6 w( Z' P6 k: _$ S                .default_trigger = "default-on",
) M, j/ {$ n9 H; ]: X        },2 Y: b5 h% ]$ ?. {4 \  _; I
        {
1 z  G0 c5 O4 ]4 @/ L( h3 j3 r" J                .active_low = 0," f5 Z+ i1 E7 v$ h2 j; |- W! A1 m. e
                .gpio = DA850_USER_LED2,
' {9 b) n# O5 D                .name = "user_led2",
" L( A3 ^0 {. r, z                .default_trigger = "default-on",  l6 i2 ?0 X& I$ s3 ~# V3 y6 x
        },
% r# R: _6 A7 k9 i; d, F7 L3 ~/ @/ j        {: F* S( p' E* i/ u/ `2 L
                .active_low = 0,
- Y- F1 T7 Q6 a                .gpio = DA850_USER_LED3,
3 P, E* a. d4 J, L9 Q# ~                .name = "user_led3",* o; p9 ?- I/ I7 r5 t% c4 l; O( o
                .default_trigger = "default-on",& M; Z/ X9 S4 H3 p( A; S  H
        },  n& P, g) }1 w
};
' d% M8 Z( `) s1 B0 k5 I/ e( w7 q; T7 b5 R+ _6 G6 E
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; D, }, l/ a: c+ k3 h9 B" o& O
        .leds = da850_evm_tl_leds,: Q  s+ b# r, L  k8 e& h
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, C" ^; O( e+ ?( R5 _) E};
, n2 U9 \- y. h3 d5 t! M
" N' x$ ?* {0 c/ Qstatic void led_dev_release(struct device *dev)
" S" V2 {  Y' l" y{6 Q" C" Y, G: P$ r( `
};
# \. ~/ y/ c! |( D- z$ b- d% C7 X4 B
static struct platform_device da850_evm_tl_leds_device = {% F! n: A' H. ]0 k
        .name                = "leds-gpio",
- p# h/ c& v: M$ l5 R# J2 V1 O: ], @/ }        .id                = 1,3 Q; I. v: [, ?  }+ V
        .dev = {
+ D' B! q1 H( ^- c& }9 f! k" C                .platform_data = &da850_evm_tl_leds_pdata,0 C/ ~5 n/ n* f. r5 D
                .release = led_dev_release,+ R' G' m% I2 e: I  F8 _  b
        }
+ P1 t; D) s5 |) U: N' b+ R. ~};: Q2 j4 {: Q5 j+ r/ L5 ]9 B
  s7 h0 y' M, j' R/ K
static int __init led_platform_init(void)
1 R: l4 b: @1 `2 r8 m{
  y0 m( \; d. E4 C, ]        int ret;
' g8 _3 @% M5 C' h8 a3 z! B#if 0
( N) P, S" T0 g( L; \2 k" o$ v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% _5 B4 B9 w4 j( @        if (ret)( |0 ~+ T' d+ E+ t+ a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. }( x* u) S8 K$ |5 }3 T                                "%d\n", ret);: J5 d3 n- P, g4 r
#endif4 j* Y. E% ~" ]& _/ j$ D1 y6 z
        ret = platform_device_register(&da850_evm_tl_leds_device);
) M1 C6 R7 ^" q( x: f$ k, B$ i        if (ret)
, L2 e7 O. q4 B$ a% ], i8 c7 s" F                pr_warning("Could not register som GPIO expander LEDS");
# m! f2 _8 ]# K        else
1 \, ~# |9 `" k. P0 c8 T                printk(KERN_INFO "LED register sucessful!\n");
3 W, r* N# D8 A7 ?
) s. s: J, a9 K0 P9 m        return ret;
  v/ l6 u6 J; U& u' S7 L, N- ?}
8 Q- j# d' i: e* W9 N  P1 U) c+ `. M: h5 [
static void __exit led_platform_exit(void)5 R# \2 M9 J5 z7 Y2 P- b
{' }- W! [& @* B' z8 \
        platform_device_unregister(&da850_evm_tl_leds_device);' h) {4 B& n& G5 r

/ F! p5 [' @% N        printk(KERN_INFO "LED unregister!\n");. o  E- R# r# w8 z8 N: p; f: H9 R
}
. f$ ]& y+ X0 D- |2 H) P' C8 A; F6 y1 x* n6 Z
module_init(led_platform_init);5 J& Q) F0 U! ~. d" R" q) D/ f0 q
module_exit(led_platform_exit);
. [7 F' k% ^' s  ?2 ?5 n0 z; J0 j. P5 R' K1 s" N! C
MODULE_DESCRIPTION("Led platform driver");
  J4 \. Q/ ~1 i0 T; r6 m# f& gMODULE_AUTHOR("Tronlong");
0 v$ c' t1 T. i4 g0 D# E% QMODULE_LICENSE("GPL");6 X, m6 m5 O4 H6 Z( D" P- Q

. ]  O4 C1 F8 Z- d, n% A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-12 02:05 , Processed in 0.098974 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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