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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. l9 ~$ X/ H% b  }
#include <linux/init.h>; M: o& p# [( E6 N' ?) ?
#include <linux/module.h>
4 p8 o0 g; r4 s1 \9 ]- Z* m' V2 d#include <linux/kernel.h>
& C2 n' k4 D5 Z  i9 |% v' q#include <linux/types.h>
' C' M1 U/ i' b1 s6 t2 @; ~  w: Z#include <linux/gpio.h>
( q, j  t# U8 l- d+ S! Y+ n#include <linux/leds.h>7 z3 v$ y: N; Z. q! g
#include <linux/platform_device.h>& H( g- s- R% p5 w
0 Y" @/ v% p/ B
#include <asm/mach-types.h>
0 Y: |6 k, v# B6 W) M#include <asm/mach/arch.h>. y# H5 M- Y% b& w/ {2 r
#include <mach/da8xx.h>9 E: e* L1 r0 w9 |1 O1 s
#include <mach/mux.h>
5 _7 R2 x; d$ a' R  o& J- b( w( |1 g, ]2 Z+ {' a) Z9 L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 k. o2 s  P' P; e#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 `1 e/ j- p9 t  z+ ^& v- ?  z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) ~8 C5 f* a! D7 s2 n9 G; @#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- c. `1 H; P/ D
4 B  f6 y( ?8 i/ Q
/* assign the tl som board LED-GPIOs*/
! ?: y* e2 p+ L! ]* A" nstatic const short da850_evm_tl_user_led_pins[] = {) t: K! m+ o1 ~: B5 j, j
        /* These pins are definition at <mach/mux.h> file */) D( i* q4 J) K' Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 D& S3 j7 s/ A( i1 F* g
        -19 T" G8 B8 A. d  w' r
};2 q1 Z* B1 q5 Z. ^2 J

4 W+ e0 m$ F+ }+ b4 f8 Ystatic struct gpio_led da850_evm_tl_leds[] = {
# p7 a" w& I. I' t+ k, Z9 L        {
- X1 U3 Z$ Z2 l; O) t$ y                .active_low = 0,
- D* l- o4 n8 ~6 W' X                .gpio = DA850_USER_LED0,4 Q. n, J, F4 J" n1 A" D
                .name = "user_led0",
2 g& w. Q0 B! G7 u3 p                .default_trigger = "default-on",
- `0 l7 @+ f2 m. X        },
# E8 H- y: o9 N$ }, [/ m        {- c1 V" I7 e& i6 I( W9 A/ x
                .active_low = 0,- s4 ^) x: A; G4 _0 A
                .gpio = DA850_USER_LED1,# i( G: Q! Q3 |& o
                .name = "user_led1",
  T. ^- J* P- x4 h                .default_trigger = "default-on",
' [1 Z/ j# Z* o/ [' S4 b; f        },# ~7 h/ M/ I" ?) k- T# c7 z6 ^  u5 {4 a
        {
% t1 U$ T0 {  }+ n/ p  b" ?                .active_low = 0,0 `0 q& I! Z+ M4 l7 U- W
                .gpio = DA850_USER_LED2,
8 }! U( {2 ]' g( |                .name = "user_led2",0 B, z( n' J8 W$ T+ b! D
                .default_trigger = "default-on",
' [, p( @. c5 l$ J        },: W" k* q. _# t) K$ p
        {+ N, e( e- f3 H! p+ Q
                .active_low = 0,
3 L( T6 [1 ]# V1 P                .gpio = DA850_USER_LED3,3 ~( ?7 t2 E7 Y, u  z0 o. ?
                .name = "user_led3",3 }* H* E6 j* b* W! @3 |
                .default_trigger = "default-on",
. A- S0 N4 O; o* s        },
" p+ K/ \2 d& c/ K$ B7 g1 T  V};
9 L) t; J8 d/ {3 [7 R
1 _2 k) I, H7 ?; v8 \5 J! C8 O# [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 ^$ M$ B" Q$ ]4 o* u9 ]        .leds = da850_evm_tl_leds,' ?) N. n- h* b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; c' d1 c$ ~' n& }4 i
};9 v% j! R' G/ [! V) B; ~8 @% z
- N" T/ A' c" F* u
static void led_dev_release(struct device *dev)) v% t4 c" b" v# n* p( j5 G1 t
{6 X3 A' @0 ^6 J/ L7 D0 i! i
};/ {  l' T% t9 U$ r5 Q6 q

$ Z8 |8 z' w! {; estatic struct platform_device da850_evm_tl_leds_device = {, @% A- T# y' Q  }, b- F# ~
        .name                = "leds-gpio",
( b* h; w! W. p& `& N        .id                = 1,
6 |. j9 m3 `2 b+ O9 `+ S9 k        .dev = {
& X3 ]% h: Q8 R0 v: B! B9 e% a                .platform_data = &da850_evm_tl_leds_pdata,
9 e3 i; ?/ G) i7 s6 Y" G                .release = led_dev_release,) @9 I+ V3 B/ G7 J
        }
& ]# q# [4 Y" H# b+ ]};
) B& A/ @9 Z# _  x4 z5 g0 z9 G
+ U8 ^( x3 S3 }9 gstatic int __init led_platform_init(void)0 n! }6 h) B- g2 y' K$ p5 v5 E
{
" W$ p+ V( m6 W1 ~4 R1 y. A        int ret;$ I: |5 ^6 G% r
#if 0
" w0 o! x; y% {$ L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! K& D/ P+ P: w3 N4 c1 {5 g
        if (ret)* S( f$ r  |. J! e2 d7 P
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* j& a* O0 G% M4 l, J                                "%d\n", ret);' z; I& M0 j2 G
#endif
6 r1 k: z( M6 f  }2 O        ret = platform_device_register(&da850_evm_tl_leds_device);
/ k$ d5 D# J( a) b! v# G8 E; i        if (ret)
9 f6 }% ]0 k7 k8 T7 s                pr_warning("Could not register som GPIO expander LEDS");  x, ?. [% O* c  I, F
        else( x$ s) t* C' ]
                printk(KERN_INFO "LED register sucessful!\n");
; u$ y3 \, Q6 i0 M2 }
2 u) e$ u& |5 v# G& ~* b        return ret;) ^' [1 @% I* ?. \/ U' s  z
}
' {: G" m+ i( d% e, [2 H" B# i# O, F  R$ h2 R1 J1 I* E0 q
static void __exit led_platform_exit(void)/ p0 {  w4 Y  D. S5 h
{
2 ?& U+ y2 S' d( @" A1 t" D        platform_device_unregister(&da850_evm_tl_leds_device);
, N# P+ T8 O9 Q% w" R5 u2 \+ `8 {5 S4 x
        printk(KERN_INFO "LED unregister!\n");7 B! E; g) N7 m" t3 f: @
}0 m) z4 ?6 N9 t
' O  u0 v# x( y1 B
module_init(led_platform_init);5 ?% [' t- i5 h6 L% R% s
module_exit(led_platform_exit);  {* K4 o% _  l" n& J7 o! C
  s7 U5 R" p8 c* j+ \9 j
MODULE_DESCRIPTION("Led platform driver");
3 C6 n# v' o  ^5 D4 Y8 d; MMODULE_AUTHOR("Tronlong");1 r# O3 x8 y6 E( B  d4 P
MODULE_LICENSE("GPL");
) H9 r( R& s5 ]
) s* x3 @3 k0 t) b. ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 10:41 , Processed in 0.036505 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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