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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 k$ q; Y8 n- ~. _5 _! s+ G
#include <linux/init.h>; g- e  y" C8 F% m# N& [2 W1 n+ s
#include <linux/module.h>
' S& h. h$ g; V#include <linux/kernel.h>
7 y9 b# K9 |4 K#include <linux/types.h>  E5 Z% n( U: }# c7 b; h6 T9 X+ d& n
#include <linux/gpio.h>
2 M5 D; ?( O1 b9 S8 V. L#include <linux/leds.h>
+ C! R6 b# k- S3 }#include <linux/platform_device.h>9 L( l, y! o' \7 E; y' p8 J

9 e1 X3 l1 H$ @#include <asm/mach-types.h>
4 t& T8 D6 s8 S$ I. J& ~#include <asm/mach/arch.h>
" o+ N3 Z$ h  ]4 O$ b' \#include <mach/da8xx.h>
/ O9 Y- l: Q" [/ \& d#include <mach/mux.h>
& p' u1 O5 Y; x+ F0 \: I3 [/ N! V! K, d( }7 Y- ^$ I
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 \0 k+ ~4 w' A2 N+ ^; @# k! c, f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ e. D1 ?# r) `% M1 q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* L- `! `8 W( t
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 ?# o& ~5 Q" p8 [3 N+ D( O. d, H8 r1 @" l
/* assign the tl som board LED-GPIOs*/  P" J+ l! D5 ^# t, [& \
static const short da850_evm_tl_user_led_pins[] = {
, o/ H, B2 s3 \* `/ C( F% g# Y        /* These pins are definition at <mach/mux.h> file */
  ^5 Z1 }9 L# H; {" |1 G" Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 F9 ~( F3 J$ [2 y. b! d, Z% [        -13 I! g  _. t7 d$ C: M& M' s0 C1 @+ U; n
};
+ i2 D* O0 [8 w% H$ {
% |) v9 z2 @  l) @+ i3 p6 |% W: ~static struct gpio_led da850_evm_tl_leds[] = {
, P" Y, m$ G# E8 P        {
- p% Q3 B/ P! `  O, L                .active_low = 0,
0 `& q! p3 ?( k9 ~                .gpio = DA850_USER_LED0,
: [3 J" r) Z1 U# P$ y+ A                .name = "user_led0",* q, G/ }, o# }" L1 I7 t1 N
                .default_trigger = "default-on",2 A! q3 K( `: g+ F
        },( F- y/ _% Q+ L) A
        {
! X/ X' d9 e  _/ o) m+ T0 _; Q                .active_low = 0,
' o$ N1 V% B* z6 z0 e6 f; B                .gpio = DA850_USER_LED1,
% s- h/ t8 X, Z. S- g! W                .name = "user_led1",
5 L" }, Y+ ~8 V8 f8 h+ v9 A9 V                .default_trigger = "default-on",, w6 q4 b3 y! S- E* U6 v5 r
        },
; U( }; k% Z! u0 w4 G: |- c        {
* p/ |! A5 e0 s. o% r* b                .active_low = 0,: @6 ?( n4 j* D5 q
                .gpio = DA850_USER_LED2,- F2 {" T; N4 U! A" L; ^
                .name = "user_led2",
0 I4 o# N! f7 Z                .default_trigger = "default-on",* [6 Q; s/ V; G, P7 o
        },
# w3 q, T# l8 n$ ^        {# D" R3 e# F: y- C0 S+ B
                .active_low = 0,0 Y( \2 }6 s6 N# s/ o3 {1 ^
                .gpio = DA850_USER_LED3,; p* O% c$ N' ~5 k/ s: a2 e
                .name = "user_led3",
5 ~1 W, i$ J- \% C" c* R                .default_trigger = "default-on",! W1 W9 O6 p6 f8 B" ^! v" t
        },
3 L- k3 d! D1 E. O};; M3 |. i# ?* b3 F  |; m
7 n+ t1 S* R3 F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 b4 F, o5 P5 ?& C1 d
        .leds = da850_evm_tl_leds,' F, t- c" j6 j5 Z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 G! ~. G- j8 _: \% X  I
};
4 s8 u( M* k% w7 k
! R$ h! H; C# S1 u$ M3 qstatic void led_dev_release(struct device *dev)
& }9 [; t8 ?9 H# {' V{  i, R& M- ^& i% r- E6 k
};2 s8 y; d: @# }# |2 D% N
0 X8 k7 M3 E$ A& }3 A. h( M3 ^
static struct platform_device da850_evm_tl_leds_device = {1 i8 W# W( K; k2 g' U$ Q  X
        .name                = "leds-gpio",* d: r  f! k# Z) C6 }+ j/ ]
        .id                = 1,
6 [$ ~' C% A" s3 \& [, u; r7 Z        .dev = {7 E7 r0 a$ Z  z! A
                .platform_data = &da850_evm_tl_leds_pdata,+ j0 u7 ~+ i" N- Z3 M2 b8 D
                .release = led_dev_release,
1 p! |* g; Q9 E( l2 v  s% u; J        }
) f# T! u! X, V3 o};
# h8 J+ t0 y4 W1 G; _& n7 |  j1 [7 x0 L- x) B- c
static int __init led_platform_init(void)% c# x( [+ w+ l4 k" j
{
7 Y$ c; `0 j1 I( K; c        int ret;
" `/ I6 q  b  _- d2 W& V#if 0$ @! b3 f% j, {3 I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% }1 @! m" Q' O. A        if (ret)& c5 k6 o: l$ ~  ?* J& d
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! J7 v: O- l5 f$ x
                                "%d\n", ret);
1 O2 b! \9 v! M5 g  f- e#endif' a) s# k) a: A3 D9 Z
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 O: d- @$ c2 V" b5 D+ W7 ?! z        if (ret)
  E$ }) M( `# D) k                pr_warning("Could not register som GPIO expander LEDS");
+ V* Q. |2 |2 F* _0 R# l. F        else' w" R2 R1 J' j/ z9 k, I" u
                printk(KERN_INFO "LED register sucessful!\n");5 P% u+ A6 r5 m; X2 l0 Z0 ?
* N7 F. l4 x8 N$ B- `: P
        return ret;9 o2 F  h* L* K+ z% J0 W
}
( m) N( h4 P( k* p. s# t, O: |9 g# [5 L
# L0 Z  E8 x, a6 C) X: L" y) gstatic void __exit led_platform_exit(void)
" ~5 D5 q& w- H/ h  M{: {" f- Z- q& D
        platform_device_unregister(&da850_evm_tl_leds_device);
% l' n. M2 r! ]' h5 i% c
9 I7 D: K4 h+ }3 \0 _2 g$ h5 R        printk(KERN_INFO "LED unregister!\n");( ?2 v: v. a9 P' F  F
}2 T+ Y. i" V9 V$ b3 T1 A, e5 k$ M) ^

& h3 Y- T+ f  U9 S! N9 a( l+ \module_init(led_platform_init);& `% h5 C( c; q& B
module_exit(led_platform_exit);
( ]0 b5 }' Q4 h+ u
+ Z* B6 x1 @: ?4 EMODULE_DESCRIPTION("Led platform driver");
+ o- q, w: p, G% G$ l' tMODULE_AUTHOR("Tronlong");/ y% K' y; y* v+ Y4 E
MODULE_LICENSE("GPL");
3 E/ @' n; I: ^/ \+ O. R) |8 e+ q4 G7 q6 [% b" ^# s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-19 01:33 , Processed in 0.038699 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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