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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: H& I4 I. f# ~0 U' q
#include <linux/init.h>( J* N( l/ @: x2 x6 D! R
#include <linux/module.h>
$ ?  k- u! e% R+ B- ^7 f5 @6 o  _#include <linux/kernel.h>6 q- _  }% |: u* C% i7 Y
#include <linux/types.h>. ^4 ?* u3 F7 D
#include <linux/gpio.h>; ~! F2 q& V3 K5 H$ R/ x1 a) `
#include <linux/leds.h>
! G+ q/ E) _7 u* H$ x#include <linux/platform_device.h>
% o8 d% i1 X1 ~: b  ~( b& V1 c' ~$ R5 V* g2 ^
#include <asm/mach-types.h>& m) W5 m( ~! F& z; Y+ _) [8 x/ m
#include <asm/mach/arch.h>
2 v% l3 t' K# o4 M#include <mach/da8xx.h>. A. C2 D& Q, c0 W# I& z
#include <mach/mux.h>& g& ~8 X" G; b8 W- ~% s) V

$ V8 ?6 V/ r5 I& ]#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* M9 j& h* @7 E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ c6 `! H+ D, f5 d' E5 {! {# J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 {* J; E4 {/ u#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ W1 T  A5 i. i: L

9 A9 m4 `  ?8 p8 ~0 l8 k/ ]3 k/* assign the tl som board LED-GPIOs*/
+ ~# Y; H& D7 A- Z! r+ ]static const short da850_evm_tl_user_led_pins[] = {9 r* t; e8 s8 O1 {$ ?; t
        /* These pins are definition at <mach/mux.h> file */" w  u9 x5 O/ j0 W, p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 h& F' o' g3 e
        -1
7 O, e( K" R0 S0 x3 b' t  I( D};
+ q. Y6 Q: v5 ~
( X* }& f0 ]: Z1 O) r8 jstatic struct gpio_led da850_evm_tl_leds[] = {8 F- i2 m  W% @8 B
        {
/ G# @1 b5 W/ t" F0 U0 S                .active_low = 0,
+ m) R+ [2 S' R  e. d                .gpio = DA850_USER_LED0,+ T$ i8 B) q7 `8 T& f# _
                .name = "user_led0",, x4 j$ X' Q% Q7 ^! l5 C$ Z
                .default_trigger = "default-on",
6 ?/ O$ W( X+ g6 I& x6 [        },4 f' h2 y+ M* a
        {+ b0 I; n5 t# f8 Y- b+ ?3 O; E) E1 u
                .active_low = 0,* @9 Y! H% I. ^% M4 _
                .gpio = DA850_USER_LED1,4 D7 d5 w1 F; R) V. g, ^3 d* S
                .name = "user_led1",. m8 I/ e1 v  |( \
                .default_trigger = "default-on",/ B* H* j8 y; i) _# n4 C
        },
" G; b  c% M9 S5 a: F8 U4 v        {
- g* \$ d1 _2 M0 c                .active_low = 0,
  t- s2 ?4 e8 }4 W* r                .gpio = DA850_USER_LED2,8 F. H: {4 \+ Y! w+ o/ U
                .name = "user_led2",
3 w( e  Z/ P' `& ~- R& G$ \' u                .default_trigger = "default-on",+ a/ h  z* u8 V" B
        },. a& t/ G. s# b( @% I1 U4 {
        {
! @1 J4 }3 a& W& V  J2 o                .active_low = 0,* n$ D1 w9 h' _( z
                .gpio = DA850_USER_LED3,
7 j9 F7 w- F6 o" f1 G) ~                .name = "user_led3",
, G) T8 E3 Y  U1 s0 O+ u                .default_trigger = "default-on",) c- i! v  C9 X2 ]- `+ S
        },
1 a+ w+ ?1 q. Z( Z# r};
) q; z! T; a' j5 |# N
$ t) U  B- Q* a. k- j  hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 ^/ q1 ]  n4 y1 b' T
        .leds = da850_evm_tl_leds,5 F" `' t. e8 G+ q- w8 [/ j7 U
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 s0 K0 L% e9 _' y4 Q5 R5 b2 x9 C
};
" d# A3 N( I. r' d5 k/ D  e8 \3 S% d' K) m* c3 \
static void led_dev_release(struct device *dev)) v8 o' r$ _9 s; g6 [
{9 Q8 r1 }/ \( O: W6 b* o5 n
};" ~$ m* _- }4 a9 k3 U- M% Y) Y5 l

4 ]1 r9 A( e, i- nstatic struct platform_device da850_evm_tl_leds_device = {/ _' a& R  k, s2 ]  C9 {& E! K% j4 i  s
        .name                = "leds-gpio",' F2 a# R( o4 ?* l6 g( _! x
        .id                = 1,
, n* R( x+ w/ M0 {        .dev = {
0 `: j! h2 t- f3 v8 c                .platform_data = &da850_evm_tl_leds_pdata,; a; W, H9 d$ h4 R9 Q* z' d( d7 \
                .release = led_dev_release,
% Q1 Z2 z! h6 Z/ w0 j) e+ J        }' Q& S3 ?6 Y- L5 p) }
};: L% A: h: G# H! b# h* b

2 O/ S# ?! U6 F& E, M1 Y- Ystatic int __init led_platform_init(void)! t5 A- I; E+ S- g) y0 ]: g
{
: P. d9 e/ K) z        int ret;: q1 R) X% K8 n0 L0 `0 m$ f. z0 m
#if 0
/ b0 h6 G1 }+ K3 n7 M. f        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ h9 p9 |$ m+ B3 U* W  ]9 @8 a
        if (ret)7 u" w% B9 o) ?! y. c
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ Q+ ]8 ?6 D& Y2 {( u9 K8 G                                "%d\n", ret);& N$ E8 ~' m# ~* N
#endif
2 d/ {3 ?7 e; R' Z7 {        ret = platform_device_register(&da850_evm_tl_leds_device);; d4 E( k0 z, D7 o
        if (ret): Y6 m8 W9 i# F7 F5 E9 }$ h
                pr_warning("Could not register som GPIO expander LEDS");- ]. `/ c: s. x8 X- {
        else/ o" _3 r5 Z9 C/ f. s0 ]
                printk(KERN_INFO "LED register sucessful!\n");
" I' I+ u$ |$ ~3 w
& O, l$ e; M* Z8 t# _' A% I        return ret;
) Y( @- o) @/ n" M2 k2 A  D9 m}
/ F% w) B" i! x! E; s7 g  t; z* l1 {( ?, {) W
static void __exit led_platform_exit(void)* _# H. i/ ?( c- r: H
{
% x* C; m( S. w$ K* z4 A) y        platform_device_unregister(&da850_evm_tl_leds_device);: ~, _: R5 }+ B: ?5 o

  c% @9 K& ^3 X- k% L" W' p) @9 _        printk(KERN_INFO "LED unregister!\n");
/ L7 A1 Q# c0 ]* r% Y3 f+ \* ]  b}  y5 C  w" {( S( e0 e: E

4 _; k- u  y0 S6 q) i; {' j) _module_init(led_platform_init);- C* C, t: m. H
module_exit(led_platform_exit);
' _# ^1 E1 h5 k5 u  v3 L9 g# p
5 I! q& @+ Y' SMODULE_DESCRIPTION("Led platform driver");# }& p2 T+ g% ]1 H4 Z: [  N
MODULE_AUTHOR("Tronlong");
, Z/ V! Q1 Y1 B' oMODULE_LICENSE("GPL");$ E3 w5 n6 D( ?  t  v& y

3 y4 Y- u$ j. _% c: R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-4 15:51 , Processed in 0.038220 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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