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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 d  f6 F& I; O- k
#include <linux/init.h>+ N! s. s4 {( ?' P# b" V
#include <linux/module.h>
, b5 X! O# O$ }- i#include <linux/kernel.h>
9 d/ U  H6 l# b* f: Q2 c#include <linux/types.h>. {2 m+ w- n8 R
#include <linux/gpio.h>) y: v/ q( x! v* a% J
#include <linux/leds.h>* A2 E0 K9 q9 V9 f
#include <linux/platform_device.h>* a, p7 v" P3 l

5 i# t# z2 d# D/ @; r' w0 _#include <asm/mach-types.h>6 v( q  b- M' Q* F2 p$ d
#include <asm/mach/arch.h>/ j  \0 k' }+ r/ |, \9 h' W; L8 }
#include <mach/da8xx.h>
8 l5 \, S. W9 K#include <mach/mux.h>  J# J6 L, y0 z
' Z! \2 L- h7 v. l; }% U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ D, v6 ~. a  ^8 U
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 m: x, @, P) t#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ z) B3 c. Q# D, `& j2 p( t3 o
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& Y* T2 T' o6 I6 J  M6 J. V

7 L: A! {4 H8 r: F6 r' P/* assign the tl som board LED-GPIOs*/% X- L  n7 Z7 q3 t: Y) D
static const short da850_evm_tl_user_led_pins[] = {7 C9 s3 d2 Z2 v6 I( L# j
        /* These pins are definition at <mach/mux.h> file */
, `: q4 O: S( `" M3 l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, B0 ^- c' g; E' b$ ~
        -10 e% K  Q! ]5 I5 _3 j( L
};2 n6 `: d# T3 p+ W$ n3 j$ k$ D! f
) Z8 X& I# E, L  I4 f
static struct gpio_led da850_evm_tl_leds[] = {
6 n; c& Y- s' `9 O  w2 ~        {
" O2 N' k$ z0 I5 S& A( L& S                .active_low = 0,. V  s- O% `* T0 ]
                .gpio = DA850_USER_LED0,/ V' c( u2 l, h
                .name = "user_led0",7 D1 x8 X  Z" q) i# W) [. \
                .default_trigger = "default-on",* _3 M) K. ~4 x. k4 t/ g
        },
8 G1 M# g* C9 A        {0 {/ K' X! @1 `
                .active_low = 0,! V1 T5 }/ v; |6 K" c, a. X% v
                .gpio = DA850_USER_LED1,
* W! U4 p9 D! h4 |# M; Y7 K- s                .name = "user_led1",/ c  I) y) Q3 C. h! m0 _. a
                .default_trigger = "default-on",
# G- F$ A- T. X; A/ z* O9 H9 d        },
; P0 I& U4 s: i: y  D, A5 B        {' B3 h5 O& Z2 a4 g
                .active_low = 0,
: G" e6 |3 B6 U                .gpio = DA850_USER_LED2,
1 M( `+ E, ]  Q& V; T3 B6 p+ n                .name = "user_led2",
# L/ _4 X, w4 \                .default_trigger = "default-on",
  P" ?2 |+ h5 R; p" q4 p' M        },
* C( `" u: x2 ^: Q, L9 y2 X; Q        {' b" N% K2 J2 G: P! s6 d$ _8 C
                .active_low = 0,. M, N3 d( A7 M2 X, _
                .gpio = DA850_USER_LED3,! L" S4 p- g" ~. k( V
                .name = "user_led3",$ P% V7 T4 b9 \
                .default_trigger = "default-on",
1 T9 \. p4 {2 E5 ]        },
: [/ a! a$ C+ v" Q- |: W4 K+ y};
6 C( J5 F, L! U* ~/ S0 o* N/ `$ y8 e6 _/ _1 W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# F# G2 d% }. v( e1 L- H+ _9 ?
        .leds = da850_evm_tl_leds,: d3 F) T9 J& |; A3 b: j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  N, K' c! l. v: _' v};7 r% h1 ?  u" h2 {5 q5 |% z
) z- ]; D' g6 e, l: C5 O
static void led_dev_release(struct device *dev)
4 ^' _: i& G5 I; }$ b) V{
6 t( {1 g' n+ j. \! D  Y: g+ [3 U};
. `9 x5 g/ r' P" }$ s
) i! e0 g: @+ e+ c3 T% gstatic struct platform_device da850_evm_tl_leds_device = {' v  Z6 }' g) D. x1 R0 M
        .name                = "leds-gpio",( R) W$ @/ q8 t2 F
        .id                = 1,
# c3 [: d+ x  h) n9 s. F        .dev = {
/ N' ^! H) ~  c# l8 h                .platform_data = &da850_evm_tl_leds_pdata,
6 o8 N& K5 ?$ L. m( k& r                .release = led_dev_release,
4 x  i* a& U) v9 ]$ p        }
! V1 \) g+ v0 s};
) [$ _- v4 A* D0 }2 k
( S+ Z$ v' s) M5 o8 p3 w9 f7 g: ostatic int __init led_platform_init(void)
; G1 ^* R% x0 m1 b4 ^; ~{- f4 |  ]" v9 G# E
        int ret;0 ]* G- C  b+ j5 g* o0 h. X" ]
#if 0; c7 Q. s" a# b. C! \  W  f4 ]; R# w
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& F- C1 K5 T6 N( T        if (ret)6 z8 B3 v7 G1 n0 J$ y, Q+ u' V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ c( H" C2 Q5 x4 p5 Y
                                "%d\n", ret);
! l- `  l+ k: N0 V: A$ ~#endif
+ |* |% k& E" Y" K. h8 P- U. ?        ret = platform_device_register(&da850_evm_tl_leds_device);% x0 A" a- t% G' A
        if (ret)
2 X1 G$ \. x6 \                pr_warning("Could not register som GPIO expander LEDS");/ }! ]$ D7 N' [( M# x/ R! a
        else
' _1 C9 D7 K+ B6 x  j+ u                printk(KERN_INFO "LED register sucessful!\n");$ O) \* G2 C( F3 o- H4 U- I

5 S& B* o. J. v3 X2 Y- [/ f( Y# @        return ret;7 c2 b* s; O! V, p
}
/ w. P9 M2 w; o! j1 u
! [2 W6 e; F4 h( e5 Bstatic void __exit led_platform_exit(void)6 a1 y( X9 @: r7 s. J' l
{
* w& r- {3 l) z        platform_device_unregister(&da850_evm_tl_leds_device);
( n1 P. M% l1 s6 |: O0 s: F) r' ^8 u' l+ U
        printk(KERN_INFO "LED unregister!\n");' m# e0 i7 Q3 ~6 \( e
}
* y3 T2 l% N' x+ S' B0 @1 S0 n7 Q
module_init(led_platform_init);- Z# ]3 t: f- [7 w7 g
module_exit(led_platform_exit);$ p9 g8 v6 C# u; b8 g& C$ o, @

. `8 c  f2 _" c* i  ]) b1 u* uMODULE_DESCRIPTION("Led platform driver");5 C8 Q- |8 U1 F
MODULE_AUTHOR("Tronlong");) S9 ^: d. k( _/ C: ~4 B* `
MODULE_LICENSE("GPL");2 G- I  O- s0 H4 T; ]+ m* C' a' D5 Y

; c3 w5 h5 v  `5 u( @+ z6 g+ x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-26 13:23 , Processed in 0.035487 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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