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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 @* a5 G. K3 f) s. l9 e# w  t
#include <linux/init.h>. T3 @" V! E/ C
#include <linux/module.h>
. j0 ^, h! q- k$ A. d: a#include <linux/kernel.h>
) ]) O  ^) i7 W) A# X' `% L# M9 B8 Q#include <linux/types.h>
* c  ?' @# l: W#include <linux/gpio.h>
/ f$ i  ^8 m) g( ~: h) t2 W6 o+ }0 I#include <linux/leds.h>
8 j6 H6 }* W5 z#include <linux/platform_device.h>
1 y3 b* s$ s$ `; z: M: v! A
3 D0 |$ z+ O  m' q3 X8 r; e#include <asm/mach-types.h>
5 l% q; A- x* \4 d#include <asm/mach/arch.h>
, V" H: b% t. c; T  O#include <mach/da8xx.h>5 K& ^- K- O+ r- W& P; U- S
#include <mach/mux.h>( Z$ R& a, O3 _
; `/ I) X0 H, u8 ~' `
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 J! L3 V2 t& f+ X0 l; U
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 c0 d, h0 o. i7 f+ {) l/ N7 L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" E+ r+ F2 L- R0 N/ o2 d# |#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# N" Y/ Y/ [0 u# p+ o% |1 D. q8 r' l* @( e+ i4 d
/* assign the tl som board LED-GPIOs*/0 m9 _$ K" g9 c7 m7 z# Z' w9 R* Q
static const short da850_evm_tl_user_led_pins[] = {' [0 p+ j) p' ]0 B: v
        /* These pins are definition at <mach/mux.h> file */
6 a$ T1 \+ J5 Y; k5 |* _        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. ^8 O" E7 Q/ n% R+ Q; U1 H8 v; h
        -1
  j/ {8 p3 M- b- \) U};
8 F# }1 N) H7 E" |& o
; c. f8 K6 F" ystatic struct gpio_led da850_evm_tl_leds[] = {: @+ B0 d+ |" V& V8 H9 X4 |
        {
  }, W, Q/ _, h- }+ P$ H5 |                .active_low = 0,
7 N0 z& r! P; I' b0 N                .gpio = DA850_USER_LED0,( w; A9 M2 X) P5 z
                .name = "user_led0",4 Q# e* u9 l/ b% d! [% r2 A
                .default_trigger = "default-on",8 f/ o6 c+ Z1 ^4 S4 k7 M" m
        },( \& ^) M. d/ A4 g: V: A0 l! O$ j" f8 `
        {5 F4 E) c( R/ x& l, m0 u: c
                .active_low = 0,: J/ D; N9 }+ z$ w* e9 Y$ O
                .gpio = DA850_USER_LED1,! V" x8 k: i- F4 l8 s$ a# G
                .name = "user_led1",! ]3 Q. w5 V+ N& f2 {6 ]
                .default_trigger = "default-on",
, k3 q3 Z) k( I! t! G# t& o        },
* g0 u7 G- @7 G3 e5 d        {
8 X$ H$ E" J. o* o                .active_low = 0,
8 o3 E( F% I4 \0 |9 ?& U                .gpio = DA850_USER_LED2,
! F, C" S" t9 y% B/ S0 X9 ~3 F                .name = "user_led2",
7 f/ g4 L8 I% b3 v4 e                .default_trigger = "default-on",4 \% N' v, M  I' w8 _% r
        },
: U* }6 A2 J" v% R        {
, `; V; h" F9 B- U  n                .active_low = 0,
& t0 L- N# ]/ Q2 A8 s8 X                .gpio = DA850_USER_LED3,) h& U. R/ U/ x
                .name = "user_led3",
4 K; o' |2 u: {/ P; U* `- m, k                .default_trigger = "default-on",
$ v  Q  n, i8 s. f% X9 s) J        },- }% q) \" i- A# L. [
};% r9 W8 e: U% `$ x7 |1 d

. P4 ^0 p5 g/ F: D$ b3 V/ Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 O; \$ P) x' ?0 z* A* Q$ N9 A        .leds = da850_evm_tl_leds,
+ T  R8 j& ?( Q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% y+ L) p) P: ]; w5 S, o2 t
};
' y  d! [7 b8 a8 e' g& I9 Z. |0 O6 F: V' g# \
static void led_dev_release(struct device *dev); U8 w6 c5 |6 P$ d$ F& u( Q& H
{/ C2 `& d! u7 b, I- Y6 i
};
& J7 i4 H% \6 `) L; \  y
( L0 Y* F! c) c! q# j3 `; zstatic struct platform_device da850_evm_tl_leds_device = {' r1 |" d2 ~7 u% G# {5 _" ]
        .name                = "leds-gpio",8 ~9 d8 Z+ g/ ^4 L: H
        .id                = 1,
, W, J: X& O! o5 R; j* A/ m        .dev = {; U% f; c8 D/ R9 k+ y9 _0 y% X( ]$ e" T
                .platform_data = &da850_evm_tl_leds_pdata,7 |- y5 t% S! q9 v
                .release = led_dev_release,) r/ u0 P9 I. F# ?8 |0 R3 ?
        }6 T7 M. W/ ]8 s9 [8 ]' G' G
};
  z. B8 |+ r- ]# r$ B+ ^' ^( X
( @( n# `$ e9 l+ O$ Cstatic int __init led_platform_init(void)
" N. e4 j5 D3 _  I. R- g8 K+ A- C{
$ F* q( ^, x# u- Q: o+ a3 o0 F) i        int ret;' n2 G  p5 y% E. d
#if 0
6 u, N; c4 M1 Y& w        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 S6 Q$ Q0 ?, W, J0 T
        if (ret)
4 q; X# c/ m3 H6 n3 J! z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 V9 c, ?$ d7 Z, Z
                                "%d\n", ret);
" L# o+ u/ W, d3 H. J) B/ {#endif# n$ k# S% A5 f5 }3 V
        ret = platform_device_register(&da850_evm_tl_leds_device);
) @" T3 q9 W6 n        if (ret)5 M  n; \5 D* m! \7 E( a
                pr_warning("Could not register som GPIO expander LEDS");$ F  f, C+ H& n, ~
        else) y( b0 p4 K2 M) a% @) U  S
                printk(KERN_INFO "LED register sucessful!\n");$ C. R7 y3 N, _) n8 N  R4 B7 B1 H0 ?
  t7 n: B. N2 h
        return ret;
, U5 `4 b0 D5 m" z3 {1 C}  ?, \) \2 z( @2 M3 C" u3 O5 A, Q7 q
/ T( ^1 c2 Y0 N/ R- X" _: C
static void __exit led_platform_exit(void)
; R9 s5 e7 e% o7 j. |{
3 H+ Q( k6 _% S        platform_device_unregister(&da850_evm_tl_leds_device);& D( {& Q" W8 I

0 q( O, g0 s9 R, N6 p0 c        printk(KERN_INFO "LED unregister!\n");
! r1 E8 W0 n# a" W. T}
* r7 X4 K) _2 W$ b
- o9 c0 [$ ?2 j; X% Rmodule_init(led_platform_init);4 v" m. f  G% e% W+ r2 W
module_exit(led_platform_exit);
! Q% H& T! d9 h- n# t  X- ?4 Q. z
MODULE_DESCRIPTION("Led platform driver");# w+ b& V* A, t0 L0 l- b8 X; z' ^
MODULE_AUTHOR("Tronlong");
' L- U! ^8 l& j4 ]+ {- [MODULE_LICENSE("GPL");
5 g4 P* b: i% S4 M1 y( d2 R/ e/ p1 ?, Q, k0 E4 `) b0 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 17:43 , Processed in 0.036748 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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