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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: f" I1 b5 @8 m' l2 R+ W
#include <linux/init.h>
, |& R5 O# X0 |& l- T#include <linux/module.h>0 g* `. B& J. a
#include <linux/kernel.h>3 u# ~& s  `& e8 @
#include <linux/types.h>. E" H! v$ E4 [1 k+ M4 U/ K: m
#include <linux/gpio.h>4 W- q, ?6 a7 ]& q* }  }
#include <linux/leds.h>
2 i* L9 m8 ~2 A/ r#include <linux/platform_device.h>9 _# V6 B7 n- K9 S  T; @

" L' G* P9 z: O8 U* g0 X; M% g#include <asm/mach-types.h>
+ U7 D, y5 ~7 w) B" D#include <asm/mach/arch.h>2 |% X. y8 W6 R8 Z* ]
#include <mach/da8xx.h>: P, @, d$ k9 _5 c' @3 v
#include <mach/mux.h>+ d, M& d8 D6 i) t! w

  i; g3 v- `4 [8 H4 W8 @+ w2 P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 e* H: }3 y- I& j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 K1 y" f7 j2 h* @3 _2 g#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 y$ U8 a  B/ F, N#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 ?# t' _8 V8 j0 i5 i; N
$ y" b6 S& @8 j& ^( W' c$ W  R
/* assign the tl som board LED-GPIOs*/* t1 _! g+ b& Q+ P& R+ ^+ l7 Z
static const short da850_evm_tl_user_led_pins[] = {, B- Z& H! T, V0 P
        /* These pins are definition at <mach/mux.h> file */
& K7 s0 C, @' L+ s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% _3 V2 \+ }2 O- x( t+ _# p        -13 ]( m5 g4 j9 Q! h7 c* D0 `$ e% U
};$ c- E# k# y5 \/ w9 s0 e* e0 T
6 R5 n2 i5 ^6 Y" U' h* S
static struct gpio_led da850_evm_tl_leds[] = {
  [+ m' V8 X- U5 r" O        {4 R8 F% ]/ u+ q' B
                .active_low = 0,
7 B7 _: Q* K1 C1 R+ u! b                .gpio = DA850_USER_LED0,, P& E' m, s5 B5 l" s3 Q& x
                .name = "user_led0",
* m2 Q% a. H) h8 J                .default_trigger = "default-on",
! s% b. I- a, c) f: o! ^        },9 S- r0 B. p- \- ^! P
        {
; f* C  T: c& ^5 W+ r9 f, q                .active_low = 0,
; F: d( L6 g. ]8 ~+ D, I                .gpio = DA850_USER_LED1,
2 v3 |' M% W0 J- l4 h4 z6 f8 {                .name = "user_led1",6 Z6 g1 z% l- P; ?: x) @& `
                .default_trigger = "default-on",8 J! G1 j. C; k
        },
$ l3 [# F3 p& x$ H0 v5 _        {
! f: p6 R; a7 A8 b% j" W8 t                .active_low = 0,2 ]* H  g. l$ m; @( |! F
                .gpio = DA850_USER_LED2,
" ]% \" d: t0 m; i& V3 Z                .name = "user_led2",  }; a& t" A& H1 w, x
                .default_trigger = "default-on",8 l  n& b. v8 W7 t
        },
9 g7 a. ~" V8 _( a. {        {
: q9 f' y# p8 ~: U- y6 K  W$ c3 N                .active_low = 0,
( Y2 n8 [8 P9 E5 B                .gpio = DA850_USER_LED3,# @; ]" |* ?' L' N8 i" M
                .name = "user_led3",
$ N) p: o3 G$ i  d$ Z                .default_trigger = "default-on",1 ]) X7 q1 R9 R( G
        },! K. G4 D7 `; v1 V7 [3 b, O; g9 m6 p
};
5 U; b/ y% [; k2 }3 e. D, P9 V9 N) ?, P
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) D  I5 E+ U9 F5 p" I% W        .leds = da850_evm_tl_leds,
! F7 g8 x; \8 K" t* k; x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# `% k+ X' Q9 A( q8 }. j4 b" h};
9 G7 T# ?( j1 P2 n9 P2 V1 i" u5 L- q( G8 T* d  _! [. P
static void led_dev_release(struct device *dev)
1 J( k4 x4 `! e% s* i, o% ?{6 s0 \6 u$ L7 p2 s
};1 M  d: m  |  r+ j% Y- u
) m' _# l: \3 e( q
static struct platform_device da850_evm_tl_leds_device = {4 `, A7 z* u, Z3 T# w  B5 L. K& B
        .name                = "leds-gpio",3 C8 V6 e" N# {, [
        .id                = 1,
' L- }0 z7 T% Y        .dev = {/ C0 `+ ~0 ^& T$ m
                .platform_data = &da850_evm_tl_leds_pdata,% g  A2 c5 L4 a- i
                .release = led_dev_release,1 i( p$ E& M' L3 p1 q& `+ w, U
        }1 t3 X  k4 N; q  C
};
* x2 j9 E- ?* L3 Q9 ~: Z9 L/ j3 O/ ]# V6 Q
static int __init led_platform_init(void)
( p; F3 O0 V" t$ J/ ^{
" G$ v% x% {$ e, E& b7 x, Z& w- G        int ret;" X. A# W( o7 {; S- s, Y0 ^
#if 02 r: b: x" j& |; N! X7 ]
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  N1 g; L0 P8 @: m# G: C$ g
        if (ret)
% }8 e: l8 w% X$ R; B2 `$ d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 Y& a6 G* m8 _+ K
                                "%d\n", ret);  x# |# w3 o0 H: ?8 W9 |
#endif
  W8 Q9 S: P- ?        ret = platform_device_register(&da850_evm_tl_leds_device);
  P0 e4 T) @9 L, P  O7 j        if (ret)' I% r' w+ G: G& D. H7 O0 y
                pr_warning("Could not register som GPIO expander LEDS");" R1 W. r$ V3 Q7 S
        else
2 g8 Q+ _; e% j) k! ~; @                printk(KERN_INFO "LED register sucessful!\n");
6 v/ ]  r) `7 w0 Z. ?0 |/ I4 K7 B, z4 t0 E2 [& c2 G. ^
        return ret;7 e, u# V5 h! {; |; u; i: [4 o* D* i
}0 `1 N6 c- V1 G' l- a3 u9 u

% d3 O: O! w# q9 a+ ]) }! O$ xstatic void __exit led_platform_exit(void)
) k* F8 g' H: c) S{
3 o& ]5 ]5 I. u1 P! L' ~0 d        platform_device_unregister(&da850_evm_tl_leds_device);# u- P5 M) o. E# W7 m. b
# K' t( x$ j4 t- w2 g
        printk(KERN_INFO "LED unregister!\n");
3 e3 y2 y9 E1 g% G& w, o}2 D4 w8 e( \9 u1 S( c6 B

  V$ X$ R" o5 O" v# v6 wmodule_init(led_platform_init);4 |  x/ V* G2 y& B+ F
module_exit(led_platform_exit);
8 g" I+ w* G% o$ ^: U3 y$ T5 D
$ @0 S" H3 H/ }+ p* S! EMODULE_DESCRIPTION("Led platform driver");
8 L( z) R$ E$ TMODULE_AUTHOR("Tronlong");
" Y% k% g2 s+ i( o0 L6 kMODULE_LICENSE("GPL");
! C6 {) k2 y( n  I( N
3 z; A4 F. p9 J5 J2 M/ c2 B6 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 08:32 , Processed in 0.043734 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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