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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' H! g6 m0 K' ?4 t, y#include <linux/init.h>
1 I  W# E& `% g! S" ^  A9 f#include <linux/module.h>
6 P5 D4 G' g+ c+ d2 J. @/ H#include <linux/kernel.h>: ^9 ]# I6 ~3 x* j" D1 l2 d. k; }
#include <linux/types.h>& w7 Z$ v- A5 ~6 x1 w! Q
#include <linux/gpio.h>
' S; ]( J' r: O, e( c#include <linux/leds.h>0 H7 E7 M$ b. A7 V: Q
#include <linux/platform_device.h>
0 a0 I$ D& q; X" T' X$ b  s4 T0 }1 {/ ^% I5 r% h
#include <asm/mach-types.h>
, R( [: {* A" [# l! C#include <asm/mach/arch.h>
$ A. ^8 h8 ]/ R+ ^#include <mach/da8xx.h>0 o6 N9 W/ D, E1 ?2 d7 e
#include <mach/mux.h>
( x" x) F. N% ?! B
8 D& G! U. \; }1 s( @: m( }5 V1 Y2 T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! D. S3 d4 f2 K1 T' |6 f+ b/ {* e3 A
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 t; l$ o. M$ A1 M/ F. p" r3 O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" q3 e! R% u& E' N! }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ `& _" K8 |( F  w$ b

) k0 M. d. V# r6 }, C. d/* assign the tl som board LED-GPIOs*/
( F( R% o1 j! [static const short da850_evm_tl_user_led_pins[] = {( @) \! T7 K2 q1 J: d
        /* These pins are definition at <mach/mux.h> file */
: c) |! c; d$ s& J. l3 [  d        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ t$ E3 w1 ^5 X5 r% U
        -1
) f# R( f' J' R! J% m1 H- a};
0 ?, Q5 l; ?0 s1 D( ^: ]5 B; Q6 ?5 Z1 }. u1 j0 s
static struct gpio_led da850_evm_tl_leds[] = {" B6 L- p' ~0 `: s& ^+ i0 K
        {
/ H" g- P3 Z* b                .active_low = 0,' Y4 B' K4 W0 z
                .gpio = DA850_USER_LED0,
, L# h9 J& R8 N$ G, b& t                .name = "user_led0",
% O0 g/ A6 O0 E                .default_trigger = "default-on",
9 R+ R2 O  c8 g        },8 I" P1 W6 l7 E7 G6 B1 J" r
        {
2 S  x& t6 p+ w2 G                .active_low = 0,
! a- v0 d6 @3 G  L0 C7 C6 B                .gpio = DA850_USER_LED1,
8 q  t8 d$ a( u4 G1 s3 R$ I6 Q7 G8 G                .name = "user_led1",
* f! f5 Q( X, P6 i9 p) g6 ^                .default_trigger = "default-on",! u/ a" [! E. \( X
        },/ W- u& ^" Q% [- a' k, O4 X1 G, ?$ g
        {
/ t2 v# r" l; Q) F& o$ G% d$ j0 ~" {3 b                .active_low = 0,
/ m, J- e8 [$ I( l; m7 v                .gpio = DA850_USER_LED2,
) L" Y+ A! V% Z3 m, \# l( d2 M                .name = "user_led2",
9 i/ J8 ]% x  g                .default_trigger = "default-on",5 V- W4 P# R. s8 z
        },
. |# l# M4 P, ?& E+ R7 ]        {) [% @& p5 T9 l: j  j: m( l( I* Z) s
                .active_low = 0,7 q+ ?( E# y) w4 z
                .gpio = DA850_USER_LED3,
: C+ Q4 Z  T; ?# ?; Z+ f; Z8 p$ k5 y                .name = "user_led3",
" T  ]* o! |( j; U; p  }  \5 g, ]8 x) L                .default_trigger = "default-on",
( I& [5 j' z( ?5 `        },# I: i' v) B" u) A/ j9 ?3 a! l
};
; Z# j4 j' u; p* \' H; n/ `4 v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 g  q. P% k4 S# _
        .leds = da850_evm_tl_leds,0 m1 k/ a# w) v' U8 A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" x6 ^, m! u- R# F8 n1 \  d7 f};: {& `) E6 z) U
% p! H! [+ N, x& \  t- z2 g
static void led_dev_release(struct device *dev)  ?" w/ n5 w2 {7 O5 D6 j
{1 `! E* m" i* y5 B
};) r) |- I3 g" W9 b* ^6 F$ S* a' k' M
& o* ]6 p- B  ?! S& y; ?$ n" ?! X
static struct platform_device da850_evm_tl_leds_device = {
6 H- w( l6 L! G  @        .name                = "leds-gpio",, b# Z! ~" D/ c7 J+ B
        .id                = 1,
0 J, N$ ]5 E7 ~4 F# p# f+ `        .dev = {! m  y% w+ K7 B1 H: ^
                .platform_data = &da850_evm_tl_leds_pdata,
5 ^' Y% g0 v3 C+ T  D. ^                .release = led_dev_release,7 a9 p' H$ D; `8 C) _5 c
        }
9 V. H: U* `$ Z# ~8 {% x% |};5 o* J9 H8 K( v9 ]

$ z) u8 n" s# i7 Ustatic int __init led_platform_init(void)
) h9 G1 X) N; D  p1 X. G{
" ]4 S8 v: P3 R( W1 x- D; ~0 |        int ret;
# I3 J3 ?& D7 E- e# m#if 07 `7 W7 j  ?4 N* N* N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 B2 J) c& u1 [  x7 E' _        if (ret)4 }  _- ]" \7 \4 K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") \9 c' S! `- U
                                "%d\n", ret);, C* u- A6 x" e7 b2 f% m! E+ b; Y. y
#endif
: [2 d* B; r$ S8 x        ret = platform_device_register(&da850_evm_tl_leds_device);; |# F9 G! _6 B5 \7 K, |6 t5 R
        if (ret)
) `- N5 g( Z( S. Q$ Q$ V9 c                pr_warning("Could not register som GPIO expander LEDS");" g+ J; @6 B8 }4 r9 y
        else
4 \: n! y, a1 K" p: X3 C9 Q                printk(KERN_INFO "LED register sucessful!\n");
6 W# l4 {2 Z: C( T; {$ Z7 Z' p* y: v( `9 l- K6 {
        return ret;- N& [7 I# z* E, i- v. }' m9 [
}
9 v% u% v. T4 e# E! Y5 \. M+ Y2 j) i$ c5 o
static void __exit led_platform_exit(void)* m0 ]; ]" P+ `
{$ t, e3 h4 v% P, C: k, r
        platform_device_unregister(&da850_evm_tl_leds_device);( I9 @. w0 h' ?9 v& N+ C
2 A: o9 R1 v5 l/ i4 G0 ?/ e1 B* |$ Y
        printk(KERN_INFO "LED unregister!\n");
. E  Y, ~6 k5 M8 v! u. e}# i! ^, @% l% S2 y. `" e+ E

8 d: b" S5 T" O2 J5 y6 Y, D# emodule_init(led_platform_init);; n+ C, |4 e* @1 q; B
module_exit(led_platform_exit);
+ b  l  h6 H) J2 {
6 @4 H* |8 C$ t3 P, ^MODULE_DESCRIPTION("Led platform driver");
/ k, r2 y  b2 i. P* E( p. SMODULE_AUTHOR("Tronlong");
  L( i' t8 T: A: y/ a( YMODULE_LICENSE("GPL");6 }, R- x; E5 p

9 E' y, U" i( \% N. _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 11:07 , Processed in 0.076460 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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