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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( Q" \0 I+ I) u& T, W) B3 M# a0 G8 v#include <linux/init.h>+ z8 a7 n; \$ y2 _/ h
#include <linux/module.h>
4 t0 N" }6 J0 b: t6 V#include <linux/kernel.h>; G+ R( A: v: K
#include <linux/types.h>4 R- r4 q/ B4 d
#include <linux/gpio.h>6 `/ |' S" K$ m3 J1 C# Z
#include <linux/leds.h>
0 r. G. p4 Y4 T! G8 b#include <linux/platform_device.h>
3 H- c: E$ ^* U7 S. G0 C2 q/ K/ l. h' l3 h5 f8 ]/ T
#include <asm/mach-types.h>) K/ i4 g* W+ ~. U6 W8 P
#include <asm/mach/arch.h>) X% X/ L, ^- }3 P: g. H/ l# R
#include <mach/da8xx.h>
" k: U+ x9 }3 u4 r#include <mach/mux.h>
: w! V7 H. m% x9 \4 k. @* T  J5 r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 K3 T3 C5 f5 n  R, Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 L  Y/ i0 s: P" Z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 K& q3 h' x, |3 K! a. y2 g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" k( b8 d- y1 M( P2 F8 Z
& @: T8 ]" f. E3 T! [/ C: J9 z
/* assign the tl som board LED-GPIOs*/+ ]5 w- {$ ~0 g/ d. P* o8 r
static const short da850_evm_tl_user_led_pins[] = {
6 t7 R- T9 f! t$ {9 l  l/ m        /* These pins are definition at <mach/mux.h> file */- I0 R+ V# A0 E7 ]; y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. y+ o  n( Q/ q7 i( }# W7 T
        -1
8 c& y5 A6 ]5 @  c% F) u};. ^$ d6 ~- o6 W, D/ K

2 g% E' J0 G0 g  S4 Z3 z% @& ystatic struct gpio_led da850_evm_tl_leds[] = {6 b2 B, q1 b" w! `7 F  `$ }8 s% ?
        {" O$ _* i2 {7 b# m4 G! s% v
                .active_low = 0,2 z. t$ c2 K, m8 G6 e5 S) J/ F
                .gpio = DA850_USER_LED0,  c7 p1 C3 p/ V: |/ A
                .name = "user_led0",& T0 P) f  Q# Y) e
                .default_trigger = "default-on",
& R; w- n; u: p# K        },
" ^( h. B: q! O7 N        {9 ^5 L$ z. @) R9 j4 t- U  u
                .active_low = 0,4 u6 o- w8 U. U7 d
                .gpio = DA850_USER_LED1,* m6 S9 K6 K8 @: z. l& _/ J
                .name = "user_led1",. N& M" `4 G6 {2 m# d
                .default_trigger = "default-on",/ d* }4 F3 n" g
        },
# u5 M. ?' ]9 i5 Z: }# X. ]        {; r. q8 Y+ x/ R0 L: ^9 k
                .active_low = 0,
  T: l- ~$ ?9 P                .gpio = DA850_USER_LED2,
& u7 y; Z+ }* J+ p8 b; s2 q                .name = "user_led2",9 L  Y, ^- t4 V. x! k
                .default_trigger = "default-on",
3 L1 n! X! p; F' a6 K        },
" f& t7 d+ x. k7 b( |( M! x* Y        {
- Z- B' P) d3 ^. d8 C                .active_low = 0,9 {- L( Y9 b7 ~) v( Z' z+ C9 n
                .gpio = DA850_USER_LED3,
0 U  j# A, j, Y) A1 J+ I7 b                .name = "user_led3",
$ N6 W/ p6 a% j7 a                .default_trigger = "default-on",
5 G4 `  n- |4 s" o  D$ h& `% C        },
6 L' W6 {6 z/ @1 H; ]+ b};
: |0 O9 d0 p6 _: @9 W
$ b0 E/ T" ~; q2 z! ~/ ^- j8 n! t& gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  ?9 R; |: V, A        .leds = da850_evm_tl_leds,
5 _/ H) z% D) r/ u        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* Q' }* D" z7 o% t};2 e4 x: _/ }& ~% j# }4 T/ V4 B

! c! n5 s6 [/ K- o- x7 ystatic void led_dev_release(struct device *dev); ^* h7 ]+ d5 E: g' h7 u
{; U5 o3 x2 i7 O' \6 }2 G# H( ~! c! m3 j
};
( \2 `% }" e' F4 y3 o4 m
! C, u# K, a' I0 ]! p  C# _static struct platform_device da850_evm_tl_leds_device = {* v+ |8 c! }/ |
        .name                = "leds-gpio",3 a  g* |% ~/ _: y
        .id                = 1,
8 W3 s) G* A* r3 G/ u1 I0 ]: b        .dev = {
1 P$ D% s8 V# e  q5 c                .platform_data = &da850_evm_tl_leds_pdata,/ _# t  ?/ ?% P7 [( u. I' O. X. F. X
                .release = led_dev_release,
, s( u# `8 ^6 Q& g- R        }
# d6 K, x* v3 C( g};! b" u; I5 b% |  S4 G5 \

. I# e) q0 q/ X8 fstatic int __init led_platform_init(void)' w0 [  ?% v" X+ D) D/ n$ @
{
- _  Y3 e2 w$ D, C! r' }        int ret;, v8 J7 U6 j0 x
#if 0$ I* T. p2 y1 P$ i# B7 d
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 M$ x7 Z( N- R/ A& K4 t+ Z        if (ret)/ o1 R, R- x/ J* E
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 x) `# n$ ^$ z+ _1 k
                                "%d\n", ret);, D& j- S7 V! Y' d
#endif
) r: s8 Q$ \3 S3 E) q        ret = platform_device_register(&da850_evm_tl_leds_device);5 c5 r* s  S3 J, p3 a0 z$ Z
        if (ret)4 ^; {/ D# v) B- F
                pr_warning("Could not register som GPIO expander LEDS");, m% T+ k& |) D# Y+ B
        else
) @, j8 N9 i% H2 M6 k6 Y                printk(KERN_INFO "LED register sucessful!\n");
: j0 t6 P1 `1 F; q( I& w7 e4 z4 z$ B* N) d% q% B' F" @) |- d* T
        return ret;
- U4 I; h. R; M! y+ `}
: C) ?3 s* d6 s8 s- @3 v9 E8 k/ E1 i( @
static void __exit led_platform_exit(void)+ h+ G" J! t( i; p" M4 N
{1 K, o" f" `5 J6 O* t/ N* m
        platform_device_unregister(&da850_evm_tl_leds_device);( X! X' Z/ d5 H* X) {
3 O% ?2 c" }5 Q! ^+ N
        printk(KERN_INFO "LED unregister!\n");
! H% I8 l3 ~* ]8 u# @}
& V* C# u. @# X  Y( P3 L6 t& q0 e: ]9 M9 ^
module_init(led_platform_init);, q8 H0 }! S% o; X4 s+ ?4 [  `/ ]
module_exit(led_platform_exit);8 Y- W; ?( V0 V( N( Y1 O/ r
3 I; j( H6 T  f5 q
MODULE_DESCRIPTION("Led platform driver");6 l4 L0 r: d3 l- r6 B) h) `
MODULE_AUTHOR("Tronlong");; }( Q+ s, e+ y9 k* t
MODULE_LICENSE("GPL");& e; z8 f8 A% m+ D* O: }& G
/ O. W9 R) p* a; B9 ]7 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-18 13:19 , Processed in 0.036890 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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