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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( C: d  t3 O8 w' s. V: r& D, s#include <linux/init.h>
8 G( l, ^$ p) _3 G#include <linux/module.h>
3 W1 M+ t: Q; Q5 k# M& i9 Y#include <linux/kernel.h>
2 g7 c% x# H' Z6 {0 h#include <linux/types.h>' _0 q7 @/ K* b+ \$ S' p8 v
#include <linux/gpio.h>
  z8 X5 f* y" Q7 E' h2 L#include <linux/leds.h>' G$ s/ f8 d8 Z1 |) I4 v) h, b+ V
#include <linux/platform_device.h>- ]4 z& E- \* u4 G8 }1 W' V; H0 i

  `" ~- l2 d! |" h, P9 }#include <asm/mach-types.h>0 E* u+ V# i3 y8 s
#include <asm/mach/arch.h>$ A  D0 D5 i- n: d
#include <mach/da8xx.h>9 @- w3 T, k+ H  W3 U
#include <mach/mux.h>
4 M4 z( |- ?3 f  t9 |- e1 i, \+ c9 D/ Q, i3 m0 c  i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- Z' [8 t  N2 n) X# L- |: Q6 G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# _/ ]* l4 Y, {9 b9 @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" ?: P& D: |1 m9 \/ U0 V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, _1 i* }! v: |# C, P& s$ \9 v6 h$ l6 {. j
/* assign the tl som board LED-GPIOs*/
2 v, E( r* u$ {& u) O0 n6 P% Dstatic const short da850_evm_tl_user_led_pins[] = {! w( Z4 m* l0 n7 a7 `* h* A* n
        /* These pins are definition at <mach/mux.h> file */+ Q/ o8 `% ]9 x7 }1 b
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  V& `" P2 j; L. z- H& ?, s        -1
0 K( W- y8 Z0 J( B};
0 j9 X+ M0 U0 b, ~% D( ^! c4 e' Y# D9 w/ r- a
static struct gpio_led da850_evm_tl_leds[] = {$ D1 Q* p  u, Q% X: P* [$ I. n
        {8 k  T$ o8 x$ N0 T9 V, o/ l
                .active_low = 0,/ F; d1 a+ ?6 E* Z1 _6 m$ M
                .gpio = DA850_USER_LED0,4 j& K$ ~+ }" |" [
                .name = "user_led0",0 k0 G$ i, h1 S; q/ A
                .default_trigger = "default-on",9 P! `& E# `* x! @7 U3 I
        },! w) d1 o  E+ e# c& H
        {( n) a" \7 ^/ ], [5 _! Q, ~- L
                .active_low = 0,
8 o4 o0 t, S& i. u0 ]8 I; d/ e+ e$ `                .gpio = DA850_USER_LED1,
# R& ^. i) l6 ^/ i& O) }2 ~                .name = "user_led1",5 J; I/ w5 j, N" z2 m! _! y# Z
                .default_trigger = "default-on",+ z. x& c1 Z( v  ?7 v. O
        },
$ g/ k, ~1 q' @8 ?# \2 l        {
5 }! O+ N. i2 k) h! X                .active_low = 0,. }* E1 [: ~% Z, }
                .gpio = DA850_USER_LED2,
+ Q3 }; L3 T9 X! V8 L) S                .name = "user_led2",2 m& h/ y+ z/ Z& ~* ?2 f% f
                .default_trigger = "default-on",+ V) q0 s7 v, S2 z
        },
( J2 V' }/ P& Q& ]        {1 a) q6 [! ?3 F
                .active_low = 0,
$ K; R: @0 m5 v                .gpio = DA850_USER_LED3,
5 _5 M2 l7 ]1 H9 W) r! ^% V                .name = "user_led3",
0 t/ E/ ]+ x. i) u3 A6 A' c+ L  g                .default_trigger = "default-on",
, r: y' I9 C2 M8 ]- [# J+ u% b, g        },
: F7 X9 W0 @, B# `" D& v};
% ]$ e; V3 D- M0 ^! M
/ q- e* O/ I  _3 k3 Cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 N4 V6 G) u2 b9 O; s        .leds = da850_evm_tl_leds,. l# L  P; H2 L% r; O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( M' ^: a- J& m  l) K  g/ c
};5 t# T4 y3 \6 X$ i- Y' j

9 H) H% S* e  O* J  P5 \static void led_dev_release(struct device *dev)/ ?8 u% L5 z6 h! e; l
{; m1 l2 `* [2 i) J% c
};  ?8 C. o' o; U( K" w
& M' i* O' H0 h2 W
static struct platform_device da850_evm_tl_leds_device = {
: m8 e) F: Y* H        .name                = "leds-gpio",! _( X. B4 N% }( U+ D. O# i; P, u
        .id                = 1,% @! X9 i8 n% F8 e7 V' u
        .dev = {7 z2 Q' W5 b3 z- H, V. W( f0 `
                .platform_data = &da850_evm_tl_leds_pdata,
# V0 j2 j8 c* H" E                .release = led_dev_release,. f. p4 w; w1 |2 L) Y; G& z' w
        }7 C& H, r4 x+ ^
};0 S, H6 D4 u9 @  v. M/ z

* F# F/ {$ Z$ e/ j1 Bstatic int __init led_platform_init(void)
. `3 P' b; A/ o9 I( ~6 Q) H{; d8 y( F6 S$ g( v! V9 Q
        int ret;5 D! D" g3 F# G3 P
#if 0
- k) c, R8 J6 ~# O2 S: A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& L# |: S* m- j( d; e  o$ w
        if (ret)
. e! s4 Z- a3 i$ u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 ]" F  N. }. Z9 g4 M: j
                                "%d\n", ret);
0 G) o; L( D0 X5 Q#endif2 o# b- m# m, k. m- G
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 b8 c! I6 x, C% @$ S. ]        if (ret)& k# s& T& c7 ^; ?3 x
                pr_warning("Could not register som GPIO expander LEDS");
) c% M7 m# n$ d/ O! ~! T; w2 v        else; H. M2 a8 Y/ M( w; _! _
                printk(KERN_INFO "LED register sucessful!\n");6 c8 H  v; M/ n! p" ]' V

$ \" i! j4 S& R/ _0 l        return ret;" p: {/ f2 C  ?/ n+ g/ U9 Q
}
1 N) P& N. y+ U( C' t. p4 N
, \. j0 Z( t9 ?* v& l) H3 }: L. vstatic void __exit led_platform_exit(void)
: }/ k0 d+ \; l. K  h7 g. j{
# q0 ~- k! U0 `        platform_device_unregister(&da850_evm_tl_leds_device);
; G1 @  o. i  y+ e6 K1 N" |& w$ S  O1 s' Y' Z
        printk(KERN_INFO "LED unregister!\n");  a. ~+ G) T* r, {$ k8 y  U* V
}
( i) E% D- L7 M/ N$ W6 u  m3 ]* W+ ]0 l* y" R
module_init(led_platform_init);2 L$ t1 ]% a+ ^7 e; N" B/ }
module_exit(led_platform_exit);2 V3 B0 Z$ W3 x" V6 ^. H! u

! w6 m, a# d( x# _7 vMODULE_DESCRIPTION("Led platform driver");# P7 v8 N9 S/ L+ U* ?" j
MODULE_AUTHOR("Tronlong");
* W) G' h% z# o7 T; XMODULE_LICENSE("GPL");
) `+ S8 o" E& A! d+ F
0 W5 l; ~' Q9 s( j' w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 14:38 , Processed in 0.040438 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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