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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 m8 d8 r7 p, J
#include <linux/init.h>
& T! s# ]3 S+ d3 x% \#include <linux/module.h>& ]3 [2 Z: N2 O2 q; d/ D) z3 b
#include <linux/kernel.h>
  X/ j2 M" d: i2 f" [#include <linux/types.h># Z3 i! F! ~; j# t
#include <linux/gpio.h>, X' f$ j* s2 ?! b. a9 L; F& o
#include <linux/leds.h>
7 w2 l, k+ {6 i* N$ H#include <linux/platform_device.h>
$ N% v: b" w3 k" ]. y5 ~0 k( a- z: ~7 \- k4 u2 Y
#include <asm/mach-types.h>  d: G( l3 _, H6 W# X1 }
#include <asm/mach/arch.h>
  ~+ X4 v$ c, `3 h( O#include <mach/da8xx.h>* Y4 z9 \2 `8 Y, a2 u! o$ J
#include <mach/mux.h>7 ]) }& \5 K+ g' |+ d, k

1 I1 Z9 s0 C" U. b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 r: M8 l9 n7 J+ @( f7 W/ O#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 D  x9 d% e  x( a
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& i; q. T1 l/ Q, p5 H8 c#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, s. _/ J" A2 w6 w) N" i8 `  m& y  k* c% S" C; _- l; y
/* assign the tl som board LED-GPIOs*/
. x( x- L. q! D9 Xstatic const short da850_evm_tl_user_led_pins[] = {
, f9 V* {& V/ Z- \  [$ x9 B: \        /* These pins are definition at <mach/mux.h> file */8 U& n7 n, k! y+ ^- O' O
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ N0 P; T2 r* v# _3 [8 D        -1
; n8 P0 n! y+ e( @% O& ^. d) p9 P};# u( F. W# C* F0 C4 T2 a

, i4 ~% D$ U& ?4 f" z# F' Dstatic struct gpio_led da850_evm_tl_leds[] = {( ?1 X" G+ v3 U
        {0 j9 r4 X) m1 u8 @* v/ Q2 ~
                .active_low = 0,: r: Y8 z8 E  ?/ f' q9 Y# w
                .gpio = DA850_USER_LED0,+ P5 n% ]) V% n6 i- G+ @. L; O2 d
                .name = "user_led0",
! O: G# `7 V( ]( b                .default_trigger = "default-on",
( _6 E0 A1 W5 g4 g& i8 |        },. Q8 \; \% R1 L6 q
        {6 l. \6 I  u7 i1 d8 l: Q0 H
                .active_low = 0,
' G3 l; W1 M8 {1 j: L. O, A                .gpio = DA850_USER_LED1," a% ~# \( O5 j) }3 W+ m9 C' s
                .name = "user_led1",9 Z! k: E0 a# \3 P, z5 N
                .default_trigger = "default-on",
; T8 N2 [' P! s+ o! ?        },
% r. ^: U- k# u7 [        {" L' c# F* h& T, A2 k+ K
                .active_low = 0,
- `) S, M8 P/ C) t                .gpio = DA850_USER_LED2,
% m3 ]- w  w7 R# ~& c/ q                .name = "user_led2",
0 b/ m& W0 I; _: d( f                .default_trigger = "default-on",( L- Z" L- @" n& R& k5 J" u. W, B
        },
5 B/ w* ^: R9 r+ `" e' D        {
( W! E0 U' i; o; q4 l! a1 ?) a                .active_low = 0,
/ Y6 c0 y* I6 C" B  H                .gpio = DA850_USER_LED3,8 D/ E; t$ e+ J, g( c% {
                .name = "user_led3",
  n) \" [; S9 z- F: z1 v                .default_trigger = "default-on",
7 V) x' m% ^) y        },/ ]: R+ g; k$ W8 ^6 w0 q
};
8 ]2 n3 I. O; {
! x0 g3 J6 Y4 Y- L9 fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 |4 G2 |$ r# n% L0 Y
        .leds = da850_evm_tl_leds,
; p( O8 b  t5 L. O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  k, q: u  z# n/ l$ x0 `};! a2 q. J* Q% s8 U
: w3 ^' f* f! c+ a- w
static void led_dev_release(struct device *dev)
# y$ s. ]5 d" t6 Y9 m  p: T1 b{' l3 r" l. i& ?4 q0 B0 o2 }
};4 x! g8 C9 z8 s; j7 }6 p* d2 d
0 \: S/ h* f. e/ p/ s; F
static struct platform_device da850_evm_tl_leds_device = {
* x2 a! s. m3 H4 y% [        .name                = "leds-gpio",
/ s5 T. w, o5 h% {& r* b) [        .id                = 1,
$ n) }' W4 b. S' ?% Y7 S        .dev = {
: q+ p2 \' l) x( g% s# K) H5 H4 ~                .platform_data = &da850_evm_tl_leds_pdata,- h! ~) u4 V" _. V) G5 Z: F8 Z3 n
                .release = led_dev_release,# {- o, z) E/ n) K
        }& w% I4 l- ^, W/ a7 ^
};
! t) v& o5 A0 A0 t/ V  C2 o/ z# V8 K5 S6 I
static int __init led_platform_init(void). w7 B6 a5 E! N0 N* J  P& c
{' Y. n$ y" \, J( v& D8 S( ]
        int ret;" z3 J2 j! h0 }
#if 0* O" U# N3 U0 X" t) Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 _  J  a. F# g, i0 L- O5 U: x        if (ret)8 }& t  w+ i; o4 [/ s0 v0 X+ R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& d! ]* L+ r8 Y5 }
                                "%d\n", ret);
  K, R7 A  C% K#endif& s8 I3 y$ c& t2 g
        ret = platform_device_register(&da850_evm_tl_leds_device);6 v4 }0 ]3 U6 p0 ^2 X, |
        if (ret)6 f4 I* Y' K+ i+ a5 K' l
                pr_warning("Could not register som GPIO expander LEDS");
7 H  k: J$ F/ N/ S% A! H        else. w1 L! c  K' B9 U+ x9 v
                printk(KERN_INFO "LED register sucessful!\n");6 t' e7 |  J$ d6 |3 T' J

5 _& n# Q4 D8 W+ ]2 ~  p+ i0 ~        return ret;; d' M- A# n% @4 v
}' ?% L* ?& b/ J+ f4 k7 P& T
0 G* l) b3 Z$ u0 b7 Z+ `
static void __exit led_platform_exit(void)! ?6 i+ t3 E" F9 V
{  j  w9 c# E0 [# d- n. n
        platform_device_unregister(&da850_evm_tl_leds_device);
/ I, {' k6 y+ R4 C+ ^! J
- q7 Y" ?5 R! X3 p6 t) P. ~        printk(KERN_INFO "LED unregister!\n");
/ x6 |1 J# T8 L0 C/ {( x- N2 _7 o}; f% Q; @# T8 ]

6 _* N1 Q- _# _3 kmodule_init(led_platform_init);
7 B, l: b/ P) }% n, R+ n% _& wmodule_exit(led_platform_exit);
% n' t# O: Z; j, v
7 J, M2 f1 [% C  ]" [2 S  o1 _MODULE_DESCRIPTION("Led platform driver");
3 v# c2 H% E" KMODULE_AUTHOR("Tronlong");
9 G' Y/ F. p# jMODULE_LICENSE("GPL");6 i% l/ U% |' f' `( q; F5 L& ?
, O+ i5 x9 n6 K! N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-13 00:03 , Processed in 0.039221 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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