程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! R- F8 ]: Y/ l
#include <linux/init.h>
8 m) j0 u7 R# @; C3 F1 \#include <linux/module.h>1 L0 u8 M* S3 w# ?) P
#include <linux/kernel.h>4 O% g3 v2 y7 j1 B( l8 F/ T
#include <linux/types.h>* v1 K9 n' `' I) V# A) R+ y
#include <linux/gpio.h>
5 Z. ^& `9 q, T2 q1 P( O& x" @! |#include <linux/leds.h>
' Q& N+ ~" Z- t+ G5 v. O( @- c#include <linux/platform_device.h>
5 h: N1 c+ u  ]% Q( J) t
% t* o* c: c+ T#include <asm/mach-types.h>
8 P% S; c9 [) B7 I5 z+ j- \  K#include <asm/mach/arch.h>
) |( T0 L  j. S9 O8 ?#include <mach/da8xx.h>
# _5 r2 B1 ?9 n3 N* t#include <mach/mux.h>
! ~, m, ~0 ^; M* _1 v3 b# v" e" H' J" J- A& }) y" c5 ]+ ^2 p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. T( T$ W) u8 k: {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" @$ L1 h3 Q0 C/ A. V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 i; G+ U3 `& v+ g( M7 U) \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* @/ x( p% t$ q) n5 h' s
6 F+ B1 I" F) r) F* ?
/* assign the tl som board LED-GPIOs*/2 A* S) e3 H% Z) w  T  n
static const short da850_evm_tl_user_led_pins[] = {" M/ i. N, q/ T5 F+ j
        /* These pins are definition at <mach/mux.h> file */
# b, Z; ~! |3 }+ ]5 G( T' v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 V& N+ d3 t0 D4 A2 F* h! K1 Q; }
        -16 {; l. ?7 I: e' r
};
) u) f- S1 m! I, V( Z% h5 \1 z  @' \' k  w. K
static struct gpio_led da850_evm_tl_leds[] = {
9 U) `# S# I8 I+ n1 ~) O        {- }. O9 j' o2 I! b
                .active_low = 0,
9 a' N7 s$ A2 {! u* S                .gpio = DA850_USER_LED0,* c3 n& }( y6 R" o. {" ]
                .name = "user_led0",
8 @$ A/ [9 X7 ^. j/ a3 L                .default_trigger = "default-on",
) K' y9 k  ^/ |$ D$ F! f' N        },: ^% i1 U9 s6 n' O
        {1 r' {3 @2 [) H3 A
                .active_low = 0,
( v4 `3 O" O8 g/ f                .gpio = DA850_USER_LED1,! V/ |4 v$ B0 A
                .name = "user_led1",
1 Q, Q$ {6 ], i                .default_trigger = "default-on",4 j/ a; X% A* c7 l' _: F
        },
- ~+ A8 k5 S4 O+ \' Z5 X0 n( Z7 k        {, ~7 [8 Z7 f' T( f
                .active_low = 0,4 I$ P% n6 V% y! A1 ]$ U
                .gpio = DA850_USER_LED2,
( v0 |5 R2 c5 e8 D                .name = "user_led2",
( W+ _9 r# h* Y3 c, p" n                .default_trigger = "default-on",
+ T" N' D3 p; X; |        },
  {% X& C5 ^/ `5 y6 O& w        {0 m6 S' R  |- P' o
                .active_low = 0,* u7 c- A6 g' W- M, ?
                .gpio = DA850_USER_LED3,
: G9 M% T. V# `                .name = "user_led3",! v, u1 k8 ~. u) V$ w0 I
                .default_trigger = "default-on",
7 O4 `7 i& w* d/ l7 P        },
, W; x! f( ]0 j};% d4 m& k! Y% _: Z3 A" b6 P, ]( R

0 [9 S# R# H0 O1 Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( j# [* q' y" i        .leds = da850_evm_tl_leds,
2 Y; r! H! q/ N7 w: T( S5 E        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# Q- @+ Q- D8 B
};9 m; U9 d% I( z+ M& B) p
" z( T! d- `, b
static void led_dev_release(struct device *dev)
  f& \5 i1 _6 \' u{4 k* w2 n/ d7 P& P! s- G& A
};
: i  T: @; u  V% L/ h
4 _) E' S: j5 z; g0 jstatic struct platform_device da850_evm_tl_leds_device = {
$ P2 I" E. e! s1 g( a6 q        .name                = "leds-gpio",
, x$ R; M$ n* Y: k, t+ r& Z        .id                = 1,
- `  S+ n! N9 @0 d. N- Y* U        .dev = {
; Q+ g" x) T  K/ C4 G2 R                .platform_data = &da850_evm_tl_leds_pdata,
8 Q1 w, v% o% f4 I                .release = led_dev_release,. h# r$ e) ]! X  T' e7 {
        }
" R: X" h6 j) |$ }% {4 _/ r% J8 A8 `};
) f$ m! a* q  w/ L, \% U7 o
0 v; G( x. i+ v4 ~static int __init led_platform_init(void)
$ L" c$ }) c$ M. c0 K6 c. Y{& M8 K7 ?) l& i6 ]( ]5 i( Y# A
        int ret;
/ j1 ~* b& c. i0 J4 V4 U& X1 v#if 0
1 y4 x( E& r% |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; k* @/ t$ ^# p& u5 J
        if (ret)
. R& A1 Y! Z# l4 s, E0 C( Q9 O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- ~  `% G8 f: g
                                "%d\n", ret);
) S8 Z  P, Z" C( B& w! q#endif
* R. s2 [" O  R- y" m$ _- I6 ^        ret = platform_device_register(&da850_evm_tl_leds_device);  u/ l+ O$ ~: N: O2 ?  p9 s
        if (ret)
  H" z: p8 q" Q3 k9 B% Z6 R                pr_warning("Could not register som GPIO expander LEDS");9 I1 c0 b! z" F! w# [, W2 n
        else
6 y* ^/ c9 w/ B                printk(KERN_INFO "LED register sucessful!\n");- a; v4 s& _3 E  U' k
. q; s( b0 D/ t0 k5 i$ t) F
        return ret;) D( E& W, y" u! ~) D! @4 z
}
- G* p3 G2 \4 A# A; D* Y/ [& K' D; A+ F- Q2 I4 n
static void __exit led_platform_exit(void)9 h$ \% t% p& _+ c4 |
{) i9 }2 x1 j2 @. m% |% }
        platform_device_unregister(&da850_evm_tl_leds_device);/ h6 b- X6 b# @0 R; ?

2 s3 \4 k8 @0 q        printk(KERN_INFO "LED unregister!\n");
6 O& m' {+ Z- D$ R3 O& H}
" m7 c) B$ J" s4 g
& @) G# P. _" l( C4 @! k1 |  x. B5 imodule_init(led_platform_init);
+ y5 ?7 Q5 v/ ]$ X$ m% Kmodule_exit(led_platform_exit);3 E& n+ E7 v. [4 }9 n+ e1 w0 }
# w2 r9 i3 |9 x
MODULE_DESCRIPTION("Led platform driver");( U7 N/ w( z. R4 A$ A
MODULE_AUTHOR("Tronlong");+ x# r+ z$ ^- v; v. a& O
MODULE_LICENSE("GPL");# \3 q; \& ^. ?2 u# |
8 k) D' G) W( g) g1 ]9 t  V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 16:38 , Processed in 0.037841 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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