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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 G5 `% _& G% u8 \#include <linux/init.h>
$ r( q5 Z0 g' I# V" l#include <linux/module.h>
; P! D) J. o/ r& Y3 a6 e5 s#include <linux/kernel.h>
" v6 F' s& x. q' _& V#include <linux/types.h>
2 v! A- H8 C! @# [* ?- X0 h#include <linux/gpio.h>
; k) P. `6 P! u% J3 h2 N  l* K% a' ]4 ]#include <linux/leds.h># O( {8 a' {# q4 o+ |
#include <linux/platform_device.h>2 ]% R2 f: e" c, F8 I. b2 l8 L
6 x# @& p$ t  _4 a/ h6 `" Z) p& k/ k
#include <asm/mach-types.h>
; o5 Q' y) T/ j1 e* J" x#include <asm/mach/arch.h>' W! n/ K# H+ \1 n
#include <mach/da8xx.h>" w- e/ N! H4 [2 r) ]+ }
#include <mach/mux.h>
, J# b. y) E% I" c
/ c2 v  P. }: h- x1 }4 ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% a- S% E  D: X! _8 t/ y, y3 }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( R) |  j% [. T0 ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- e- l8 F) C" g! S# E/ L. y; f& f, `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) Y6 w  Y2 w/ K2 j$ I# ~9 K; {9 Q5 U& |3 D; f
/* assign the tl som board LED-GPIOs*/5 e! S* V4 k% |! \- R( L) U+ {
static const short da850_evm_tl_user_led_pins[] = {: u8 n) B" n7 {7 y+ Z
        /* These pins are definition at <mach/mux.h> file */
9 o. N1 k: t* Q+ {9 h2 B! E+ u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# U' [7 J2 T6 c; u5 G
        -1% M/ r% y3 V: C, X+ l% @7 m& F. F
};/ k; h$ K0 ~3 I/ f# p$ @' O) |

1 G! U, ^0 Y: P( m# V& Pstatic struct gpio_led da850_evm_tl_leds[] = {9 M- D- z( o4 M, _  @9 j7 g) P
        {
' \: d3 B4 c. Y0 X* r  K8 H- t+ q                .active_low = 0,
$ n6 a8 ~/ ~& D& x5 `- C                .gpio = DA850_USER_LED0,
- B# {/ Q2 K! l9 [3 k                .name = "user_led0",
! m' K- u' z2 U$ z( O; r                .default_trigger = "default-on",
5 W/ e% v' H, k( W* c1 V' L! X1 N        },
/ A! x* m8 K8 h9 ?) C" f7 b4 V3 U        {; j2 _, s/ K1 ]: Q6 a: E1 o
                .active_low = 0,4 W3 q" H, y* i1 _' T, N
                .gpio = DA850_USER_LED1,2 {3 u4 ?; X8 o) m: r
                .name = "user_led1",0 [: `  m/ o: Q5 j
                .default_trigger = "default-on",
1 l& J% g0 O7 y        },
# W: Q7 x1 Q7 o4 f- ]9 ]        {, e; _: X# \& X7 c
                .active_low = 0,6 f# q( Y' z# H* b6 u/ J+ E( M/ X
                .gpio = DA850_USER_LED2,3 T/ Q' A' l7 J$ ?- d
                .name = "user_led2",* f# M7 S# f. h+ a4 N/ M: V
                .default_trigger = "default-on",
" C$ h7 Y0 H1 U% e& @, Y        },+ @' R7 ?- W! p: @" F& k
        {
& N" Z/ `9 Y1 @" K- X" a6 Z' A                .active_low = 0,6 I2 c( B% \: x, h7 a; I
                .gpio = DA850_USER_LED3,2 {) N/ L. N& G6 \4 {
                .name = "user_led3",
, {& ~' p* s4 `7 J                .default_trigger = "default-on",( K4 f2 D1 D: T
        },' h+ h  C1 H8 [
};4 y- D: j9 m9 D) X
  U3 X, U; ^, @: ^1 Z' Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: _3 v7 T# r/ R! s) m        .leds = da850_evm_tl_leds,
, k6 A) L8 H# l; x8 ?( }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 \8 s3 ]/ L$ u};, s6 }' v8 k( j& R
7 w  y- k  Z5 e3 p$ c
static void led_dev_release(struct device *dev)
. I( ]" W' o2 G$ m6 C{
; r. _* i9 {* A# ^};( [. [/ _) M* F

8 I3 O& X/ {$ M" K- m  fstatic struct platform_device da850_evm_tl_leds_device = {
$ R( W4 F% v# m' M% G. }5 S        .name                = "leds-gpio",
. [1 ?4 ]6 G  X        .id                = 1,6 |/ s/ k+ W) @: D
        .dev = {9 E3 {8 p. o: G! _6 g; q5 \3 l
                .platform_data = &da850_evm_tl_leds_pdata,
6 K+ A$ B2 |1 ?  V! L+ h/ Z. R                .release = led_dev_release,
: h! W) a- N. n  a5 c2 @6 N8 b- c1 O        }& c0 s8 }5 g$ d- K' m1 {( H
};
0 j8 c3 R' Q+ m, Q
) B* B! Q% S# }. F- n% u- Vstatic int __init led_platform_init(void)
/ `8 K" \- Z) x{
' f: d% Z7 z* _1 P        int ret;
% a* q5 F" Q3 N6 ^# ~#if 0
* B" A; c) W6 l5 C$ r% v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- l% X2 v" B1 P( u
        if (ret)
# e; F4 a, f7 @+ X6 K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 W+ p5 V1 Y% k/ g
                                "%d\n", ret);
, l0 ?; @7 c0 Q1 K#endif3 g% E6 T  l4 B5 h
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 X. o: a$ }  X4 y) a        if (ret)( Q7 q8 g9 K4 q( ~. q, B
                pr_warning("Could not register som GPIO expander LEDS");
0 O( P* j1 [- j' i$ M$ Q1 @9 R2 C        else4 N  t  z! A4 b6 z( B! ?
                printk(KERN_INFO "LED register sucessful!\n");
- L/ y$ D* E8 Q7 V& q, A  g7 C/ s5 h! r( ]* R$ F
        return ret;
. @- u) h& I1 W9 P! t}
. |/ g' Q, c, G: ?
8 Q/ f( L9 `3 T) G! l1 \8 Jstatic void __exit led_platform_exit(void)* a% N# b/ e) o/ w" `. w/ r, G+ n
{
1 O7 w4 v/ z+ w- U  ^        platform_device_unregister(&da850_evm_tl_leds_device);6 Z; x3 _0 P# Z$ ]
( z1 G8 Y  y2 _% t
        printk(KERN_INFO "LED unregister!\n");" |& y1 t/ @$ ?! m
}% z! J. G3 W$ v3 p, s" W2 b( t
' v$ D) U1 O7 G5 S
module_init(led_platform_init);
) x! T; \9 S  cmodule_exit(led_platform_exit);8 _7 _& Z: Q( k& R& W; g" K
' ^. u( Y' r0 e2 H
MODULE_DESCRIPTION("Led platform driver");. r* I$ U- |+ H- i- r
MODULE_AUTHOR("Tronlong");
7 p/ ?! z8 b, v! \5 dMODULE_LICENSE("GPL");
9 ^+ u% ?7 j; |! K6 `
( O8 }. f+ z: g# _, c" w9 `( y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-1 09:15 , Processed in 0.037804 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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