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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3736|回复: 0

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2018-1-19 19:02:07 | 显示全部楼层 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ S" K( T4 g) |3 u/ Q3 ?#include <linux/init.h>0 _# O) H3 t) D8 h( o! f
#include <linux/module.h>
2 L- z& k5 s. l1 s#include <linux/kernel.h>
$ V/ h6 F' q7 t: c& w# k#include <linux/types.h>% e: i2 ~* q+ K; ]" Q, D5 K" R: y7 h
#include <linux/gpio.h>
& M0 q( L" w8 _& q+ u#include <linux/leds.h># L, v# Z& d, n+ g# d. Z/ a
#include <linux/platform_device.h>
( [/ W  v* P1 N5 s7 B4 G0 }. ]% `" l- s* _4 K- d) N, H
#include <asm/mach-types.h>
* J% i& s$ ]% g% o2 m5 d#include <asm/mach/arch.h>4 F. |. D# \8 H( g4 k5 o9 m. ]
#include <mach/da8xx.h>
/ q: Z/ r; N' c# X- R8 A( |: R#include <mach/mux.h>
; w- O" N( F0 x$ Z! p( X7 E( j0 N7 K& G% C9 z5 Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* I' K, P6 j" u. h/ `$ R, |#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& }! ~& T4 D% Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 V- n" ]7 E( N# ]& F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 f4 z  `6 G0 {* v% ]: t. v/ |' k* V" A
/* assign the tl som board LED-GPIOs*/
1 @; {6 J0 |) \; ]+ wstatic const short da850_evm_tl_user_led_pins[] = {0 q8 Z7 Y/ Y$ }1 J. N6 G
        /* These pins are definition at <mach/mux.h> file */0 _1 z7 P$ D5 l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 W, R- P: S' o  I/ w5 e9 p        -1
7 F! k9 Q: X" t; t1 J& X6 ?5 q};
! x) ]5 J( u( \9 [: b6 g9 p/ x$ _3 q9 ^
static struct gpio_led da850_evm_tl_leds[] = {5 S, [1 B) [8 M
        {
5 q5 n3 }5 a0 X+ h                .active_low = 0,4 N& L* w' O4 T9 Z0 l! m
                .gpio = DA850_USER_LED0,6 T. Y, d! L8 g; ]+ o- Y
                .name = "user_led0",
' D( E9 R- z- A1 Y' k+ @                .default_trigger = "default-on",( P5 d1 \, M! ?1 m0 ^, |9 r
        },
8 t/ w! S; Y( H8 g! }- o        {6 G1 u! `0 I; f6 q- G
                .active_low = 0,8 h6 \; @# A9 }3 ?
                .gpio = DA850_USER_LED1,4 m( @6 I! w* h- n6 A1 m
                .name = "user_led1",  c, b  r/ Y% N
                .default_trigger = "default-on",4 i0 C; k5 e, l. ~3 g7 G( ~
        },
, z- o3 c1 H1 z7 w0 x) G, @7 P        {/ a  p! h9 M: i9 q$ D7 ^
                .active_low = 0,
! |# T/ f  P. X                .gpio = DA850_USER_LED2,: [9 ]4 K- j% p6 O8 r2 n( s
                .name = "user_led2",
2 y# G; G2 V8 j7 o5 T. t' y                .default_trigger = "default-on",9 M: V  ]/ t0 z. N  r# c3 z! {
        },
5 {) H4 [. E, h+ o5 ?" i7 V- ^( }        {
* f7 g% @1 B$ W1 X* v# O6 W                .active_low = 0,% j8 C9 A5 ]( G# d7 G" Z- |
                .gpio = DA850_USER_LED3," B9 R5 g# f9 \" c; q) r
                .name = "user_led3",
. n# v* `* F$ L                .default_trigger = "default-on",% u8 Y, E( S0 K; U
        },
/ Q8 Z: e. Q) c' X$ x: O2 ~};
3 X- {0 }! U# m5 f$ J4 n$ {( X; v
1 q, A0 u) i/ k/ ~; }3 u1 C. E; m8 s/ \static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 G, Y( G, ^9 j7 N5 b- |
        .leds = da850_evm_tl_leds,, g3 d8 e9 N. v2 j  Z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 g3 M; v3 T/ ~( ^3 x, Q$ k
};; H9 L+ W) o/ O2 N, P; O" }
) M+ L4 @. ^7 u9 |' Y
static void led_dev_release(struct device *dev)
" N, L( O$ N' b, K! s{
. k: K' K% m- S4 G};
4 N" }: {: s; p+ A6 M
4 y3 _/ g+ e9 G8 a: wstatic struct platform_device da850_evm_tl_leds_device = {, {4 L! Y6 a; K5 w; w; c
        .name                = "leds-gpio",4 U6 k3 I/ K7 x  u5 m
        .id                = 1,
: O1 E3 m9 t* ]1 Z$ D) {        .dev = {
1 f6 j9 f8 [1 `: P, ]                .platform_data = &da850_evm_tl_leds_pdata,
; D  `& `) V6 ]8 Q, n                .release = led_dev_release,
: i8 h+ J' L; h: u        }& p0 ^* v/ z1 L9 c! b
};
+ G3 ~' k. s3 d0 h4 A% H
$ x/ T0 Q4 {) n# ?) }# l0 R. fstatic int __init led_platform_init(void)- \0 ^. Q, r& B+ P; y8 s
{
7 f: a* h: S5 q" \2 |' R/ L/ D        int ret;
. a7 P; V* g' p. j#if 0& P/ [* b+ K9 i  t" h2 T6 m; R0 A2 p$ k3 a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! ~5 }+ {4 ?. J& Y8 _3 ~; i+ \
        if (ret)3 [" S6 j1 T$ ]) a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 Z/ i- ?# c3 p0 ^$ O                                "%d\n", ret);3 ~$ m; ^4 a2 D* }
#endif
% p/ t# V, U% T; }) l# E        ret = platform_device_register(&da850_evm_tl_leds_device);
7 F' G. _; h* g3 G" h# Q        if (ret)
1 N( [, c5 a% v. _  |                pr_warning("Could not register som GPIO expander LEDS");! G: E& l( v- v+ O
        else
; R, L9 ^& o4 J. ?                printk(KERN_INFO "LED register sucessful!\n");& w: Z3 w6 m+ q# f

+ x- u; R: v" l        return ret;, P- v' R, P6 }3 r' D) p9 Y6 Q9 e
}
% f) h. P& y, N. N1 B
) U6 H# m/ n" u7 J( i6 E( j% Bstatic void __exit led_platform_exit(void)
5 z/ T( ]" J( o) Z; V# p{3 M3 y+ |0 A+ m% @) H- l) r& L0 p
        platform_device_unregister(&da850_evm_tl_leds_device);
) \3 T2 f! r6 d2 E1 ]
) B" b2 q! M5 g7 s- z. v        printk(KERN_INFO "LED unregister!\n");
" I% }+ p! T1 ~, L6 b}7 {, n0 [9 e5 i4 }4 t/ v4 E2 Q# n

+ ^  K/ ^; J2 @7 @# X+ s. qmodule_init(led_platform_init);, F5 R" w& G& L# T. V( h* j) q1 L
module_exit(led_platform_exit);
2 \5 X: W1 q6 I3 O- X# `* |+ y6 @' \' W* A9 G
MODULE_DESCRIPTION("Led platform driver");; |7 Q/ Z4 e" ]/ w; t
MODULE_AUTHOR("Tronlong");$ I; t/ F. o) ~6 x0 V
MODULE_LICENSE("GPL");
  f: h! j: n/ T4 p8 n) r+ {2 w  _" x8 i; U6 M) y. n6 [/ z
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 16:48 , Processed in 0.042535 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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