程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. c8 E* W7 z, D9 N: T5 j) H#include <linux/init.h>
6 w( x! M) s0 I#include <linux/module.h>6 ^. @/ y7 u# \$ z  G
#include <linux/kernel.h>
: ?; V. P  _' S& u#include <linux/types.h>  K4 t5 [% P' P+ N
#include <linux/gpio.h># N2 N) Q4 k# ]* ]; v' ]0 ~4 j
#include <linux/leds.h>
, x+ k% a3 c; d( z0 c% p#include <linux/platform_device.h>
+ s" H. b7 F) P7 t+ U4 P9 p! x
9 d. |( O4 R4 V% u0 R# |#include <asm/mach-types.h>
- g% {8 F6 t6 ?1 n8 Y; E- u#include <asm/mach/arch.h>
2 x7 {! H8 \* v" ?. ]#include <mach/da8xx.h>/ ~$ l( j# S3 K8 a" M+ S2 @3 G7 x: [
#include <mach/mux.h>; n* K. q" K4 ~5 M0 b4 K5 _
* s% R. P. [8 @
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, ~- J9 [9 b5 A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) y/ e, B& b# Z3 c2 O$ m#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) S- L8 q% S. O; u  n. @4 C1 ?5 u#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! g: ^6 L( f' q% z* |2 a5 u* v2 p' x3 B
/* assign the tl som board LED-GPIOs*/! c- i# b! P" A/ K' |6 }+ y, w$ I
static const short da850_evm_tl_user_led_pins[] = {% V; ]( P+ M! N% _, P2 M2 h0 k5 B
        /* These pins are definition at <mach/mux.h> file */4 I0 F3 _2 S. B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: A6 m, |# f6 W        -1' Q6 k4 X; `" c% ~! ^" ^( V9 f
};
7 ~. c: E5 t9 B
! E- k) w- I0 D4 @+ e" tstatic struct gpio_led da850_evm_tl_leds[] = {, _( }" ]8 r: E$ m* ]' Z
        {
* O% l9 {% c) D# r4 O                .active_low = 0,
$ Y6 e5 h4 j) A  U5 O8 i+ D1 l                .gpio = DA850_USER_LED0,! Q/ m- }2 z* L& y% ^  Y  O
                .name = "user_led0",
* l! L; a9 z5 z; m                .default_trigger = "default-on",
4 E( _' d" `: n: ]7 L        }," M& @+ C' e3 r; P) s. U$ c2 R( @
        {
: p2 u1 U+ O- n9 {$ `: N                .active_low = 0,+ }2 L; R; P! c% A
                .gpio = DA850_USER_LED1,& ]* x7 X, u: Z6 H- U- G) z
                .name = "user_led1",0 b( r3 R4 |; K# r
                .default_trigger = "default-on",$ a, Y, x3 M# ?
        },
3 S7 E) C5 z2 R" W# ^8 ?        {% q/ D2 d9 x- X7 x0 Z" i" l
                .active_low = 0,, c  j# l3 D/ s" j  V5 T
                .gpio = DA850_USER_LED2,
! I4 b- h% i! f* C7 U/ B                .name = "user_led2",
0 X. \: J/ F$ `2 Q# \( K                .default_trigger = "default-on",( B* W/ S1 T) @* L# [) ]
        },. O3 s5 v) ~) k4 K
        {
! Z  u! m6 W0 G1 l0 l0 G- x" H                .active_low = 0,5 \5 _. @# Y1 Q. Z1 s
                .gpio = DA850_USER_LED3," }" E/ A6 K1 L
                .name = "user_led3",
1 g- u! z  E( Z9 U                .default_trigger = "default-on",
& n4 z. B0 a5 @' D0 E7 c2 Q        },8 F# n: w1 G+ S( }
};5 L) r# T! k* L5 F; _8 U

4 u' M$ f. O& Z7 Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 h" z# u9 R' v& Q        .leds = da850_evm_tl_leds,7 `/ @" U, q7 ?. a
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 E( _; D6 Q: f( W# C) j3 w
};
9 a" ~6 Q* W1 o. Q% [
' J4 |' I5 m5 c  ]static void led_dev_release(struct device *dev)
& b0 `: O! T4 V6 m4 |$ n! W# V{4 B5 u  z8 h( p8 G6 }
};
: z" z6 a  l2 |5 ?0 k) C( R
  ]1 ]% [9 U4 |, f3 I0 T  O) jstatic struct platform_device da850_evm_tl_leds_device = {
2 _7 m. U9 r6 A4 ]! j1 a5 O0 \        .name                = "leds-gpio",6 ^. _. R& e4 G4 j7 d
        .id                = 1,: m$ Y( T* e0 m
        .dev = {
. ?, U+ f/ N9 U/ P4 o                .platform_data = &da850_evm_tl_leds_pdata,
: Y- z. t. c% u& H                .release = led_dev_release,( n1 e6 ~0 Y6 H& b( j  z% P
        }  k2 j; b/ o; X
};3 E- |: K: x" }# j/ F& v1 \% T. z
! |! x# R/ h: P9 w' E, Z5 u
static int __init led_platform_init(void)( S2 J/ T3 V, j
{* }" [, ~! g& _3 l2 g! Q; e
        int ret;. f1 R' b3 A: l4 |4 _" \
#if 0
) h. i& t( P  Y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( [! K. H2 Q- R6 ~" t6 R  p        if (ret)" e) h" |2 w* h" o& {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 ?+ J' I& J  w( A) D# Z3 _3 Z) m. H                                "%d\n", ret);  L3 A: _' P% }: R" G, m1 C, I0 l
#endif
: ]9 Q3 o0 _* L        ret = platform_device_register(&da850_evm_tl_leds_device);! _* C) C5 V6 g6 x6 y: n
        if (ret)' b9 U/ m1 P2 [  s3 x3 U
                pr_warning("Could not register som GPIO expander LEDS");' n$ O! c5 z, ?# J5 U
        else
/ P) Y2 _0 G: s* p! x6 J9 G                printk(KERN_INFO "LED register sucessful!\n");2 N: T! j  @6 i" u

% I% Z' K0 C9 z% j: t        return ret;7 h1 K- I8 q& N) M3 `- Q) r9 M7 C# M
}
, _4 A" l0 D; a
5 g9 v& |: I5 a' n5 J2 H5 @4 W& wstatic void __exit led_platform_exit(void)8 G3 k8 z3 C2 L! Z6 K2 b
{. }' ~6 L3 J! ?, t& ?. T8 j: m
        platform_device_unregister(&da850_evm_tl_leds_device);; m9 w. }& B8 Y, Z
3 Z; U7 L3 Y3 X4 w. B
        printk(KERN_INFO "LED unregister!\n");7 y* M3 n* A# a+ i
}( A& `% c- M! _

0 H' Q4 ]6 Q0 |7 Y9 H5 I3 K: xmodule_init(led_platform_init);! r. w" g, l: _+ D
module_exit(led_platform_exit);
' c% P  e1 c( J$ J8 W# P7 r9 C
MODULE_DESCRIPTION("Led platform driver");
* |" `; K) F  c5 {MODULE_AUTHOR("Tronlong");; H3 r" {8 j' x7 O# B
MODULE_LICENSE("GPL");( M, u- A& l3 W3 e
5 k8 t3 l; T- ^7 e* O' L  @* {5 x7 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-4-2 01:24 , Processed in 0.038696 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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