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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* f6 X) Y5 c/ ]: E#include <linux/init.h>
6 Q" S( T% X: U#include <linux/module.h>
4 u  b1 x0 [2 }# U2 d4 S8 `5 K#include <linux/kernel.h>
" J( ]. z% Z( O+ U: e  O#include <linux/types.h>
  a3 h$ ^* @; S+ J; x* m/ F#include <linux/gpio.h>
# l* r% X/ w5 W: q. t#include <linux/leds.h>
2 o! w% T) B4 v6 ?2 k7 |* K#include <linux/platform_device.h>
) W7 U$ Q0 r  l# m- ?+ B* ^# C8 t7 @+ j" F5 @8 }
#include <asm/mach-types.h>
. B$ o. }3 G' ?! B' H( T#include <asm/mach/arch.h>5 c* p% {" v8 E3 q' X1 y7 L( ]+ O
#include <mach/da8xx.h>/ Q6 y6 y- |( _  ~) d3 `
#include <mach/mux.h>. {+ k  D' W7 Q1 r1 `

6 U4 T) H3 ?. {# |; h#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 ^' u# g3 R' x  z, e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) {+ v6 x, X+ l# r) Q) i( G# _- D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# A; R! H) q9 s! C. Q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# i4 c/ a6 \4 c- q; B3 _! f7 H
% S1 _" ?: g+ G& Z) G$ w
/* assign the tl som board LED-GPIOs*/! h5 D& B& a; v8 n, k
static const short da850_evm_tl_user_led_pins[] = {
/ y3 E. `, J/ i9 |; a$ U1 H$ e2 x        /* These pins are definition at <mach/mux.h> file */
7 r" e9 }* {) B5 ~7 A, D        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  c0 U0 M& S. N  `9 U' J. W        -16 F. j1 D0 M0 b) Y
};
, u! n/ ^+ m3 s# U
. q" q; j5 ?( a( K+ Sstatic struct gpio_led da850_evm_tl_leds[] = {5 k4 m2 |. x& H6 O, H
        {2 D- W9 J; j( e7 K
                .active_low = 0,/ Z2 H& g& b0 e* T
                .gpio = DA850_USER_LED0,* I8 F. i) ]5 x' v, R( M/ B
                .name = "user_led0",
5 J* ]+ P# t1 S" w, u( r* m                .default_trigger = "default-on",
- \. e1 ~8 }7 A  Y  L        },
) p. `6 }: q* j/ @# l        {
: ?) N! R% I& n8 b+ k                .active_low = 0,
4 ^; J6 z1 ?, j$ Y                .gpio = DA850_USER_LED1,/ t9 j  x- h( |7 M: x; X# P
                .name = "user_led1",: A7 r5 n& |6 g3 N8 i8 x+ o' x
                .default_trigger = "default-on",% H5 m* o; Z+ F, Z- o1 [( d
        },% ^; I/ b8 s- H' \! X4 E; k4 o! U6 z
        {2 g% G' t9 g3 d4 {+ E- }
                .active_low = 0,
: a/ @# K# e  A                .gpio = DA850_USER_LED2,/ q4 d# \: E3 l1 j
                .name = "user_led2",
& h9 m( C$ k/ `3 R; j                .default_trigger = "default-on",
5 U) D  `! Q" r% z        },
) d( z4 F$ s" d        {
2 F$ ?6 b( f, w( R, Y* Y                .active_low = 0,; F; Q3 }% K$ _5 {% r! O) E1 r
                .gpio = DA850_USER_LED3,. w& k% H' v3 p, T, @
                .name = "user_led3",7 f* r5 `! M3 Q  M
                .default_trigger = "default-on",$ ^; k5 ]! V% J$ s
        },
* J* A" L9 v3 P};
; c+ r. T( {8 I" c. s! p$ y0 i5 n9 w" g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 S3 c2 [5 N) o  d  W# d        .leds = da850_evm_tl_leds,9 H2 M# T* @$ ^6 K, |) ?9 M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 o& }' {1 ~* e+ v% C* U};
; X+ |0 k, L8 w: c( P/ E1 ?) Y( Z+ W, M- p7 z, D; U4 T- M
static void led_dev_release(struct device *dev)
  W- P, H& Q) x% t% ?{  x, C7 C, D' g. a- @( p
};
  m/ w" `+ f4 {# k1 ~1 d" z! ]& D/ |9 Z: o1 l
static struct platform_device da850_evm_tl_leds_device = {
7 M- C, K1 X) }& n        .name                = "leds-gpio",
$ x* }8 P% p: W: C: V        .id                = 1,
" [- Z1 N' S6 I. O, N8 W        .dev = {
! C5 _# D0 ~& |# y3 I- c6 v                .platform_data = &da850_evm_tl_leds_pdata,
  V! b; L; h# l* @                .release = led_dev_release," {. P/ ?+ M, E7 `5 j
        }+ F8 Z5 h0 \& t2 S% `* u; w
};. F, t( m" T" v, v! `4 M
4 }' l. J! V2 W, Z6 ~% F, n
static int __init led_platform_init(void)8 }; o" H4 Y4 M2 N4 L
{1 m) B, y7 f8 o" [7 F% x. P( ~) I6 j
        int ret;
5 q3 O, f  w. ], X5 P#if 0. z0 \: S6 D4 ~+ w0 [. Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% C7 \1 P. ]. m        if (ret)
  L. e5 ]- n# H1 M* F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 ~# r. o, ]% @2 b+ _7 D* Z; r: E4 S
                                "%d\n", ret);. k1 ]6 }0 B: n+ F' B/ C
#endif1 r/ u& U! a. Q; C
        ret = platform_device_register(&da850_evm_tl_leds_device);
0 T& H5 U9 y$ V! U# a! K; x+ ]        if (ret)
( x8 ~) ]5 ]. O2 V; q3 j                pr_warning("Could not register som GPIO expander LEDS");
8 U1 M, R7 ?: H; g* [        else
& @" j$ s+ p: \                printk(KERN_INFO "LED register sucessful!\n");1 s# E* @* c, z$ r: x

" L( k) L6 n/ \3 C/ Q6 f        return ret;
2 u* n1 b) l2 R* M}/ t( o% C0 \# q, O
4 G+ ?6 L4 \. L! l
static void __exit led_platform_exit(void)$ p8 o9 ^. X4 z' q& [9 m1 R
{" x5 k$ x: w% d% k
        platform_device_unregister(&da850_evm_tl_leds_device);
5 V. f$ o8 `( K% }( y/ \
2 P9 \1 e- v% k        printk(KERN_INFO "LED unregister!\n");
& P8 E3 ?: }! X/ N}, D9 J/ G8 k: s% t8 I3 }
# }, n% a2 I0 N2 W  a# J
module_init(led_platform_init);- E+ v% i% w. \# A. D' o5 f
module_exit(led_platform_exit);
1 R1 x9 C/ U2 m2 [0 y! U) u) x9 |9 L) M! h9 y( q
MODULE_DESCRIPTION("Led platform driver");
  f2 ?" U4 S' S9 VMODULE_AUTHOR("Tronlong");
7 s7 m; O- ?4 MMODULE_LICENSE("GPL");
7 R- ]4 B& b, j/ l) F5 g# x  F
# G7 y$ Z) [; A3 Y/ n, z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 02:23 , Processed in 0.037948 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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