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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 I  c9 E/ Z5 g4 F- V6 K; O* R
#include <linux/init.h>
/ r7 K3 J  r( \' z% o# r#include <linux/module.h>
) a  t2 h1 E/ ?3 Q#include <linux/kernel.h>% k$ w, r9 u3 P; s7 @2 w" P
#include <linux/types.h>9 I: U* e$ a  Y
#include <linux/gpio.h>/ L7 s8 m7 Q. [% g' u3 l
#include <linux/leds.h>9 l, |  A0 Y, C
#include <linux/platform_device.h>
+ H7 ?) S1 H7 K+ [
, A+ ?- l2 k; |' z* }  ]+ ~2 j8 @#include <asm/mach-types.h>4 C- _% T& t( r* y$ m6 n
#include <asm/mach/arch.h>
; f) S7 L& `( y, x; D/ f1 t#include <mach/da8xx.h>3 E8 F7 d  i3 O4 O/ M
#include <mach/mux.h>
: `+ X, v3 @" Y6 R" z6 Z  G4 o  Q( l0 D9 y  M5 @
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" t! K) x7 r- e# j6 D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- G, W' ]' X8 d9 x$ M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 u1 A# \/ D# v; D, L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 }1 Y- G) U$ Z' V/ i( `3 {

. Z+ c: u# A. g8 K5 M/* assign the tl som board LED-GPIOs*/: f1 W" ^- c7 q, n' Q
static const short da850_evm_tl_user_led_pins[] = {
  `& I3 q" i7 e        /* These pins are definition at <mach/mux.h> file */" y/ e8 B; i0 h# R) F* q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 L% Y" o/ b5 m        -1
" M4 Z5 s/ C+ D! p4 \3 J1 n};
1 @( M- G; D5 j
/ c! h, y+ }. w! C( F$ x6 {static struct gpio_led da850_evm_tl_leds[] = {
$ z- b- D2 w* A$ c" Q        {3 K& `9 R; t. s3 Y8 Y6 k
                .active_low = 0,
6 y, b6 E4 h$ Z" j                .gpio = DA850_USER_LED0,
' Y% @. f/ V6 k                .name = "user_led0",
. i. A# r# S6 R' t: y3 W                .default_trigger = "default-on",+ I1 A# [' a2 Q. Q
        },
* _  L8 R: s7 O  A+ F& u        {
5 f/ O2 r+ H5 `1 l                .active_low = 0,
: g0 K) q& b% q( L& D% g4 G                .gpio = DA850_USER_LED1,6 \3 t5 L. i& A6 F3 `7 _3 m
                .name = "user_led1",, T1 T( w  h1 Z. X% }* R: K
                .default_trigger = "default-on",
- ~( V/ K, B0 F9 Q% O% X( e        },
2 O' l+ ^. M! P3 r5 r7 G$ A2 F9 N        {7 `$ K4 X7 O+ {% Z0 o. ~  y) F) `
                .active_low = 0,
; m% p4 k  B8 z3 o& }; U6 k                .gpio = DA850_USER_LED2,
& u1 m7 C1 ]) w) U                .name = "user_led2",
) D& ~/ B8 P7 y) N+ v+ I6 T                .default_trigger = "default-on",2 N( m! A3 I" f0 b8 ^5 V& e; |! T- w
        },. C$ o1 e/ t) s* X/ c$ W; m
        {
+ p& J. z. f3 @% T7 X* D. f* O                .active_low = 0,4 u. h+ u2 z% A1 U2 k! r
                .gpio = DA850_USER_LED3,
% g- f" t1 M7 [) w/ F" W2 O                .name = "user_led3",' Z9 e! V: R2 A' c1 ?
                .default_trigger = "default-on",
3 s! R: A- L$ Q) t/ s        },
+ R/ b2 D/ {. i5 |1 l};8 }. ?) f# j: ?; c9 {8 p6 T

% F+ S- I+ F6 `: F0 Bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; K1 @( l2 C8 }$ A7 I8 P( R        .leds = da850_evm_tl_leds,
9 Q! G2 u% _1 g% C: H9 T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 J# f+ }7 F' _& T};; O% O5 Q0 d2 F; b; ?

1 _+ B0 ^0 l8 x% e, G  K$ O. h" `* v3 G6 [static void led_dev_release(struct device *dev)
; k% @. K% K9 @0 v3 m# t+ a{& |- k4 O+ f* }  w+ a
};  E, b% ~: F2 A( p& p
, E1 |- \" n. P5 m
static struct platform_device da850_evm_tl_leds_device = {' }1 @, V! B# d7 {  O2 \
        .name                = "leds-gpio",
/ v, R4 Q3 U% J6 d$ P5 S; R        .id                = 1,
3 C/ t; [* I) j2 j        .dev = {, w  D9 K" d8 v5 s
                .platform_data = &da850_evm_tl_leds_pdata,
% B) D6 o; I* z                .release = led_dev_release,' c1 q' I2 J0 T/ K! u$ N
        }
0 q! K/ T& g. B( O/ H; ~};6 y) A, |  K, ~% U! B
  b- E+ J8 s, s" A) P  _5 _- {7 I
static int __init led_platform_init(void)
0 j) x6 V: D7 K: X( ^{- B2 E6 ?( j& B8 ~: p, n
        int ret;4 c5 G% J5 b$ h. s
#if 0
' v) l, c- t0 N* A) q, h        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* F% o1 o- M- D$ K7 ]8 q
        if (ret)
0 r7 t: F$ h- ?9 m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% P6 u, V4 ^/ g+ r5 B                                "%d\n", ret);* i0 U  K5 D3 ~* J. x, }2 Y  B" F% H
#endif
9 _* d8 c. N; F7 _. L        ret = platform_device_register(&da850_evm_tl_leds_device);
; [+ v: i! h5 Y7 E; [/ y        if (ret)
5 q) h! Y; b2 r% ]2 \& |* K                pr_warning("Could not register som GPIO expander LEDS");% Z. M3 E+ l8 n; H' v
        else" X. F" {; d3 C8 E# _. h7 A
                printk(KERN_INFO "LED register sucessful!\n");
5 o( {5 G3 Z9 n4 f5 ]; ~8 K3 w( z
  R& e2 M0 u' u        return ret;8 `- E& t  p- C% J! B) O
}
, }0 S' ~$ z; P: z& J( j; b, W+ ^( u  _! Y& `. {1 o7 i7 ~; ~* r
static void __exit led_platform_exit(void)& Y$ Y' K# v9 a4 b
{
' q4 P" B+ u, b/ F8 b        platform_device_unregister(&da850_evm_tl_leds_device);
8 w8 ]: J* p; _1 q+ Q$ |% {, v' _4 ?6 n5 D$ q. H* d" u* _
        printk(KERN_INFO "LED unregister!\n");
0 {7 ?7 w8 x* O0 r$ |- g  k}. O' u4 ~9 t2 Y# Z6 b
. }. F( y1 G' G- {9 m
module_init(led_platform_init);
$ u; J! P. P: |* s* _+ T& B" G* mmodule_exit(led_platform_exit);* ?& x# x$ i3 r( m; F
- M' j* W8 X4 Y: w: W
MODULE_DESCRIPTION("Led platform driver");
$ s' b4 s8 @5 B6 ~! [MODULE_AUTHOR("Tronlong");; ]! n: i7 V0 B
MODULE_LICENSE("GPL");4 b% \' E- g5 y% F- a) y

* p5 i$ a* c, Q7 l3 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-25 09:07 , Processed in 0.038328 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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