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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ h- B' b9 R; t9 O
#include <linux/init.h>
* T+ g) j5 ^2 {#include <linux/module.h>+ E+ Y) B5 Z) X6 U3 E  a2 D. O/ ?
#include <linux/kernel.h>
6 a7 m- U7 h/ U. J#include <linux/types.h># l* x0 U: n! ^& P, {  W
#include <linux/gpio.h>
3 u4 X7 G/ l" C7 k+ }#include <linux/leds.h>
6 t$ ^, O1 Q3 z" ]#include <linux/platform_device.h>6 r' p' `' x% U: t+ g8 j
0 n0 j0 h5 B. m( d" Z
#include <asm/mach-types.h>
2 ^! v, m" i6 I#include <asm/mach/arch.h>" F; `8 a* A+ }8 d5 Z
#include <mach/da8xx.h>  }, j  Y4 @. [; y
#include <mach/mux.h>% c! c+ w/ B' i" H/ H: l
7 \/ x+ W( }% o1 k, E. _
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& c6 h( V5 t. m7 r- o, _- x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  n9 j6 O$ r7 h  W' N( s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 I% ?; m. C: B8 z" W& h! O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); C0 c9 d8 ?0 p0 m. E" a; P/ q

8 f5 m" V0 v% X4 m/* assign the tl som board LED-GPIOs*/
2 g) h# J- v8 {% M8 b% Istatic const short da850_evm_tl_user_led_pins[] = {4 X3 w" J: V- {" [( u1 r! _
        /* These pins are definition at <mach/mux.h> file */
( M0 G4 C* K- K2 U* K1 m6 ~        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# K, V" \0 P- N3 I+ h* ^) m1 G! I
        -1- U. k9 `& s/ Y: s6 m
};4 y; _2 H* e0 K# h- n9 Z  T1 O; R

/ ]: a. P# }; B/ P1 w0 istatic struct gpio_led da850_evm_tl_leds[] = {9 N6 s0 U8 u0 X1 d
        {5 }9 }& j) w5 G! m( o5 j9 M  @
                .active_low = 0,/ o) k/ \) Q# n  b* D4 x; [' \
                .gpio = DA850_USER_LED0,
5 ^1 M" ^+ \) b0 i1 Z) ~9 ^; D" d                .name = "user_led0",  H* D) d2 z( E/ c" B
                .default_trigger = "default-on",
; `$ N- `3 ]/ j( V2 t7 U' e5 o        },* e$ o9 U3 l3 a: v% `# g
        {
# C' v4 T* m+ o                .active_low = 0,5 b5 ]9 f5 e2 p. A* s
                .gpio = DA850_USER_LED1,
2 m$ s7 K! {' Z; I                .name = "user_led1",1 K- r. P1 \" t$ m" l
                .default_trigger = "default-on",
* ^- Y& V8 s2 _( k% `( ?        },- Q6 N- y# E' Q" {* x
        {6 m" }5 y% I! j
                .active_low = 0,9 k% F3 P* o  z5 [. {1 M
                .gpio = DA850_USER_LED2,
8 J' i9 W* e9 S  e' d                .name = "user_led2",- v1 d: a. G2 w1 f9 r& y* a+ ~4 b
                .default_trigger = "default-on",
# R3 \. N! ^3 p% @        },4 }4 n+ S: c2 k& }% r8 C( O. ?! E
        {2 G6 m2 p2 |4 P( x" C
                .active_low = 0,. t% o9 A3 j5 @; G3 q) a+ ^
                .gpio = DA850_USER_LED3,. Q1 l- R% }9 w( L( L! j* j
                .name = "user_led3",1 }5 q& m/ X  s4 h5 ]: r/ Y3 U
                .default_trigger = "default-on",
# f5 H( A5 t* b; a: T$ ^6 ?; |) M        },
6 T* P% W6 Q# G- }" O};
7 A( A- N4 S, i( \* M( ^, H& T
; j. G( q, M) p; nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: V! ?* ^: \& I* x2 ^5 q* l$ k2 P
        .leds = da850_evm_tl_leds,
9 t, w; ~$ C* K' c: x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 ^5 u- l- w9 y( B};% e6 O! J0 j. j! T
) C- `) s. y# i1 m) S% Z
static void led_dev_release(struct device *dev)
) w3 h" Q8 R2 M; e+ K4 }. Y( S: q{/ ]. @9 q8 v/ @- T7 c* L4 ?
};
1 `1 R% }  L) P4 B; V( w" B( U
4 y/ s( t( x) R% A5 sstatic struct platform_device da850_evm_tl_leds_device = {2 Z+ y( }* [/ C8 K$ q- x
        .name                = "leds-gpio",
. q3 W8 \! T# `; [" ]; a  e& h$ S! w        .id                = 1,
- h$ x, p6 k1 ~4 f& c) e  x        .dev = {/ s3 }. f' d# [( O% D( D- o4 |
                .platform_data = &da850_evm_tl_leds_pdata,
( q+ v) ^& R5 _0 x$ H2 o* z                .release = led_dev_release,
- d  e: l% n4 `0 C        }
* n6 J: i$ v" K! @6 Z};
& R, d; L. H) q
( T! Z- D) F/ a9 Xstatic int __init led_platform_init(void)
' ^: B5 b$ v/ V{+ I' ^- H8 v0 x+ K
        int ret;" O1 m# r$ f5 Q& h1 j
#if 0. n# [9 g" p/ b$ k- W6 O- {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ F( J& M3 H  E/ o/ s        if (ret)
7 r& T7 N) l2 X9 u& ~* h5 t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 M, ]2 [  K" o, V4 c( H                                "%d\n", ret);
: l8 a* j  x5 s$ n0 v5 M1 @! N#endif
. ?: n. W* @& i/ Z" ?/ k- V        ret = platform_device_register(&da850_evm_tl_leds_device);
* P& O$ k, j& B        if (ret)
3 `3 X" e9 n7 w9 ]8 L5 A+ R                pr_warning("Could not register som GPIO expander LEDS");
7 v8 b, }- E5 Z: R# r        else8 A; }* X* w- a; N, @7 V
                printk(KERN_INFO "LED register sucessful!\n");/ _5 R( X1 I9 U8 ?1 Y$ V
; {: b6 O7 v+ d* H
        return ret;& q' j& c' a, Z* y% Z( D- v* B
}9 K4 j& s- _) Y' g

; A" a' G% ^1 ~- ^  W& z* ~static void __exit led_platform_exit(void)$ Q& |3 V* c5 Z5 y' B
{2 d0 M& Y- n* ?) P
        platform_device_unregister(&da850_evm_tl_leds_device);2 r& E, @: a/ C0 J+ [

2 n1 G% E! A- f( I9 F        printk(KERN_INFO "LED unregister!\n");
, z; s# x4 O1 T8 ?$ J5 [) W}; s  b* v( @5 D( Q( E$ h) B9 p5 n

7 h. A' v: R. Mmodule_init(led_platform_init);
0 O8 p- _# e+ W! Pmodule_exit(led_platform_exit);# P2 E2 }% t0 i% ?
( N/ B# |# b  v
MODULE_DESCRIPTION("Led platform driver");/ O& R+ Z) C/ j% M, x
MODULE_AUTHOR("Tronlong");
. U. d% ~7 a9 o5 i* o( n% n3 r2 eMODULE_LICENSE("GPL");4 F5 Y" }9 h* n# C; D! O, L/ v
* E8 t. P1 Q. B; Q9 L/ ~# F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-19 14:28 , Processed in 0.036415 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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