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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ g" R. b* b2 U& ], ?, G, v#include <linux/init.h>9 H# m0 Q& z( t' m
#include <linux/module.h>
& |9 f% Z5 s* c2 n#include <linux/kernel.h>
' U! l% S. W  d#include <linux/types.h>2 w4 ]- e( A1 y7 i. _6 ]% f
#include <linux/gpio.h>+ h3 P1 O; T1 z, N. q# B2 G' Z+ M
#include <linux/leds.h>
( O/ L. Y6 d. G#include <linux/platform_device.h>6 I% v' Q5 u7 }. l5 n; C

4 u5 P8 k- ~+ r, u2 H& k( @#include <asm/mach-types.h>
( T3 v/ f/ T9 ~6 d' b% ~1 v5 v% c#include <asm/mach/arch.h>
- z$ H+ u, n1 o- }) @" T! C. D#include <mach/da8xx.h>
. k6 o' p6 b  |- [. T#include <mach/mux.h>3 F9 s$ K; Q0 B( [# Z% Z7 {

2 V" Z2 T# S  v* o#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, U% k- v, U$ o# q0 l  \+ U: {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) ?4 m" `7 F* h: X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# [+ ]( u& C% ~4 y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ s, Q$ c' [$ L5 h& D+ t
5 K: z/ @' G6 d# M8 W' z9 }
/* assign the tl som board LED-GPIOs*/$ K5 b! Z4 U3 _( w: H& F- F
static const short da850_evm_tl_user_led_pins[] = {
8 D- L! o6 C. l+ r# E- v        /* These pins are definition at <mach/mux.h> file */
2 v: i! S3 `2 z+ y* R& t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 _/ k+ V# u$ s; [        -1! `# Y' N8 U5 b9 f+ C4 w: f
};
9 B. b# P/ ^" ~6 E: j. w: u
! I* \! K' p2 ^2 M6 s& r# X1 pstatic struct gpio_led da850_evm_tl_leds[] = {) o: A& ~* ~; k5 i, \- J
        {
9 [. W" ]1 d0 O6 e                .active_low = 0,5 R' ~0 |* |8 V, H, |
                .gpio = DA850_USER_LED0,
, N: Z* E6 d! M/ ~+ _1 S2 I8 T" o                .name = "user_led0",
3 L6 u  r' w' O* G& m                .default_trigger = "default-on",
8 y, g" s0 i9 C' ?: O- Z3 `        },
0 A3 o% q9 `1 @        {1 ^% W( f# z$ z6 b5 R7 E
                .active_low = 0,
' J# D$ r9 Y$ r6 P, ~/ k                .gpio = DA850_USER_LED1,
9 s  n6 u. P! O$ [1 z. J+ q                .name = "user_led1",7 j# l$ ]$ d& P5 _4 ~6 o
                .default_trigger = "default-on",; r) o. r9 I4 t
        },+ B; {0 U: v6 Z! o0 v
        {
+ h; H/ r+ U4 @4 l% P( h                .active_low = 0,$ }/ K' R/ v& Z5 S0 m- L
                .gpio = DA850_USER_LED2,
7 G# @  ~; w0 t                .name = "user_led2",
  M: B; @, w4 K: Y9 a                .default_trigger = "default-on",
; A9 f- l9 W" B7 G+ C        },5 N: Y2 E8 N+ |
        {7 @8 g3 R  f& V8 R2 d
                .active_low = 0,9 }8 w- r. H; p- e( R/ E
                .gpio = DA850_USER_LED3,
  |/ i4 V- k4 b8 s                .name = "user_led3",% W$ x. ], H1 L% W& H
                .default_trigger = "default-on",
7 ~, q7 `" [7 d. }        },) N+ y: Y9 w- p4 u
};& h; M% q9 B" W, e2 e; d$ S
; x3 X$ z4 s  Q) |  l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# j. b' H9 {# g  |8 G, l        .leds = da850_evm_tl_leds,
& ?( ~& H8 x6 l4 |- L3 P+ I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" M8 d9 o1 |8 ]3 |};
/ q) S( X* r6 R% Y) p
7 N1 S* R( `, ]3 t5 |1 istatic void led_dev_release(struct device *dev)$ C0 s8 {3 @" z7 f
{, q2 H+ b/ d+ P- I
};5 ^& `0 J7 Q! M4 O

' G  K" P) ~' @2 ?static struct platform_device da850_evm_tl_leds_device = {! S- ^3 k1 q. a) v2 ]
        .name                = "leds-gpio",& V/ J8 R6 y; }8 X* j3 H' {6 ]. N
        .id                = 1," b# g! ^% V+ f8 v
        .dev = {
* @8 t1 g, e; X7 h& L7 }7 Z. ]                .platform_data = &da850_evm_tl_leds_pdata,
$ r6 i2 C) y- |5 X                .release = led_dev_release,
+ `! T+ @' [9 t" W$ v/ y        }
8 l0 R1 \  Z& o};- B8 G$ [9 `' k, n4 d# W. p

2 M0 w- y8 t9 E8 _- l, o9 t6 ~5 jstatic int __init led_platform_init(void)
  h( @2 K/ {+ K{( R7 @: O3 S" @
        int ret;
8 C+ T' n' Q: [5 d#if 0
: S, q1 J* e" G2 R7 a        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: q9 u/ H: c3 |" I4 f; k) _
        if (ret)4 }+ F) L2 v) L" K& g
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 y, |% a7 J. e                                "%d\n", ret);$ u3 u6 s8 x7 J  s0 }) }
#endif& g' k2 g4 [/ q& h% J% M% \
        ret = platform_device_register(&da850_evm_tl_leds_device);5 J) F, O+ Z) K  Z8 f4 v6 R
        if (ret)$ q  C( N) e) S7 J4 j0 s5 z3 p
                pr_warning("Could not register som GPIO expander LEDS");
: ]! Z$ O4 O  w% K* s- u        else
" j; m/ F6 w% L+ l6 g) y                printk(KERN_INFO "LED register sucessful!\n");' c% M6 I( _) \* |1 v. ~% p; @

2 O% Y! a% m8 p5 A9 z& a3 I7 `        return ret;: ]6 w% n, q; ]1 ~8 ?3 j
}. v& Q" s4 U; i! s4 {# {

9 y" m0 l# b" l: Jstatic void __exit led_platform_exit(void)
' [& r7 V, e0 y' X( p{
+ @, E+ F! o/ L        platform_device_unregister(&da850_evm_tl_leds_device);/ P/ ]( h+ E% B5 R  w( X2 O) j

+ P: W2 U: ]5 T        printk(KERN_INFO "LED unregister!\n");
, M" F) v  c2 @. g! @1 u0 B}
/ ?9 y" n) t2 ?4 m) [4 |6 K: C6 }; S2 C9 {% X( }6 U8 I
module_init(led_platform_init);+ l! V8 W/ {$ q; ^  t7 }; i
module_exit(led_platform_exit);7 j% ?% ^# D  @: v0 ]& B

1 d1 o9 U( d' S. a! t' M* k6 qMODULE_DESCRIPTION("Led platform driver");5 I5 y/ ?) F9 S( `8 l. o8 P
MODULE_AUTHOR("Tronlong");
; v; r- |- n$ t; X+ T8 AMODULE_LICENSE("GPL");
0 e0 u' s- h$ o" [. @& Z7 S  a+ K  L' r' R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 05:39 , Processed in 0.039999 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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