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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% I! [8 [! B3 j$ v, `$ [8 l* u5 I
#include <linux/init.h>
+ _( M0 X8 Y6 ]+ R2 W#include <linux/module.h>/ ~& J+ q% @/ s' z4 U% B) \7 c
#include <linux/kernel.h>: A- t0 g: z& ~# i( d
#include <linux/types.h>( o. P* V& j$ }, F0 z
#include <linux/gpio.h>
% p/ y3 B/ s' S" n% ?: K0 ^#include <linux/leds.h>$ w/ t2 p& D: o
#include <linux/platform_device.h>
3 w9 t3 C0 J+ h" J
6 P4 h6 W: m8 T/ M#include <asm/mach-types.h>4 i9 C5 u5 u. Z/ n+ ~+ w5 Y* \1 O
#include <asm/mach/arch.h>
3 E' S2 x4 P' E8 b: |/ n#include <mach/da8xx.h>
6 }6 Q+ t! S0 F. O#include <mach/mux.h>
; |8 q* t* [' Y: M% y" C) V% E) d5 |' m: \8 U& V& W
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 C7 r% b2 X2 A9 r7 g* g" e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 I# X6 I7 \) U& G* S& z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 N5 P* e0 E) _4 c/ f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! z( [" ]+ {! o: {
. m- @( d% S6 {$ s4 d+ A1 }/* assign the tl som board LED-GPIOs*/
& H# v6 ~. k; ~7 Ustatic const short da850_evm_tl_user_led_pins[] = {2 Q$ |& R" U& t7 f- \3 r
        /* These pins are definition at <mach/mux.h> file */
' I) Z( _0 Z& b1 L, R        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 s4 n. q/ a& }4 u7 j
        -12 g% x- C' ^3 X3 w# P3 X$ m
};
, V6 Z5 \6 ]# C$ I& k* ^
7 N3 c1 X5 d4 J' y1 m3 w1 V) r& Rstatic struct gpio_led da850_evm_tl_leds[] = {! n( T  q3 L' P" F
        {
% e6 \6 P( J/ y                .active_low = 0,- ?. H6 p9 F# q+ V4 _4 G# Z
                .gpio = DA850_USER_LED0,$ V5 f! I9 s1 E! t& Z# D
                .name = "user_led0",8 j, ~3 h/ E' {" V+ X3 q2 u
                .default_trigger = "default-on",
  t7 z+ L' q# H. R+ s        },) ?- u: d5 t$ g! ~0 D
        {# J/ v3 O& K5 }
                .active_low = 0,
8 k0 U0 [% T4 C/ ?$ I                .gpio = DA850_USER_LED1,
! F6 c  E# M& T6 }9 V                .name = "user_led1",) d0 i/ G3 L9 H
                .default_trigger = "default-on"," T% h; h" q  C" l
        },
# h# h( c' \6 M9 B1 S        {4 L9 X8 s4 M( c+ E( p# D
                .active_low = 0,$ F( P2 j2 E4 F4 t
                .gpio = DA850_USER_LED2,
0 v; v+ E1 ~0 C1 n* m; J                .name = "user_led2",
8 |" f3 P2 d& D( W5 s' o                .default_trigger = "default-on",
0 F; r, V( P/ S$ Q8 A        },
$ ?: t8 y! u. J' |, y8 k% Q        {0 h! [9 |* F# m8 ~
                .active_low = 0,
# j* B; K; C% i. ]( \                .gpio = DA850_USER_LED3,
6 c3 j+ E# l$ F9 Y7 S9 S9 w/ s                .name = "user_led3",
1 ~' T& u* E8 }6 T: e5 O; t9 r- s                .default_trigger = "default-on",
9 [' h; V- Y" d* f, [        },
* X* t: X$ S- n4 {% l};
6 H. M' J3 F) y% f$ `: U6 b
8 S1 Y& |, a; d) y; T8 @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 V# I' P' J4 c& y. S
        .leds = da850_evm_tl_leds,
! T2 j& Z, ^- g; r  U3 c        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- m" J+ w. G% }/ I
};
$ F: H+ S' @: n7 V- \# s0 h% A' ^) J* [2 K! c1 f4 v
static void led_dev_release(struct device *dev)
7 e, f8 E! l0 g6 V{8 j/ e$ c! J* _( ~! Y! Y* S
};
9 E0 L! g) r. ?: ?- c9 H: z! y4 u6 h: ]; [
static struct platform_device da850_evm_tl_leds_device = {
/ m9 [: m4 o# N: [2 m) ~9 o# w, r        .name                = "leds-gpio",
& W; a! f. }' s# U        .id                = 1,4 [: R5 v" Q% ^  F( e5 i% V
        .dev = {
$ ]) P6 f2 Z1 j! ?  q0 E) V                .platform_data = &da850_evm_tl_leds_pdata,1 A, B7 }$ ?9 s. }: g: _
                .release = led_dev_release,
+ n6 ~7 Y) @2 t4 o4 j9 ~) P        }$ w! R! a4 L( l& I0 o4 H
};5 h" D% V# E+ d5 E

# u+ D2 V! y; P" E% }static int __init led_platform_init(void)
0 {' e2 U2 d) x$ N! l+ _$ c{; ~3 p* |4 O4 Y* L( Z
        int ret;+ |7 g: E1 N1 |" R  |$ ]. T
#if 05 u# R. `7 L* U9 h5 m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 ]: p# H. _% ]7 O
        if (ret)
0 W0 N0 h1 ~/ g6 @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 W" O3 @# v3 r( Q$ o
                                "%d\n", ret);
1 w! u/ K, y* e  H+ ~#endif! B, U4 C8 g/ {* J, k9 i
        ret = platform_device_register(&da850_evm_tl_leds_device);& @" c% d3 [) N! Q! j1 [
        if (ret)1 j% ^. I- G- M( Z( t
                pr_warning("Could not register som GPIO expander LEDS");$ K0 G" |9 U+ }4 f0 }- Q
        else
& b% V: x: l# }3 w                printk(KERN_INFO "LED register sucessful!\n");' S6 K; h2 [+ R% f
3 ]3 r) W! y" A$ O4 S2 c& z
        return ret;; l: Z4 K; k( ]2 d6 [8 j% ^0 F3 @
}0 _$ z$ `5 q% g: M$ @

1 ^: ]0 [5 [  E$ H0 vstatic void __exit led_platform_exit(void)! W% e% a' L) w9 P; X6 ~
{
* Z6 M6 W$ E+ A2 `4 a/ l. A7 H$ q        platform_device_unregister(&da850_evm_tl_leds_device);
  E/ A4 ~- U% z7 {& x$ r& o! k6 }6 v% V; A! H4 G- T* ]
        printk(KERN_INFO "LED unregister!\n");
+ n/ K6 _+ v7 v1 P, J/ y}4 N  E, B  g7 @3 k

6 ^& R! q. v, G* S5 f" `8 @' _0 Tmodule_init(led_platform_init);+ w6 ?& B; Q8 g: W5 w
module_exit(led_platform_exit);
! c/ a+ z8 a# V6 `0 ?' L3 y
6 M3 j/ R2 ~4 ?+ z7 n& i* JMODULE_DESCRIPTION("Led platform driver");; l7 V; E; C) G  H8 M
MODULE_AUTHOR("Tronlong");
7 F1 v0 t6 Y0 M6 QMODULE_LICENSE("GPL");
, T5 R) Q+ u2 a* Q" ]6 P( P% \7 R( L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 19:46 , Processed in 0.038388 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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