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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 p' C/ t& i' H/ _+ [2 S" q
#include <linux/init.h>5 }: ?/ r, ^: T6 P2 I/ @5 y4 {
#include <linux/module.h>
- {1 b+ w+ Y$ s) m0 q- M#include <linux/kernel.h>
1 X4 T1 t: Q; }7 Z- {2 p#include <linux/types.h>. L  X+ M3 e4 x3 i
#include <linux/gpio.h>
3 @6 d% ]- J. s+ W#include <linux/leds.h>  R( u1 Q' R# Y+ ^
#include <linux/platform_device.h>
9 L: F6 [' N7 Q4 V$ |) D- J, D
  N- a' a1 G4 [- k#include <asm/mach-types.h>
7 T0 f6 ^0 v( U. V0 n- C#include <asm/mach/arch.h>0 M) y& h$ T0 q7 W& i% r& l
#include <mach/da8xx.h>- F$ u! q; `9 H. Y* u6 l4 |
#include <mach/mux.h>
# U* p4 b7 c0 e1 i! Z
/ ]0 b' D2 B* s% F$ e& q! R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 Z! o2 Y  n3 w2 `4 L#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) M; h1 O* b' T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- s& ]5 [# C  z0 v" d8 Y: ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 w; I5 L6 a7 ?& q2 b; r1 G$ {, r% X! U6 F  g
/* assign the tl som board LED-GPIOs*/4 g3 o0 j: _+ I  L. Z1 ]
static const short da850_evm_tl_user_led_pins[] = {: {) j0 C) T' v: R: O) _' J
        /* These pins are definition at <mach/mux.h> file */
: y* j4 J. g/ }; t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ {% z' H( b! P5 I        -1% O9 L' d: w6 b9 |6 v/ D
};' j9 l! P, C& h/ R* }& t
5 U: a3 j- _  `, N6 U
static struct gpio_led da850_evm_tl_leds[] = {  V1 C  F* E$ ^3 f
        {. ]  U6 {# S. W: N/ \( C
                .active_low = 0,! ]6 v- e) h- G( m. D  i  v; o' E+ k
                .gpio = DA850_USER_LED0,7 v* U( K& Q' v
                .name = "user_led0",
8 y! A! j0 }# ~                .default_trigger = "default-on",
2 C' C2 f1 U' X' s6 x        },# z$ U- X2 ^3 T$ e& W* t! K
        {# c% g* N  ~. ?0 H( g
                .active_low = 0,4 r* b9 t- R3 q/ O: V. q
                .gpio = DA850_USER_LED1,
2 y, c( K8 D1 Z6 G                .name = "user_led1",
& U% w% z- l9 |                .default_trigger = "default-on",# g: }2 K2 E, j! x  A
        },! `! Q3 S& ]+ {! m
        {
# L7 x  _& _0 ]# d/ D3 W. Y. @; C                .active_low = 0,
" z! m' O5 i) G+ q, Z" E; F                .gpio = DA850_USER_LED2,: b8 d( t% i3 z+ {7 b* Y  L3 a
                .name = "user_led2",; R5 ?9 f, C. `6 m2 G: u/ ]& X- _. S
                .default_trigger = "default-on",. \" h; x8 U! c
        },3 o4 ~' y4 e# J6 _4 s5 b8 j6 x
        {& z8 p" Q" `6 W4 w
                .active_low = 0,* X/ s! _, \( N* q) l" L
                .gpio = DA850_USER_LED3,
7 I! Y3 k6 B% Y, e: `                .name = "user_led3",& ^1 c; U. P- {; g) e
                .default_trigger = "default-on",
* P- p3 N# `* E9 Z/ j$ k9 [$ Q        },
7 h6 g% C% q3 x& u+ N& [};" S* s  u7 H0 ~+ @: Z

0 E) ^, u6 [0 y6 z+ O$ fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 ^0 J5 i0 s: W, q1 V. C        .leds = da850_evm_tl_leds,- W2 g7 u" S6 Q1 g! I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 e* \  @2 R1 r+ O. C' }9 C
};( |3 [$ T$ y. g5 W6 ^
' A' M! I, `, K
static void led_dev_release(struct device *dev)
1 u3 y, r6 j6 z{$ v7 A2 {8 I* x% y. g1 g9 r4 G, l7 z
};$ Y5 t; Q/ S0 d7 b2 e4 A- x$ L
! E2 L% R# X* D0 i+ `& Y! z; L
static struct platform_device da850_evm_tl_leds_device = {
& ~0 g7 K: }) D. l- `. O: e" v        .name                = "leds-gpio",5 V: f5 H- m3 f$ u0 R/ @+ S
        .id                = 1,% O9 {" Z& _3 \. U& K3 c3 [
        .dev = {' v6 R/ u' _3 M9 q$ n  l
                .platform_data = &da850_evm_tl_leds_pdata,! Q. ^5 a& ~3 ?1 n
                .release = led_dev_release,/ A9 m3 n! E: @+ B5 @
        }
1 B9 _2 m/ e! K};
* v% l, O' ?6 x+ X
  |9 u6 M0 |( k& Vstatic int __init led_platform_init(void)
0 ?' d) h- ~" e( g* G{
1 a! r  B+ U: m+ O% }        int ret;
7 f0 M- N: N, l) ^  R#if 06 _6 C  l* i6 W/ `  E2 a8 H0 t- q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 x4 ]! @" a3 [' n
        if (ret)8 `8 {1 V# ?' B% u. M0 V( b
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ P4 p0 K! {! i" O                                "%d\n", ret);
; t0 b% ]/ _- O9 |  Q#endif$ c  p$ o' _, g! }* \/ r) B
        ret = platform_device_register(&da850_evm_tl_leds_device);  @1 e6 {- |% C  z/ S
        if (ret)' D( F7 C1 h! m& Z7 ]& ]: h( [% \
                pr_warning("Could not register som GPIO expander LEDS");" y, \2 x* G+ _) V
        else
; j: R$ W6 t5 P; r% z9 k                printk(KERN_INFO "LED register sucessful!\n");
/ P( z, C3 K) K; E8 A% H% ?( l! y/ D+ i6 J. Q  |2 G9 J  X; t
        return ret;
% t* v$ H: _+ i}
( W9 y# ]$ \1 A  W1 m  Z7 s8 S
; c* U/ h4 @+ A; Pstatic void __exit led_platform_exit(void). [9 b$ C2 W- H4 B! v
{' G: A9 t+ T/ W3 E* B- z
        platform_device_unregister(&da850_evm_tl_leds_device);
! |( y8 a/ {0 A$ O  u) I9 p+ n" O# x/ ^! U; f; H
        printk(KERN_INFO "LED unregister!\n");6 F- K  c' v* x/ _, W- M' W
}
5 l8 ?5 o  h- _7 y& D! _% I: R- s' D! c( L( X* f5 w: r. b
module_init(led_platform_init);
2 O7 i3 u7 l. T. H/ o, ^module_exit(led_platform_exit);
% {) r0 }- i# K6 P8 p2 K4 H. W+ F- {7 Z) j  _
MODULE_DESCRIPTION("Led platform driver");
, G$ g( e2 E/ `" ^# |7 `MODULE_AUTHOR("Tronlong");; ?  e- \! i' X4 T# [8 u
MODULE_LICENSE("GPL");  P% C; h. h6 B) `& _
7 c* X3 I/ W) q; ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 04:35 , Processed in 0.037844 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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