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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ ~& ]* ]. N1 O. e4 ]
#include <linux/init.h>0 g3 h3 X; q+ a& L- \" v+ i
#include <linux/module.h>9 }6 b4 F3 x5 H; ~  v& E& v; h  @
#include <linux/kernel.h>0 h" y; \. a4 P! Q4 a5 x
#include <linux/types.h>. q6 \+ G' I2 ]5 s* N* G+ T) w
#include <linux/gpio.h>( E/ E2 k, z5 D, }8 `$ J: |& @( B
#include <linux/leds.h>
0 j7 S, U9 u7 k8 \1 n6 }#include <linux/platform_device.h>
' o6 d3 B  ]' Q5 _2 D
1 c& m) ^( p( e' B. l#include <asm/mach-types.h>
" _3 r$ C# k: D, N: Y#include <asm/mach/arch.h>
: i3 `" a. S" o+ E- y$ c#include <mach/da8xx.h>" D/ V2 D" O% l5 }$ w+ {
#include <mach/mux.h>1 x; w; }8 C3 k% @5 o. Z
6 C% p9 K$ s: q. n1 ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( S; c% q3 s2 ]) F% J, A3 ^! R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! W; p6 m' ?. R; @) S. ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! Y: W4 M5 o7 Q8 `- |' c) j#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% X* K2 e/ ?9 j! R  c) c2 x' w* V
8 a" C5 X" Q! a2 d% v! M  l# j
/* assign the tl som board LED-GPIOs*/
) w& Y' o; }; l$ j, |! D% ~2 qstatic const short da850_evm_tl_user_led_pins[] = {( _7 i( G% h; ~0 r2 ^
        /* These pins are definition at <mach/mux.h> file */& T: j2 B8 y" x6 s. \/ Y4 T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) {+ D0 _, S) c8 {+ d0 X$ |
        -1% J" R& Q5 @8 L' }8 r$ Q9 {) s
};  |4 I9 z/ i2 L

: U7 q. y( P. `* kstatic struct gpio_led da850_evm_tl_leds[] = {
2 S7 O/ N9 w6 R! w0 m        {1 D6 w* C; v, Q/ w7 C' e
                .active_low = 0,1 V5 b: x0 C5 Z6 e  h5 ~+ b1 Z5 {
                .gpio = DA850_USER_LED0,
- p  Y) o8 d- g+ w8 G- i0 q                .name = "user_led0",
) J: P% M! Z, Q                .default_trigger = "default-on",4 P3 X( J$ a; B& o
        },) c- w( N1 R: e, ~2 |6 W! ]
        {
: F& k: ~7 i% F4 }& O7 h                .active_low = 0,- e, g; M& p/ {
                .gpio = DA850_USER_LED1,
% F& r4 R; G1 r/ Z                .name = "user_led1",
5 }! v' v5 {/ s- m- C& x) n4 |7 Z; J                .default_trigger = "default-on",
7 m. d8 z: r- e* z/ T* \) Z        },1 Q$ W; G; j) l9 `" W
        {
3 C5 `) A( o5 v: t0 Q3 g9 m                .active_low = 0,4 S: D( s; a' l) \6 q
                .gpio = DA850_USER_LED2,
' @! x7 |6 u# Y0 b                .name = "user_led2",
6 V5 {+ W* j# o$ M! Y                .default_trigger = "default-on",
+ L3 d) @( i  Q- Y% G( |        },4 }6 S: q/ a5 s# m; `+ U
        {
$ N& w( Z) \' {; S" I$ C2 u' v+ f) W                .active_low = 0,  ]8 {/ {; v+ i4 g9 p! k  y$ g
                .gpio = DA850_USER_LED3,' l4 C- }8 v7 c+ l. W3 p, D
                .name = "user_led3",( [9 a+ a5 n, W( k( P8 O/ S, S
                .default_trigger = "default-on",
2 Q3 L/ H5 H' L7 ^( o$ e        },
5 v$ v; M& V; m5 P' f1 I* H};* C, g( n" F# J; ]- |
$ S+ H8 c# {4 e7 ]2 S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 q: [  W$ ]+ l& r4 H6 c        .leds = da850_evm_tl_leds,
1 z+ O- L. C* n+ l8 x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% ^6 |, K$ v( E$ e# R
};; d- `& b( }, R9 R7 Y4 V/ ?  e
% x7 V( R" E) W! I0 K7 X" [" {
static void led_dev_release(struct device *dev)
  E1 X& J$ f, d* G{! o  r# z' c0 t. s2 z
};
; G* Y5 ~4 O- x0 G2 n/ c+ [
2 q9 Y/ i! X, g8 o6 sstatic struct platform_device da850_evm_tl_leds_device = {
" C# v( J0 n7 V; T; A0 P+ X        .name                = "leds-gpio",9 U/ O5 m2 q! h0 T3 Q
        .id                = 1,4 H+ [! Z  F. j; W" N. l
        .dev = {
: D( t+ u/ V; w: a, q1 r! Z1 z                .platform_data = &da850_evm_tl_leds_pdata,- h' f8 k$ `3 ^5 m
                .release = led_dev_release,( r6 `. k) ]2 n4 @' B
        }
% P& U6 H* L+ |9 t};
& @& T) {% e' U1 ?
/ X5 C% P# W. [7 H, wstatic int __init led_platform_init(void)
5 y' K0 ?* K$ j4 R0 j8 k) Q) o{- _* a+ X5 q4 k3 p/ a
        int ret;- e* w8 {, b/ Z
#if 0
! ^# A, F4 W! b6 l, o        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# j7 d# X6 h, A, G+ [% s
        if (ret)3 A) b1 O+ y" _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 v* v- ]+ L/ j2 [0 v, \                                "%d\n", ret);
# h6 p# m1 ]. f) l' Z2 \+ n#endif
$ z% e! T1 }7 b: T+ V5 F        ret = platform_device_register(&da850_evm_tl_leds_device);; z: q0 ?) ^( d7 A8 j. J+ k& G# \
        if (ret)1 p. h# d; D, A6 R) b
                pr_warning("Could not register som GPIO expander LEDS");& d0 c/ c+ p% o
        else6 F, k9 q: a% T9 j! H
                printk(KERN_INFO "LED register sucessful!\n");
. f( n# t9 W. r% K$ h( Z- ?, ^7 n$ k1 j8 T# U, \
        return ret;( j$ T) }2 y4 [$ W" T
}
0 |1 x+ \8 I  t1 r3 G$ ^! C1 k& M0 B) e9 Z
static void __exit led_platform_exit(void)1 r1 Y( J$ ?$ b2 q/ n6 k0 x; a/ Z
{
; m* u9 v4 Q3 x+ w0 O7 L5 \        platform_device_unregister(&da850_evm_tl_leds_device);) W  i# S3 w8 m" `6 N# U6 ^0 }

: u5 G9 B: S! k+ Z- E. B        printk(KERN_INFO "LED unregister!\n");! V0 o, w' q4 R$ I+ R. n
}1 N1 g" Z7 C; I, W  c

4 ]  C( b% e  X$ x# m( |# umodule_init(led_platform_init);: I( p: z& V' M" w( z5 M- Q, `' j
module_exit(led_platform_exit);
; {1 h6 _. ]/ n3 ?5 m5 N( \: o0 l2 u: ]8 R8 Q  b$ _
MODULE_DESCRIPTION("Led platform driver");) E% K" R' L+ k0 u
MODULE_AUTHOR("Tronlong");
+ M1 x1 c5 S; ZMODULE_LICENSE("GPL");$ m$ i9 A/ p0 M. E
1 v+ K9 m, k, u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-14 08:12 , Processed in 0.038907 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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