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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( R3 |9 `  P% b#include <linux/init.h>
) n: Y8 i% j0 A#include <linux/module.h>. ~& M4 n6 z0 T
#include <linux/kernel.h>" C: |. w: p7 M0 S
#include <linux/types.h>3 T, O+ z' [; i' h; W- h; ?. }
#include <linux/gpio.h>
1 {1 j7 t6 F3 k' B0 M#include <linux/leds.h>
+ R! d1 B) J: h. Z6 h! e0 ?6 ~7 ]5 O; X#include <linux/platform_device.h>7 `  a% B, A7 [! e( Q% _

+ _2 {% [: V6 X# U* K#include <asm/mach-types.h>( \! i- }7 G: k8 `  [
#include <asm/mach/arch.h>
& t. @: H6 w0 U4 N#include <mach/da8xx.h>- K8 f' `' H+ z% |
#include <mach/mux.h>
6 y  _9 Q6 j: |" y5 h. R
5 B5 t' G' k4 W) U  g, `' j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 O* _2 @& K/ D- l7 c" a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 G* F- I0 I1 m6 m1 Q- Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); {# \3 A, i" r
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). z+ S) i, _' H* D& a

$ a+ i- j# b9 ?/* assign the tl som board LED-GPIOs*/
1 I8 [5 S, N- V' ^static const short da850_evm_tl_user_led_pins[] = {
( U' M0 f( r, g" i2 M% \        /* These pins are definition at <mach/mux.h> file */
! U# o; m% c3 Y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 i! z5 ?0 R' T, @# z# D+ s
        -1
6 g" A- |* B- @! |};
# ?2 v6 t5 j0 z: B, J) R* w+ @# A  M3 Q6 z+ o9 y) Y) P6 n7 }
static struct gpio_led da850_evm_tl_leds[] = {
9 ?) s6 W- p8 K        {3 H$ ^% w' V4 \" e) C3 o% \& M% j
                .active_low = 0,
4 I& s& I9 ?. x& g1 ^; \" i                .gpio = DA850_USER_LED0,2 ]7 F- T6 V. Y
                .name = "user_led0",
( G! f# {' v% p8 q( n                .default_trigger = "default-on",
! B: a& A1 s8 H$ L4 p        },4 E9 Z: y/ r3 L6 T% T) v2 j1 X" d9 h
        {9 Q0 u3 ~2 B% z+ j: O/ H
                .active_low = 0,; q2 I9 J0 e% i5 E" A
                .gpio = DA850_USER_LED1,
, P# o, f4 z7 _' q+ y: H                .name = "user_led1",$ E( Y( Q, |% R0 K
                .default_trigger = "default-on",2 y( {/ M7 P- f; P
        },
) E: H' D6 q% e  v( k$ d7 }        {
" `5 ^8 ~1 B$ H; L2 x! }                .active_low = 0,
, H- U% M9 M7 U; j. u+ t1 G! S                .gpio = DA850_USER_LED2,2 H. z/ o# b2 S' M
                .name = "user_led2",. H# @  T, i1 k9 O( g6 X5 A
                .default_trigger = "default-on",
3 @' x5 z( V2 Q7 z( x: R5 E! c        },* ?. O/ w  B- l! D
        {" Q, t' n% g4 `/ ]& V
                .active_low = 0,
: o' K9 F1 m- a' _- P                .gpio = DA850_USER_LED3,4 t! B$ Q0 c; W" ~3 L7 }# r* m
                .name = "user_led3",
# N( m# R* @) s6 P5 q* T  a* ?                .default_trigger = "default-on",0 S9 O' ?' Q; b- U. J! n
        },6 e# g0 [/ p# F& J% h' g
};
; \4 ?3 a( r+ Y3 c
# d1 k- k9 F6 Y4 g/ G/ _static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! o2 j  ?% P* z& n# Z& X        .leds = da850_evm_tl_leds,
5 r3 C6 ~3 j% r; U: r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 Y) j/ g7 u6 y0 r0 M$ v
};- z7 h5 \7 Y+ _" V+ {/ T

* w: b. i0 |: `7 b; _static void led_dev_release(struct device *dev)
' r" B, g3 b4 k; i{" ^4 J/ @2 J7 q2 |- d
};$ ^' x( o3 k; X  `0 ]

' p" w8 S: o. \) Q* ^8 t5 |8 `static struct platform_device da850_evm_tl_leds_device = {
) C6 ~! ]2 _- R        .name                = "leds-gpio",% @" ^' A; i3 \
        .id                = 1,6 S: O) S3 {$ Z7 p8 c% k
        .dev = {1 ~; p1 x% R; F) [( z
                .platform_data = &da850_evm_tl_leds_pdata,
0 b# Q! E( T3 v# E7 N                .release = led_dev_release,9 r5 S" ?' [; i6 j' u3 @
        }' h* H* L/ ~; N! f; ]
};
: z! O4 a8 [3 H0 K' l5 U7 ?3 \6 w- F6 R2 W
static int __init led_platform_init(void)
3 f+ p+ h- @" z& u; t( N{
7 r& P6 N2 [' o/ H        int ret;
, T  _" E( O5 g/ C2 N" a9 [#if 0+ I7 p$ c3 R3 K- [( g  q* b
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 O/ a) P% M4 V5 U! A        if (ret)
9 C. E: A. A3 l' `+ h2 @$ w. n                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 {$ _0 E% I5 L+ ?/ G) R
                                "%d\n", ret);& i/ y9 u$ M+ Y( D$ g% i
#endif
. ^4 Z( ]$ W( W( C        ret = platform_device_register(&da850_evm_tl_leds_device);: S1 r' K' F$ b( f3 T
        if (ret)
: u. g  o, w) C& ]+ ~0 O" x                pr_warning("Could not register som GPIO expander LEDS");, ?5 g! b) x+ Y; N
        else
8 b0 }+ {4 e# R" c" x8 E                printk(KERN_INFO "LED register sucessful!\n");% A: c8 z! V4 O, T
( p* _( G. c- I7 s; e9 v; W2 |
        return ret;+ d0 M4 {2 N0 j7 S' {  L
}
1 b8 w: J  g' g2 N1 Z& \; H
8 j/ B7 t8 |; Jstatic void __exit led_platform_exit(void)( ~9 r- ], O# A5 m8 f5 U
{+ K: S8 w+ i8 ~, P4 j8 L
        platform_device_unregister(&da850_evm_tl_leds_device);4 k! H% y3 O. k

( U5 I6 d* U( f" B' }        printk(KERN_INFO "LED unregister!\n");
, l1 E, x& R+ e3 e$ n}" P3 o5 H: Z4 q- o. a" ?7 }

8 d0 E& {& H: q1 `module_init(led_platform_init);
8 S2 J, [' H( g" Nmodule_exit(led_platform_exit);6 V. k( y9 B8 l) E; j

$ J8 m& ]$ p5 T( Y( jMODULE_DESCRIPTION("Led platform driver");
2 B5 R* c$ c- z6 L* d3 {7 dMODULE_AUTHOR("Tronlong");
% c6 B: \% p8 _; G% x, BMODULE_LICENSE("GPL");1 M5 q: P6 i  T
6 r( q& _3 q: B- p6 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 23:14 , Processed in 0.042293 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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