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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ X* |7 a0 A3 k  v#include <linux/init.h>
# p5 O! D  w, G2 B#include <linux/module.h>
" R! v' o  p4 G; w; z#include <linux/kernel.h>
+ g6 u( N! W* K8 d  n#include <linux/types.h>
: x' E6 E- I6 X0 z, L/ J2 p! P: C6 i#include <linux/gpio.h>, E: r2 s5 ~8 Z, ^( c- l. }
#include <linux/leds.h>
1 I) U1 p3 G# G#include <linux/platform_device.h>
% b( h3 o; W3 d' r4 R* f2 n
, g$ d; Z1 ~3 n- c) M  w- R( [0 M#include <asm/mach-types.h>, x  ]5 I8 i5 z/ q: z4 D- D
#include <asm/mach/arch.h>8 K0 f( X1 W4 V! H5 ^* H
#include <mach/da8xx.h>5 y, i& Z" p& `
#include <mach/mux.h>
; s4 G3 H' G: J- R8 K& W0 ^% b5 h8 A- k' v; X& F7 H9 L; Y; k$ o2 a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( s8 P5 F6 }  q5 t6 w  f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 }( r1 B! g9 {2 c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 w* n- ]7 F1 }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. @5 V. V% z  N8 G) O' C+ Z. g& B0 Q4 U4 V  E) r, A. d
/* assign the tl som board LED-GPIOs*/7 c1 U& n. m2 `$ t7 l% B- p
static const short da850_evm_tl_user_led_pins[] = {
! i9 V! o( I1 g* o# }9 E        /* These pins are definition at <mach/mux.h> file */6 {  x/ W9 ~( R8 O2 u- O
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 O( x' C1 Z$ B; ]1 `. ^        -16 P5 U6 `; {- b) \& q8 _0 [" V
};
5 O! o+ o4 Y" P' h
7 `2 w3 r  ?' P% U4 {+ K( Wstatic struct gpio_led da850_evm_tl_leds[] = {
( ?: R: Z- ?) R8 S4 x  r7 Z' Z        {
( }5 I7 F: H. s& |; c                .active_low = 0,& _3 W, I" d6 \+ h  O3 B" M0 |& X
                .gpio = DA850_USER_LED0,
  _9 u  Y; P" v& Z2 T# l) P* X                .name = "user_led0",
( o  n  v9 e* b$ m- g5 C9 X! J                .default_trigger = "default-on",
3 A( M2 G* M: B' i8 d% l        },* j( k" _* N2 v6 V# t  Q( Q' ^! U, x
        {/ H/ P- a7 R; |, T- y  f
                .active_low = 0,' P) B$ f6 b0 t/ ^: _
                .gpio = DA850_USER_LED1,
  x, l' E; N0 \9 ~                .name = "user_led1",
: }0 ~6 w$ K0 Q& v6 B- B  s                .default_trigger = "default-on",9 e& N! o6 D! F- K: M! ~
        },3 e* R6 y: u0 y9 b# Q. e
        {
" Q; [1 z8 K$ m% J: ]                .active_low = 0,4 m; }) {8 n9 S! o% q
                .gpio = DA850_USER_LED2,5 f: Z0 J2 o3 H4 n. c8 Y
                .name = "user_led2",/ q0 ?# J% D) j, Y$ i
                .default_trigger = "default-on",
' B% l' N5 N7 `6 h) m        },% v" p+ }) H9 J- j3 |8 z& L
        {
( ^* I. U; q" D8 x0 ^, m/ `                .active_low = 0,: T. F2 `# R: j0 O( T4 b9 Z
                .gpio = DA850_USER_LED3,
3 G6 W# U/ C9 A0 t                .name = "user_led3",) v( O' m& o" i, [
                .default_trigger = "default-on",* U! B3 B2 Z$ ~1 q1 I4 Q
        },
; O) W8 F8 S, }/ m};6 B- H, j& x, c) J- b; c2 P5 D& p
! B- {. x- y& E) B1 O9 u6 \# k' X4 U
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& \6 j7 _) T8 l% P
        .leds = da850_evm_tl_leds,
! {& f2 S4 Y2 S  M% b0 U: m        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, F2 P" a) f0 M4 a: R6 E
};; X/ q9 G) E" G

) z: u: _9 y- a. Zstatic void led_dev_release(struct device *dev)
8 f. ?2 X! W1 j" f" e4 a{! s4 I% ]* M+ ~1 I2 H! O' U
};
3 s, C/ ^* q2 o! J0 {& i* H7 h  ~+ u  \* }, [9 T
static struct platform_device da850_evm_tl_leds_device = {
$ A. v2 X7 e: b" Z        .name                = "leds-gpio",
6 x0 M9 s: d4 Q) h5 p* r        .id                = 1,9 F  s# k  r! G! l
        .dev = {/ y6 i- S% K1 a$ m( Y& o' ^
                .platform_data = &da850_evm_tl_leds_pdata,
7 j% f% O7 m/ Y8 z9 _! i                .release = led_dev_release,' ^$ E5 v* _& B8 N* x
        }) @& u( U+ B' d- O1 {1 U
};9 f. U: n+ ?4 b2 B6 F5 o2 r
9 e1 H+ E2 Z) q/ R- ?# `
static int __init led_platform_init(void)1 p) s+ {8 E( j  [1 n; x& b
{: W8 D8 Z* c4 m
        int ret;
2 J8 H1 M5 l' C* p#if 0# F$ J  O1 n' A' G( e- v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 g+ g; X# s' \3 W3 p. }' i
        if (ret)" B  m7 ~  Y; [
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  f% h( C; E) ?: w/ X
                                "%d\n", ret);
9 n8 o2 o9 M) ^# ]. @+ p#endif
- f1 q  s" e# k' B5 l        ret = platform_device_register(&da850_evm_tl_leds_device);7 N5 Z, B  [  q2 q
        if (ret)6 q. h& v  o, S
                pr_warning("Could not register som GPIO expander LEDS");
( R( @- F9 ~6 x$ r  v        else( b/ Q2 U+ ^: X8 m$ k
                printk(KERN_INFO "LED register sucessful!\n");9 a! S0 P9 B9 L- {: X' x/ Z
7 L9 E8 L+ x# u
        return ret;
( {2 m" f$ f- O' }. ?) z}
. L5 y' q) k; E4 \' W: o5 h. P: J' ~
static void __exit led_platform_exit(void)
2 N  w% @3 L4 W5 u5 j0 J, b8 V{
6 P) V+ A2 J. a' `  d4 P+ J) N7 B        platform_device_unregister(&da850_evm_tl_leds_device);/ n4 X# V. d0 `
; Y) C" u( R+ e& K* {6 g& ?
        printk(KERN_INFO "LED unregister!\n");3 Y" h5 ^; {6 X4 ^
}
; y$ v  S4 o# b
$ @, J5 [0 v: n. ]3 b4 {7 ?7 X" n* zmodule_init(led_platform_init);
  p) h( O* H" @+ _# b( ^" ymodule_exit(led_platform_exit);
: Z9 t# s2 \8 I
/ {% X' e" C; E5 DMODULE_DESCRIPTION("Led platform driver");
  O& @+ u" v" v  s5 i6 z; Y" H) |MODULE_AUTHOR("Tronlong");
$ m4 t7 |; m3 F: JMODULE_LICENSE("GPL");
  B  i4 G& n" v  }. L9 @2 |
$ @3 T6 k2 j0 m: k* o1 c9 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 13:39 , Processed in 0.048469 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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