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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# `. o8 e+ x7 X  ~
#include <linux/init.h>
. P" ~# A" k9 D7 R#include <linux/module.h>) G- J3 W" ^$ N! S  B% O
#include <linux/kernel.h>* F. k7 e- L; n; f+ |2 F/ m
#include <linux/types.h>
5 ^4 R3 @( G" S0 T: T! n; r4 F#include <linux/gpio.h>, o: c4 u; v3 O0 O2 \+ [$ Y6 q& D
#include <linux/leds.h>3 s; r2 \& f2 S) t. v
#include <linux/platform_device.h>
% _7 y9 s% {' g& _
7 `5 U- O6 j) P& C#include <asm/mach-types.h>
; J. m2 S( g( D, l) O8 J#include <asm/mach/arch.h>
" i! ]& ]  W- t) f1 Q" q#include <mach/da8xx.h>+ y/ m% f8 {7 H* @
#include <mach/mux.h>( C$ j3 R) I: `$ {( f; W5 u2 d

* H8 c1 a0 B8 Y  q+ Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* w' L! e5 ]7 n8 J$ C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 S$ D. K. [0 T, B7 w5 r" t6 |#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- F0 E+ }- e1 p  P( L5 n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) H8 E- @: u5 a6 c2 P) m3 b% W4 g- t6 h+ _
/* assign the tl som board LED-GPIOs*/
" R8 B4 x0 f& c  f% F% mstatic const short da850_evm_tl_user_led_pins[] = {% B: G5 \5 C& G. U& v# Y( a
        /* These pins are definition at <mach/mux.h> file */1 \# ?8 s: I: A9 m! P" |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ n$ N# h! q% O" Z# A
        -1
, A  y, C7 F, n8 m3 e+ v};# |3 G! Q( R7 j2 V
' \5 a' t. w- X5 e
static struct gpio_led da850_evm_tl_leds[] = {& a/ B; g& E' H: h2 g; `& f
        {
9 a/ B& j- I7 d$ G+ N  S                .active_low = 0,
) l1 p- o" o) F                .gpio = DA850_USER_LED0,6 v8 i+ T+ U% |1 Z/ B0 W% o7 {# t
                .name = "user_led0",* a$ e5 P8 N5 u0 f! |* R
                .default_trigger = "default-on",* v2 X+ Q2 H. }6 ~' i- b1 \) b
        },
& j, c# F# O( n+ P4 Y: J  s        {
7 Q8 b+ `* H) P! t9 f8 k                .active_low = 0,* D  K: {# f' N. |; q& f
                .gpio = DA850_USER_LED1,
% x: q" t- _7 A( ?3 z, V0 ^) ~; O                .name = "user_led1",- O/ s' C5 U! |( H5 \6 S
                .default_trigger = "default-on",
4 z: P8 f. _8 r        },& R' ?" O  e; w3 `: P1 i
        {3 J& x4 h7 F. v: u# @
                .active_low = 0,/ V* @8 _6 ^: l
                .gpio = DA850_USER_LED2,
* ?; M" H: ^# D: [1 x' H                .name = "user_led2",
8 Q3 y9 X$ u; J                .default_trigger = "default-on",9 i9 o- o) K$ @
        },
- T7 X& O. m3 q        {
/ d2 @7 l' O( g! e                .active_low = 0,
; J$ m# D! R, _  U, V                .gpio = DA850_USER_LED3,
* T4 S7 ?, {" n: _8 Y* S/ ^# a  L4 r                .name = "user_led3",
- {( Y2 b% _, R) q" \7 Q                .default_trigger = "default-on",
+ i% u) N4 L) H: m) v* c) _/ n        },# f/ n5 @" }: v$ F+ O$ V
};
* L5 p2 a, g5 N; f. R$ `5 q7 I/ e( `3 E- x' h( I& v& y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ S) z/ M3 D1 M7 S' s- H6 B
        .leds = da850_evm_tl_leds,. n4 g. V7 Y# h+ Q" u
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) J2 t; z7 z3 P* E
};. E+ H8 g0 t/ `2 s! f

& }6 H  z; [: f# Y/ jstatic void led_dev_release(struct device *dev). d2 c) p3 C6 K' b1 d
{  f+ n* v/ b& F! q7 M& V& }. Q& b
};6 \) V& K% E7 i4 S* J

! Y: f( f2 q( ~1 F  Z" h& Bstatic struct platform_device da850_evm_tl_leds_device = {
( x  q& Q! ?" U! f4 y6 |4 S# p0 C        .name                = "leds-gpio",
" f" b+ h# z/ C8 }- a  ]6 [        .id                = 1,
/ ^! C" a$ [5 x* l; x: s        .dev = {9 s* w# N  r+ G. ]1 M* v6 M' n* m
                .platform_data = &da850_evm_tl_leds_pdata,) j  U9 t* }4 p: T/ N9 _, @% d, g
                .release = led_dev_release,
6 I: t7 ^0 m/ U+ ?        }
  ^" r# x! R7 B/ P& g: L0 p};5 M+ G4 x2 i! B7 M

- `8 I7 E9 [/ h/ Rstatic int __init led_platform_init(void)6 U! @  U7 u% ?" l! i
{
& E2 u; n6 X/ M% f! I5 [        int ret;9 M, \4 ~, g9 w( O$ f, I
#if 0
4 p7 A) m3 A- g& c. p        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 ^' e1 \" ^. O0 f. Y/ J/ ?
        if (ret): j( ^9 A! @% k2 g  M
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ v6 [- W2 M9 V! o% T                                "%d\n", ret);0 J; Z7 @! h/ m/ X. `4 Y/ a' r
#endif: K7 M+ G; ?6 }9 o
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 F1 I1 I# ^! w8 S+ V        if (ret)
  f; ]. N) r! c8 U8 j+ _+ b                pr_warning("Could not register som GPIO expander LEDS");0 K5 R9 k& D0 n" B2 S4 V
        else
: l' g( G) ?+ ~$ S                printk(KERN_INFO "LED register sucessful!\n");
5 u! x6 N6 ^0 H+ A' I2 H  J9 q' [
        return ret;# J# w& p9 ]1 C
}8 @& c: d: K, v3 f
4 ]1 }8 r0 w% [- B
static void __exit led_platform_exit(void)
8 m/ f; R$ @% z0 P6 V1 m{1 t$ p. H' N' L
        platform_device_unregister(&da850_evm_tl_leds_device);
& I# f3 R- Z; d, U! d8 N4 _& o  c+ U3 Z5 q/ q
        printk(KERN_INFO "LED unregister!\n");
) N, R) ^- U( X}
$ e. n2 X: r; o( k4 \& N
# _6 ^# F+ {" p7 N# R# w- w$ C. ]  J" Xmodule_init(led_platform_init);
& x- F  J1 o  w1 F; }, }module_exit(led_platform_exit);3 E0 I4 \$ E. k- d: m

! ]: S. j  u% u1 F! }3 w1 _( ZMODULE_DESCRIPTION("Led platform driver");
6 d. ~, ~& L$ _. \; WMODULE_AUTHOR("Tronlong");, G7 @* @3 e" |- H
MODULE_LICENSE("GPL");
7 P, C5 o. g5 g! W9 q  S& D2 L9 n' z% T4 O3 m4 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-4 16:13 , Processed in 0.044844 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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