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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, _( P9 }: ^0 S2 l) \0 @#include <linux/init.h>' W6 S0 o3 A. S& ]+ j% g# L
#include <linux/module.h>
) e% J1 ]. T) p* c2 J/ Y#include <linux/kernel.h>
- E5 a* x- W) k5 c9 H, u8 e* q#include <linux/types.h>! O1 S, o' `) {+ y$ o4 y  z
#include <linux/gpio.h>0 r) J  e! v: k' @* J+ V, x" O; d: o
#include <linux/leds.h>
3 T1 E" m% G/ ^0 |8 N/ r' X3 @#include <linux/platform_device.h>, [' m; U! x2 l9 Y6 V. ~

# [& I/ L" t$ h6 s) p#include <asm/mach-types.h>& w9 n7 I0 f1 x& w3 p- j
#include <asm/mach/arch.h>
5 J& X3 }  l2 D4 j" m#include <mach/da8xx.h>. B% c5 H7 n3 D1 O! ]
#include <mach/mux.h>
( K' l7 }. R' P' i( q6 R3 z6 l- r0 l7 Y* `
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# h1 F8 ]) u, Q6 {0 b
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* y3 G; ~0 c5 I. Q1 A2 k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ A! W# q$ J" ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): k$ O* b( t$ e/ m  P

" z9 W9 u  I$ {1 m/ W, i; D/* assign the tl som board LED-GPIOs*/0 s; s' H- t  v0 s6 _0 W( V) e8 F9 @
static const short da850_evm_tl_user_led_pins[] = {
+ H: j+ a6 x8 \! B        /* These pins are definition at <mach/mux.h> file */1 Z/ W  H: K8 x" O( n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% T3 m: |1 U4 }9 Y( e        -1( @% r" [8 X" V$ h
};- j0 R. k" ~( b/ z

; @8 r6 v1 h# Gstatic struct gpio_led da850_evm_tl_leds[] = {
, F2 j! i$ |4 Q8 \        {
. D$ F8 a* K6 a* W/ x& r) V                .active_low = 0,
6 z. X  O8 i" ~6 J% T! w                .gpio = DA850_USER_LED0,- g, S. A' {0 F) M/ p6 r3 i2 Q
                .name = "user_led0",
$ ]7 U" R5 w3 J5 D                .default_trigger = "default-on",9 _9 T% S3 W3 _& M- L  A
        },
5 X1 g. Q" H+ k, v7 |  X: V+ r        {# Y* k, e& k, z+ o+ C2 O
                .active_low = 0,# Z; l5 ]/ H2 [# A% N
                .gpio = DA850_USER_LED1,
$ G- p# }  P; D9 X                .name = "user_led1",
- {5 W1 Q8 y3 Z4 M                .default_trigger = "default-on",1 D! o6 }. q, u) @3 S
        },
7 r& p6 j+ j8 B: i5 p        {
7 j$ s5 J& i8 X2 w" {0 P, }# @                .active_low = 0,. B# D8 h8 @5 s' h; T
                .gpio = DA850_USER_LED2,+ G. s" R! q& C+ l$ N/ {
                .name = "user_led2",
! `: ?2 f3 }6 ~% w6 [) P                .default_trigger = "default-on",  l% ^" G6 T; A7 M0 q( S
        },
% }; ^2 m  [, `" D% @& L        {
  U) E6 f7 k% x) Y0 _2 \( O+ g6 C                .active_low = 0,
& b- l8 s1 }0 g6 ]9 j                .gpio = DA850_USER_LED3,' w: {! J0 T% f' P, w9 J) s9 w
                .name = "user_led3",
: j+ H& X' F( G* B$ C                .default_trigger = "default-on",0 [* p2 j/ h9 T9 ]$ @9 V
        },# t3 c- n. d+ y1 i
};% q: y. k' L0 [7 b  I& B6 s
) L6 n$ }, E2 j" N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; G( P4 `0 N% O; n5 V6 v2 E3 |7 y        .leds = da850_evm_tl_leds,
  l1 V2 ~( Q3 L/ k. g( S        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ j& S4 T, Z9 R2 @+ w# v};* J& p, S% F9 [( _( u  z# K* I7 V& B" l9 X

' [! w/ M1 N) q5 j. G: D" qstatic void led_dev_release(struct device *dev)1 D) X  V3 Q( e9 F/ {" m, N
{
) G; c. {; V" P! a1 V};' l" k. [) v" }: f+ N3 m
: l/ f4 N6 R8 b
static struct platform_device da850_evm_tl_leds_device = {
  E4 F5 E, q% j. N        .name                = "leds-gpio",8 x( n" L* g# `4 C6 v/ r
        .id                = 1,
% [0 Y1 K: l! t# C( C+ I        .dev = {
  u" C  P* f/ k8 l* |0 G                .platform_data = &da850_evm_tl_leds_pdata,
$ ]2 e3 Z: i" m- F, |! |6 L                .release = led_dev_release,9 I) D7 f9 N- }) n
        }) A: c" u5 T% g/ v9 k9 a! Q
};
/ H+ r% _, x9 f
: o  u0 H" x* pstatic int __init led_platform_init(void)
; a4 b' r9 L/ s{
3 g5 y) O, Q7 |        int ret;
% s7 r6 [( {  B( f1 f3 V, Q& c#if 01 s9 `& |  C/ s, i1 V$ q! E% y% J# X4 m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 _% u; C7 a: T' p3 Y+ [9 U* U        if (ret)
3 l3 y8 w6 O: x2 ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ Y& C% a$ B. x4 b; B                                "%d\n", ret);
# v% e5 A  M7 q4 r8 H: w7 h#endif5 P/ n) B% B" Y$ X& i8 r6 U
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 ]8 z% {; o4 |6 [0 ?; N        if (ret)
& l% g1 g" ]( C! D1 N                pr_warning("Could not register som GPIO expander LEDS");* _3 V9 J& W2 W; l
        else" j2 h! C+ n. B  p' h
                printk(KERN_INFO "LED register sucessful!\n");
( o7 P2 F7 g" S* b8 }1 d' O6 }* A+ S* B8 `8 M. Q
        return ret;
% Q* l. A! J0 {% c+ v, [}
! N! ~% x/ ~  _% @1 X& q% O
. u9 F5 e2 U! Cstatic void __exit led_platform_exit(void)9 t) j& k' q8 [
{, d1 Y, W& j" R
        platform_device_unregister(&da850_evm_tl_leds_device);
% N. }8 f4 G6 \! ~0 R5 O
9 q) B# _7 h! z- _. W. B3 j  S        printk(KERN_INFO "LED unregister!\n");6 t: {9 ~8 q+ [* u5 E4 C) Z
}) Y3 S2 N  |; Z

8 f! D; O7 w$ j$ kmodule_init(led_platform_init);
& q/ C8 l$ M, t  R) |module_exit(led_platform_exit);* U9 G0 q+ K) j. q* f
& u. U( C0 n- U$ j- j
MODULE_DESCRIPTION("Led platform driver");
7 B( j+ ]1 h, \. Z) V; Q/ eMODULE_AUTHOR("Tronlong");
  F: z2 L3 A, q% X/ C, I) OMODULE_LICENSE("GPL");5 B$ c& k0 r, Z# `: `
1 R" [, E+ a+ P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-4 16:27 , Processed in 0.040140 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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