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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, ]3 u8 }3 }, X" [4 {+ R6 K#include <linux/init.h>
$ D; ]. }6 ~: R( Q#include <linux/module.h>! x' Z7 j# G/ L) K+ r% z, {
#include <linux/kernel.h>
0 l1 u* Z$ `6 H! V7 @9 Y#include <linux/types.h>
% a; T/ ~# c- N% i! l( |#include <linux/gpio.h>
; H4 O0 r- L- Y& l( w; o  L#include <linux/leds.h>& A# N8 Q% x5 q  e, ]2 L0 g
#include <linux/platform_device.h>  w8 n5 N- T" A" [) v6 M1 i

) w# `  w0 v$ ?+ H2 w8 o#include <asm/mach-types.h>" j% o# v* l) K
#include <asm/mach/arch.h>
! N2 x0 u% {7 X#include <mach/da8xx.h>
1 t; l/ O1 H( g/ m#include <mach/mux.h>
2 u* s3 H; W! A& I
5 s  g  P3 Z4 F3 D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 V+ R1 N. f/ c7 c: F+ W$ s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, j; f$ h) \' V3 \8 v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ P0 o0 G6 \5 h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 Y' y. u! i$ q0 U- [7 d

- G# z. q$ B" ^( B* g4 X* S/* assign the tl som board LED-GPIOs*/; m3 ?) T8 z# R0 O! f9 T
static const short da850_evm_tl_user_led_pins[] = {' o. b! _+ T5 k3 y2 J* C0 ]( D+ W; ?
        /* These pins are definition at <mach/mux.h> file */: N4 z! t: I. ?) Z: j' q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 D' ~& j. f( H. E* |
        -17 A: \2 C; F7 T/ L* a/ [. {' l6 a
};8 A, C5 I; X  }. X

  C% n- }- Y7 I2 h$ R' kstatic struct gpio_led da850_evm_tl_leds[] = {; T! Z# |7 C/ _2 Z2 ~) U: ~! D
        {
/ y7 s9 u' {3 z3 `! U                .active_low = 0,
  r1 ^4 X0 l$ X- |3 K% B3 ]                .gpio = DA850_USER_LED0,
6 l$ L$ o& q" a6 B                .name = "user_led0",
( h3 G: i# k& y' o. ~& H                .default_trigger = "default-on",
1 U. F& Z% z, Z! h6 a        },
* K4 x0 `& l" X" h: q        {% H" w1 m  ^% l( l! M
                .active_low = 0,
* S6 |' v7 o8 L# W0 F% F8 R$ v                .gpio = DA850_USER_LED1,! t; `0 b: {$ L8 h0 F) s8 Q
                .name = "user_led1",
$ K* {! `' p& ~; \4 P* {4 j9 g                .default_trigger = "default-on",
. S! B: U* z& Z$ G+ W: t        },
, a9 i* h8 L8 g$ @: m        {% ]( A; f1 N4 x
                .active_low = 0,* D6 r) u4 W9 u) ?) E7 u, {; D
                .gpio = DA850_USER_LED2,* d$ ^/ D$ r! X( ]
                .name = "user_led2",+ U5 j, B, s! |/ ^/ m! }% W
                .default_trigger = "default-on",6 h- j1 {7 c9 r, y- n
        },
: f( n0 @* {0 X9 b$ w7 i0 p: Q8 d        {
% S1 s( i* b  H* L7 j                .active_low = 0,
' Q( U+ ~% t1 ?; g! z7 ~0 N5 ~4 w                .gpio = DA850_USER_LED3,' X2 U, F( S% |! M& m  f  d0 a( U
                .name = "user_led3",# S. n* c; R7 t" _
                .default_trigger = "default-on",8 {5 E0 l+ s8 ~! A- w
        },
* R7 i  o1 u7 w. v};* W: o; o+ \4 D
+ p4 B1 U$ C0 V8 b& d: |% L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! m" x8 s# b* N0 g( ?9 D7 c
        .leds = da850_evm_tl_leds,0 h2 z/ P( F( Q4 c9 H* E
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) F/ ^1 m. G0 e: M* o& i
};
  V. ?2 y: c- W; |' F! i0 |! @& A- S. k
static void led_dev_release(struct device *dev)7 T: ]$ H; v( e2 E$ r. i% Q/ l1 g4 M
{
0 |* ]% c, P4 P1 y! v1 g};
, Z2 Z6 z, ]& B' o) y% E2 `3 g
" I: a1 \5 e- w( Y9 ystatic struct platform_device da850_evm_tl_leds_device = {6 q7 G# \+ r+ v( z( `" o  S' B
        .name                = "leds-gpio",: }1 I; |9 Q7 T6 p
        .id                = 1,
& c8 D- x- c5 D! b        .dev = {( l7 x4 r, |/ C# e) v; }
                .platform_data = &da850_evm_tl_leds_pdata,0 k$ s" h0 D) H( z+ r
                .release = led_dev_release,
5 {, {, q; g! x/ Q        }
, n* o3 t( Y; O6 K+ f};8 m6 X( P# ~4 C8 r  p( M

. ~- z- t- e1 z6 \; @* w9 U. }static int __init led_platform_init(void), g! E7 F% ]7 b2 a& P" x$ _* d
{
& f1 ~5 t0 }  W3 r1 t$ {' ?, x$ H        int ret;$ G. U% j! G0 T! b  i. l* z& P
#if 00 }( N5 q* W* @, A
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 f; G7 u! D# {+ z
        if (ret)
! V) U7 u: H% x, \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( F2 i, y9 s0 O( B
                                "%d\n", ret);
/ G- f1 r. N4 B% M; m' f2 j* r#endif. M$ R2 A  r3 m$ c( W& o$ m0 ~& l! j
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 ?8 V5 z& _, q1 A        if (ret)8 [7 L8 M. Y# I5 v  f
                pr_warning("Could not register som GPIO expander LEDS");
0 ?0 M& e( k. y( `( f" J* s0 F        else
) D% Z6 I$ s1 ~5 Q- e0 p( M8 K                printk(KERN_INFO "LED register sucessful!\n");
% ~' f& X0 S) D0 J- k% a, q1 M) g; b, K
        return ret;
% z2 H1 J5 [7 R. {6 l}5 q1 F* K2 C; s% S8 }, }: w

+ `, g0 |% Y) I/ n: F* Vstatic void __exit led_platform_exit(void)
+ P& g) T! G# Y6 s3 O# q; W: o{) _  k% ?& n: `/ ]; Q, w
        platform_device_unregister(&da850_evm_tl_leds_device);
$ X5 |) s% b8 V( Y. |( t* Z5 D2 ~: a* B5 b/ Q. p: b
        printk(KERN_INFO "LED unregister!\n");
1 b3 j. G7 {1 h. d9 [* m" `$ j}$ h/ G6 G: U9 @0 w* h3 x& H

. A. |2 T6 d; ]7 y! w# y) Y5 `5 Xmodule_init(led_platform_init);
$ B9 v" e5 i$ o: g8 T; M  zmodule_exit(led_platform_exit);
. n- K( {1 ^! o0 F* X' d
4 B4 _* u8 ?- h0 b0 B) iMODULE_DESCRIPTION("Led platform driver");9 J5 }6 W  C+ U  l+ b
MODULE_AUTHOR("Tronlong");
8 |3 ]9 F% b2 k( l& x9 sMODULE_LICENSE("GPL");% _+ }: d( H$ \/ m/ o% O
$ q) ^2 {# ~# M; S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-17 23:01 , Processed in 0.037937 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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