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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& N' B# N# @. Y) P
#include <linux/init.h>
6 N4 U3 m* J6 [6 d2 V9 A#include <linux/module.h>. I5 s0 C" `4 L2 D3 u
#include <linux/kernel.h>
, i) s# f' v" Q( p& w#include <linux/types.h>
0 s1 m6 q* P' l4 ~$ B1 j; o#include <linux/gpio.h>
1 D5 P0 v4 h4 j$ B#include <linux/leds.h>
2 a8 H" T- H. }8 z7 q. M( ]#include <linux/platform_device.h>
  p2 l3 l, J0 q/ Q
& }; e5 r2 D: ~! S0 N#include <asm/mach-types.h>
3 G( m) Y. n( B( a#include <asm/mach/arch.h>/ {" G! l9 D$ I- Z" @: D+ h3 o
#include <mach/da8xx.h>; t" ]6 X& D, P* C0 Y8 S
#include <mach/mux.h>
2 K+ U& G* F' k; c& A5 L4 a
+ Z8 e# s+ g. J( z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 L1 r5 U, G, e  ^6 S$ D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' ?! l! U$ B; G4 \5 L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 h7 C& T. p: Z  w
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 H9 b5 H9 R+ P
9 E5 \$ N4 c" k" R$ }
/* assign the tl som board LED-GPIOs*/+ m3 M8 K! r3 j6 |
static const short da850_evm_tl_user_led_pins[] = {
1 u, T0 v5 W. A* k; k+ a        /* These pins are definition at <mach/mux.h> file */
5 j; t0 q; g& Z0 y, E9 P% `" e& V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 H0 U, S3 R' I9 p+ R        -1
5 T& ~0 A  n3 l1 L% P5 A0 ^};
) I0 k5 B+ v7 z; R( U0 p# |1 k/ u: n2 i3 h" n3 N& e
static struct gpio_led da850_evm_tl_leds[] = {
5 O) `# Q0 [; t8 k5 F2 A5 y9 o        {6 o% A- U2 C6 b; i/ T3 T- A
                .active_low = 0,( Y" s+ t8 w3 }( g
                .gpio = DA850_USER_LED0,
% n" J. i) q$ z. Q9 y% x                .name = "user_led0",; {# d& |7 L# T+ n% [$ M8 p
                .default_trigger = "default-on",+ |8 p1 r& A/ m# |! N( f" u
        },
( j& C+ V5 I* B$ K& J0 z. t        {
2 m7 r1 z& U$ t! W                .active_low = 0,) f, T% `" C7 \1 \  t9 Z4 v
                .gpio = DA850_USER_LED1,
" [. O8 M7 Y- p4 i2 C- g4 H4 w9 f4 z9 Q                .name = "user_led1",- r& I7 |+ e6 \0 P; C2 g7 }
                .default_trigger = "default-on",
) ?" @# U/ l0 Y; m& w4 O        },
1 w) U" P3 J4 l1 A1 W        {* X  d9 m& u5 b) b  e
                .active_low = 0,8 D5 O5 Y! l( _
                .gpio = DA850_USER_LED2,6 J5 i3 s9 F- y! M7 w8 t6 f
                .name = "user_led2",: Q! h+ r+ b, F; u+ U* C9 G4 l
                .default_trigger = "default-on",5 B9 s/ }2 H1 x& S0 f+ E
        },9 z$ o) V3 I# O$ [8 @6 P( U
        {9 u2 [5 o- [  J& u; L
                .active_low = 0,/ b8 y/ Z4 G1 @( W" D# h! Z
                .gpio = DA850_USER_LED3,1 w6 |- B/ M! u# z* ]
                .name = "user_led3",
% P( @/ e9 W# Z                .default_trigger = "default-on",& ]% M* S6 ]% j, y' l9 ?
        },' {1 f& T* L- W$ {" h
};
1 g6 U; B1 ]) w, T+ c- ~3 R* ?: i2 s0 |7 V7 m. l0 S) u
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& F  k5 Z7 G/ N        .leds = da850_evm_tl_leds,
  W  e1 K8 R& l2 a! y" j- p* o6 z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% G  A0 w# l/ w- e0 }};
% B9 n5 S" O1 Z5 m" W( X# V) W8 T* Z" ^" _% g' s; R- d5 _. P
static void led_dev_release(struct device *dev)
( M  S$ I+ W9 W{
9 b- p1 C' G2 h: ~! G};$ V# I; F# N+ I3 C6 x
  y! g8 g9 X6 y: [8 f( |
static struct platform_device da850_evm_tl_leds_device = {9 d0 t  y" _) p2 I* V  T; u0 P2 s
        .name                = "leds-gpio",
5 p, @% \; l5 ~; q' r        .id                = 1,
& a( P! D& h% D- A* T. x0 w        .dev = {4 }/ t/ h( g. X" N; m$ M1 w
                .platform_data = &da850_evm_tl_leds_pdata,
% P+ N- p( |! K8 ~, O! K7 |                .release = led_dev_release,, n$ S% q" d* l/ m7 p- U1 t
        }
) M4 L( Q$ E: K8 }6 A};$ x% j) d. ]" x! m! _% u
: ~& ^+ k9 a8 q: ]6 b& g
static int __init led_platform_init(void)& j4 P' |  \3 h
{) ?: _$ p1 r0 ^0 J% O! G! R( Q
        int ret;
$ z9 ?  Y* Y3 E; @& P#if 0
/ p; b4 N- H- t& O8 M* |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, Z/ F! Q% Y! c( k
        if (ret)) g' h/ w8 q7 w: `+ i0 r4 U9 S4 Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( F' m0 I" D, n' D                                "%d\n", ret);! c+ q9 u. t8 K7 J" z! P
#endif
/ N- ]' [9 l( m# T. s$ y        ret = platform_device_register(&da850_evm_tl_leds_device);
/ a0 b, u# {3 c; \$ x        if (ret)
+ W( f7 O4 z0 ?* P0 K/ h8 o% _                pr_warning("Could not register som GPIO expander LEDS");; T7 S: b. `( y2 L( c& W
        else
8 N( q4 T' b! v/ P                printk(KERN_INFO "LED register sucessful!\n");
$ K" H0 c% G$ i  F9 l/ i9 P: p4 Z( Q. K
        return ret;
7 M/ o; L) G6 @% C- T2 }: \}
8 m$ f& I8 F+ q: e( f) B( {" X0 l+ k5 B; c/ E" i. t; E
static void __exit led_platform_exit(void)
( J$ G; P' B8 v' q/ K, g{
* k1 k7 d) r1 I" [9 J8 W: v        platform_device_unregister(&da850_evm_tl_leds_device);
- E6 w# M. k) v
7 s, u) `- E6 n% |  ~  U        printk(KERN_INFO "LED unregister!\n");4 ?7 H) M; u9 A
}+ j& |) x- l- Y  e4 {
& f0 T/ O, K+ y
module_init(led_platform_init);, O( u+ s& u& G# S7 ~9 H2 I
module_exit(led_platform_exit);: a. t9 W$ @& Q# w; @0 h6 u

, B1 s* v7 ~) H/ Y9 T& l1 nMODULE_DESCRIPTION("Led platform driver");
! ]9 ]5 I7 p7 @5 R. c& A3 ?MODULE_AUTHOR("Tronlong");
- e6 Q, d2 B3 ^& y3 tMODULE_LICENSE("GPL");
1 V4 w, ~0 N" e: H# W5 z* f8 G- k3 A- K* J- Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 16:47 , Processed in 0.036261 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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