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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 C, h5 z3 h8 b#include <linux/init.h>
+ f) W5 K, b6 Y% A#include <linux/module.h>
% z. ?, ]4 l) i2 r* o7 G#include <linux/kernel.h>: i8 k& w/ @2 o/ K
#include <linux/types.h>, L. N; S* }5 P, X; h, V
#include <linux/gpio.h>
- l$ ^* B* c( E#include <linux/leds.h>$ `3 K6 @( }( c7 Y- B/ O
#include <linux/platform_device.h>
$ H* ]/ M  [. O- d
+ m1 U3 U8 u, h  m9 {/ ?#include <asm/mach-types.h># e0 e6 _0 P6 f. i! E6 Y
#include <asm/mach/arch.h>
9 u( X. ~4 E3 L" W# }#include <mach/da8xx.h>
7 c- N) e- D9 i' n#include <mach/mux.h>! }/ T. k1 n% Z% A& y5 F; J
" v$ z/ l; K$ I8 L4 o# k
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" E) p) C$ N( s' l; `; U9 y. p#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* s8 A8 I8 h% N9 W" G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 j/ V. E! ]+ a0 g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 S0 i  v% w' M) G
3 u- W/ i7 Q/ O
/* assign the tl som board LED-GPIOs*/9 s; U/ o% y7 F, E' T
static const short da850_evm_tl_user_led_pins[] = {: e8 G% E) ^1 ^  S9 r5 y
        /* These pins are definition at <mach/mux.h> file */4 S: Z6 W, |' O$ r8 O
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& `4 n  F( z8 w8 ?1 \! R9 }7 B7 Z        -1, }3 _7 r1 T5 ~% Q0 ]. s$ e
};
, |1 W+ p1 t+ q6 }6 [) g' u5 a
1 A, l/ ?$ E5 i! @& u& ustatic struct gpio_led da850_evm_tl_leds[] = {
! c) e  O0 Q# p0 t" l$ c        {
1 l9 a3 K6 A3 u$ A                .active_low = 0,( T1 R, \# `2 m1 V1 A/ q' s. n
                .gpio = DA850_USER_LED0,
5 Z1 O( `5 J2 {- g& h                .name = "user_led0",/ w% i7 C# Y  o3 R7 t1 `8 _. `
                .default_trigger = "default-on",
. j6 U+ J7 p' v/ }1 k3 p/ r        },+ Q! n; w+ O; h9 u3 T' ~
        {4 y6 C. V3 e: [& c3 t
                .active_low = 0,
, P9 V( n- p+ v- H  u1 S                .gpio = DA850_USER_LED1,
# x! T) K( B  I& A: a                .name = "user_led1",
- `) z/ M" A( `, o1 j# N1 S                .default_trigger = "default-on",
2 M0 Y; P- g1 K. C$ v( Q% F$ H        },5 D2 W' S7 T- e
        {
! y5 ~, R. k/ m0 Y                .active_low = 0,! \% p1 G, E% K. {" r% _0 s
                .gpio = DA850_USER_LED2,9 ]' c, v2 {7 f! }, P% Y# r
                .name = "user_led2",* ^: i$ `$ q1 d% Y* x
                .default_trigger = "default-on",, {' b' w7 u6 T+ M7 F, \
        },7 }3 p$ v" K% [5 `) a/ i
        {- b; }4 P' R3 S6 P0 A- Z
                .active_low = 0,8 x' m$ c. `! y/ ^8 q2 x4 Z
                .gpio = DA850_USER_LED3,0 w  @+ G7 q9 F+ X
                .name = "user_led3",; ~- W3 [% N/ X3 w! s' K+ G
                .default_trigger = "default-on",4 x: d5 Q. I' V8 `! C5 R' e9 M
        },
7 ]6 {8 p, L7 p  H. k* |9 p: p: f};
% Q% r3 c: }( B2 G# Y6 C4 t4 A% e$ L5 ~# d4 O5 B
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" k) Y4 k0 M4 }% f$ e7 `6 P# @
        .leds = da850_evm_tl_leds,
$ w4 I% T9 b: U: V; j0 R4 i* K- W/ ~        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, _4 m+ n# e* S7 S, v2 X- A3 Z};5 P; s" D# \# g  ~

3 R" h: a0 p0 Sstatic void led_dev_release(struct device *dev)4 O  L  _+ Z' E  j/ h
{# \1 e2 V: U( O& L, M8 o
};
; l: c+ j# e* V) o" y
7 k9 n/ |/ n$ f/ c7 Gstatic struct platform_device da850_evm_tl_leds_device = {4 G" W# i" Q" T) Q4 q
        .name                = "leds-gpio",9 c. h1 a+ d0 K; Z0 w* C
        .id                = 1,) g" G( B* B" ^, ?6 |; C8 u
        .dev = {
2 s9 v+ g$ Y: l                .platform_data = &da850_evm_tl_leds_pdata,
4 S+ u! Y- E1 ^5 P3 E4 u; D3 }                .release = led_dev_release,
, f$ J5 R/ u+ L* L8 T) [        }; ?% U. \) u9 T2 A
};
4 e, ?; p5 |6 K& ~0 o9 |4 o( G, N) s6 L
static int __init led_platform_init(void)
) z/ h( _9 B' Z7 u( }6 W& O  h{' i& F# f& N' G
        int ret;+ o" e7 {* g/ K0 N% v2 _# J6 S! t
#if 0
4 F' e' s1 o8 c" N; E        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 s0 Q9 P) }- n- L2 m3 ~2 M% i        if (ret)) W% p, y/ E8 w0 G! [6 L" x6 B1 v6 A
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. r+ P4 M, |& d                                "%d\n", ret);
+ t! k7 ^" P. Y* c+ i' p7 P* a+ _% s#endif
  n+ [  ~1 {# E9 T, F. p        ret = platform_device_register(&da850_evm_tl_leds_device);4 k/ F( V+ T, t
        if (ret)
3 n& ~9 M# W8 W7 p                pr_warning("Could not register som GPIO expander LEDS");% O- H7 R% K- I, K! I& t
        else
" B3 D0 X* I$ [  z% @                printk(KERN_INFO "LED register sucessful!\n");% o! U' `8 k& @6 L- Y8 {
, M6 Z* C; m: n8 u
        return ret;- t+ A( |2 D+ B) z& d4 Y+ O, \8 O7 O
}
7 Z$ q4 m" {# [% H0 p! B
: ], a  E0 Z0 y5 H. V4 l7 Hstatic void __exit led_platform_exit(void)
5 P0 N7 G3 S. @! B8 e{8 J: S' }; x( G; t* D( h
        platform_device_unregister(&da850_evm_tl_leds_device);
( r* J+ e' W9 Y7 l0 V
% Y- y+ z9 F8 h- z- R! t        printk(KERN_INFO "LED unregister!\n");
  a' o5 s# \) h3 n}! }: l: B( d  d9 ^
" b2 K- N7 |2 [, c4 |
module_init(led_platform_init);- B; W. D5 O" t: V! A* m7 J
module_exit(led_platform_exit);# a6 ]! Y: u+ Y

* z' c  F5 h& tMODULE_DESCRIPTION("Led platform driver");
& H9 y" O2 M& @' T, S3 z) yMODULE_AUTHOR("Tronlong");5 h' ]8 @* H7 p( b
MODULE_LICENSE("GPL");/ m. ~0 k0 S) n1 O" a

9 E2 c" J+ @' C7 L& S6 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 12:49 , Processed in 0.044368 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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