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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* m3 Q4 _+ k8 F4 r#include <linux/init.h>3 l0 s9 C* u/ S: L( D
#include <linux/module.h>* x3 m4 O, G5 }. K0 ?( {
#include <linux/kernel.h>
& E2 T! N6 b8 m/ A#include <linux/types.h>) C, {+ P/ G. _; L  U% d; i
#include <linux/gpio.h>
. n1 e: \, f# U3 a#include <linux/leds.h>( H& R3 o  f( K0 N0 u
#include <linux/platform_device.h>. j& l$ h9 I7 S, o9 i0 ]

! ~! N+ C( C! G7 o/ @" P#include <asm/mach-types.h>
  a2 k7 P/ S1 r#include <asm/mach/arch.h>; l* F0 i2 v4 F) D9 W" U
#include <mach/da8xx.h>
" m& `' h2 y+ d/ [' v# X2 H- e#include <mach/mux.h>
9 D& C9 J: O+ ]- G& z
/ y, i7 y/ j7 k7 n3 U8 o& R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% i0 n4 K( M' I' d2 I* ?" ^#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) ?, `4 b* L# i) ]6 @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 z5 C7 h- ^8 }; t
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# g3 Z1 h/ y3 p
5 B8 q* U' R8 e5 ]" z) t$ v/* assign the tl som board LED-GPIOs*/
5 _. G% |! ~4 D. c9 V5 }9 |static const short da850_evm_tl_user_led_pins[] = {
; r6 p4 [* F* |9 \' v! G        /* These pins are definition at <mach/mux.h> file */
% E. y  G+ a4 Y* J        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ P: r4 B/ C! ]        -1  k* S& J! M3 Y8 @' ?" L8 N
};* _0 d4 T1 x' l
7 {4 f! C& f6 D9 q/ w* x! o
static struct gpio_led da850_evm_tl_leds[] = {7 T) X, |3 y; f6 \5 Z7 b& c
        {% [7 p5 l! \$ a% A5 M" E
                .active_low = 0,8 @+ u: r6 z; b
                .gpio = DA850_USER_LED0," V5 |! v5 a( Q9 `( Y
                .name = "user_led0",4 r6 w. _: N; K7 o+ L7 g1 V
                .default_trigger = "default-on",
8 h* A; O( R7 p        },3 _1 h- f8 y- k- p# p
        {3 r- U  y# ?( `' Z. O' @
                .active_low = 0,
2 ^7 \' d: d6 T0 e. ]2 F: z! `                .gpio = DA850_USER_LED1,( O# W* j6 f* b
                .name = "user_led1",
! J4 l3 M2 w8 H! [                .default_trigger = "default-on",
3 N/ n& b, q  S9 l( \        },
( |$ u3 ?- j% p5 r# ~7 p        {5 v: z8 N% j" j/ u+ t5 g
                .active_low = 0,
% }8 a9 z0 n$ `5 q: G6 k                .gpio = DA850_USER_LED2,
* `/ s3 M1 v" J, t! O0 c                .name = "user_led2",
( ?7 A+ F) C$ [' ^. f8 _                .default_trigger = "default-on",
7 n6 ?9 {$ R/ M4 ~  {        },
) M" J, S% T1 `' s/ f% j        {# y7 U. F4 B8 |: d" c9 E
                .active_low = 0,
. _" L/ u' Q/ _3 z' m9 H; g                .gpio = DA850_USER_LED3,
2 ~9 f9 p& [1 Z8 Q6 k                .name = "user_led3",
1 D( Z+ l" k- @" g% w: i& r" A                .default_trigger = "default-on",
; g& ]- U- A7 q! }        },8 j9 D" _( I1 h2 H# q+ x% I
};: H2 v4 E* P# ~7 X$ Y
. _) A+ f* K! N; X, `5 D0 H! k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  J$ x2 ^( Q! ~/ z/ Q
        .leds = da850_evm_tl_leds,
. Q  d7 y* Z3 t        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 `* |; P$ U0 [3 W5 b8 _};+ H8 s: C2 V0 Y, A
0 F/ m( e; q1 _3 `. b
static void led_dev_release(struct device *dev)- O( }( F6 ~7 y( h2 _
{* A$ p1 _+ u7 ^4 ~# Y3 O8 `- j
};
9 L0 i' }* P. Q/ m+ M, b9 {* ?5 I3 [
static struct platform_device da850_evm_tl_leds_device = {( e/ P2 ~& D/ l, s6 a
        .name                = "leds-gpio",& p" A4 z) w- N
        .id                = 1,. i+ L' H" l+ i" U, A, A
        .dev = {
+ T; u  a  ^3 Y9 e# b! V                .platform_data = &da850_evm_tl_leds_pdata,
, x- D- h/ I0 b, E7 J8 h, S& z                .release = led_dev_release,
8 @* n8 [4 z' Z* u0 |' Y7 Z+ U        }4 G( f: f  S1 H) w
};' T/ a+ J) ~6 p$ J0 n

4 R# D5 L* s! k0 C, f3 Z* R/ _2 ~2 Bstatic int __init led_platform_init(void)
& p# X% a4 B4 X{8 m0 l- X4 x# z
        int ret;/ O+ }1 B6 i5 N# a) j" r
#if 0
! v% A1 Z8 r2 K. _        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# g' O8 @; [! v8 u+ j        if (ret)
, G3 J/ {! y$ U: q  ?$ ~7 F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ G/ r. d  E5 a" G+ d  f7 k
                                "%d\n", ret);
; o9 s' g  R2 j* k#endif
* {$ o! `  k. }% v: i3 m( H- q        ret = platform_device_register(&da850_evm_tl_leds_device);' W6 e, r6 J3 ]( P* M' {
        if (ret)' [; I/ O4 c$ g; `" }
                pr_warning("Could not register som GPIO expander LEDS");, k* p9 V# J& e" a. ~
        else1 Q7 X; R; [# }' W
                printk(KERN_INFO "LED register sucessful!\n");
( m- \" z6 p0 [0 g. J2 ^0 o7 B) S7 i
        return ret;* o9 j- ?9 u1 Q, ]  e- {  K
}
* ~9 d7 S+ i4 h9 f6 }
3 t# h- J" O* b- s' q9 k/ Estatic void __exit led_platform_exit(void)& k! p; \: G; m$ y" }3 j
{
( Q! y  B' T; H# R0 q% n' P        platform_device_unregister(&da850_evm_tl_leds_device);
. O$ s" A, m3 l/ d& X
0 e3 Y1 U" K; S: d5 v3 K        printk(KERN_INFO "LED unregister!\n");
+ y3 z: R  B0 h6 ?3 s6 W) ]9 [}, }1 S7 p2 i( a" g/ B2 \, F  n
& |2 w# @1 z# s1 I" @" J
module_init(led_platform_init);4 b. A4 ~& |1 F' V: a9 N
module_exit(led_platform_exit);8 M$ J' A2 f1 s' B9 Q" `

2 r1 g9 Z* ^1 d3 P1 SMODULE_DESCRIPTION("Led platform driver");# {* H  w/ w6 @/ m/ l5 T$ W9 w4 R
MODULE_AUTHOR("Tronlong");
- v- M: k2 {- M3 J+ TMODULE_LICENSE("GPL");
7 A& u' W3 C- A9 M1 q
* `/ }! y1 ?" u) l  c1 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-18 22:51 , Processed in 0.044858 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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