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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& |  l- i6 c' Z#include <linux/init.h>7 x9 Y: W8 Y6 n
#include <linux/module.h>7 \5 [  `$ l% m" V% _6 n" w" }) p
#include <linux/kernel.h>* V) h, w2 W8 Y1 V/ y4 n. t: ]( Y
#include <linux/types.h>2 g: a7 o5 @- n" W6 a8 Y. t
#include <linux/gpio.h>  j- Y/ Q+ s$ S! C
#include <linux/leds.h>
2 I2 B3 t8 ?, R! w( U8 y4 O#include <linux/platform_device.h>
2 n$ {& M6 O; A- f. a( V/ ^9 q+ E1 T' X# ~8 }3 H
#include <asm/mach-types.h>: g4 c. E+ J! y  S( M  U8 b2 ~
#include <asm/mach/arch.h>0 l4 d# M  C# U2 p% z' F5 n
#include <mach/da8xx.h>2 f3 \7 S+ s0 }; I$ J5 D4 C
#include <mach/mux.h>
- a8 Z% q' d( x& U
9 e/ I# \/ N8 Q2 Q' k#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, j6 e7 \3 j( @6 s) S9 z' d( N+ k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) }+ x* S/ `+ w: d, c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 x+ C0 X2 {% z' E3 Q8 _5 z# p( E+ H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ B9 |! D1 J  ]! ?9 l% e$ \1 U9 J$ q! E5 B$ N3 B8 p6 M
/* assign the tl som board LED-GPIOs*/1 E2 D4 n4 B; d+ W& s
static const short da850_evm_tl_user_led_pins[] = {
" p1 w& Y/ Q' j3 @; X' f        /* These pins are definition at <mach/mux.h> file */0 }# V1 W- M; l4 x& ^1 p6 f' k& d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! c# X4 Z; Z4 j% B
        -1
) C  j0 q8 k  f) t0 O+ P8 R/ H};1 c2 H2 y& u0 x" p  z
2 G! x  b1 n9 J9 F, g& z2 G
static struct gpio_led da850_evm_tl_leds[] = {: X. M* F3 z+ z8 z
        {
1 \* q0 i5 s3 k# M: u                .active_low = 0,
$ u1 ~2 ?, G+ M& W* z3 {- C9 n                .gpio = DA850_USER_LED0,* p: z0 ]& F) _- L" a
                .name = "user_led0",$ t& V5 p) v! k, O5 a
                .default_trigger = "default-on",
; a3 |+ k3 a3 j: w9 G/ i% I% C        },
4 k# m. E" ?- Y- {        {1 M# K9 y7 x. B. V
                .active_low = 0,
" F; W2 Q+ T7 `3 d$ H6 B                .gpio = DA850_USER_LED1,
) P" T) b( b% e. ?                .name = "user_led1",
% h. Y5 E  @9 a+ Q) \0 {" ]2 Q                .default_trigger = "default-on",
8 p( e$ n+ O3 q) a        },
6 e) R) M& ?) D( `        {
& g. P( _: b% ?; L: P                .active_low = 0,
! i0 ]6 V$ ]4 w% v; a7 }% G                .gpio = DA850_USER_LED2,
3 x$ |- V) Y. U1 Q1 Y                .name = "user_led2",
8 w  M% G/ l+ Y4 Y5 d                .default_trigger = "default-on",: s! y: e7 E' {+ ], d
        },
! p/ |2 M6 W0 p! B" n+ x        {
3 T& x2 h; N! d* R                .active_low = 0,5 a) r/ k6 S/ K6 i) b7 h1 z/ a
                .gpio = DA850_USER_LED3,* o/ u+ H/ d5 Y7 W6 U
                .name = "user_led3",
6 n9 `. t" G7 H. I' ~* J                .default_trigger = "default-on",
  L# z% _; Z, w: c# I1 b" F" U        }," {/ ^% f6 G7 l+ m) _; k
};
$ q2 j2 t- _) ]0 s; f
1 R1 z, S3 {/ Ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( q' D0 Q1 k8 e3 E+ c
        .leds = da850_evm_tl_leds,
' i% @  \% L6 Y) P# g& l. }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! X3 a. _) _% c};
) Q; f2 k/ h1 T+ L6 ^& T. ?+ }7 v& v8 I' t! O1 O) }
static void led_dev_release(struct device *dev)1 ]! }7 e5 w2 d( t  F) b
{
9 Z1 N7 {! l0 a};
4 J6 o6 K( K# r7 ~
$ Y5 T5 o0 Z3 N8 Mstatic struct platform_device da850_evm_tl_leds_device = {
! Z1 T% q7 w" o: z9 \% S! n        .name                = "leds-gpio",$ n  [* \0 z' G( V+ [% X
        .id                = 1,% |9 n: \! ]/ M1 u8 @# A
        .dev = {+ D' x4 s2 s' x) f# [
                .platform_data = &da850_evm_tl_leds_pdata,! G& S+ I, N# U0 n* @" U
                .release = led_dev_release,* l) ^. B5 ?1 w! N4 `
        }
  J. N: x* a: L/ D% a+ v};1 n6 L% X( \6 ^0 k( r% K

) Z6 g/ J' T  G/ Mstatic int __init led_platform_init(void)
. ]2 }/ `; Q! A  ~{
4 W9 W' r) \* }4 b4 ~) X% I6 _        int ret;0 _5 A7 ^; Y5 \' m& J1 P
#if 06 L( s/ Y4 E/ v( q1 o% ^/ @( n$ O' T: M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. g8 F. L8 m4 Q" M4 I" G        if (ret), [6 k9 G. W0 X+ d- w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; H. p7 M& x0 m- J+ t2 S# A                                "%d\n", ret);4 ^0 V7 n$ w* ?  ~+ A9 S
#endif
- v/ D$ g- }. P- f9 Q0 O5 ~        ret = platform_device_register(&da850_evm_tl_leds_device);8 ^( ?2 c- ^# X: F/ O
        if (ret): w4 j% a' i0 d3 f8 m2 @
                pr_warning("Could not register som GPIO expander LEDS");
: x) O8 e& ^6 P        else5 G/ J# o4 G% ^! {
                printk(KERN_INFO "LED register sucessful!\n");
( S) |9 j4 m) m5 C  o
; C, ]4 V6 P, s# U2 L        return ret;( }$ f' g5 L' o; y" L; K
}# `1 p' Y8 H; z! k" K

- R2 g  j0 L" F% u# s$ Z: W$ Jstatic void __exit led_platform_exit(void)% h8 |3 W6 B' H* @1 k
{" r) I& Y# Y4 V, \8 q3 O
        platform_device_unregister(&da850_evm_tl_leds_device);3 W, r. x; c2 Z$ |: D" b3 q+ s" v
8 e- Q$ v' Z) O5 o  W( t
        printk(KERN_INFO "LED unregister!\n");& I; I' t9 K9 R0 ]; N: }
}$ u3 i' ~# \' {9 Y

  L, o! B! z6 Z3 O" {3 C- x4 m5 l8 fmodule_init(led_platform_init);
) k2 h" d! |( S* Vmodule_exit(led_platform_exit);* Y# D; O8 F, S/ U, M
# b7 t4 |3 b$ w9 e- F  K
MODULE_DESCRIPTION("Led platform driver");; W9 C+ S& Z- F9 x4 C6 H; i
MODULE_AUTHOR("Tronlong");
5 o/ S1 Q) Z0 G, D0 n! H# nMODULE_LICENSE("GPL");: ?( A9 O- u5 u& y, Z
# W+ r) X: j9 ~: W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-22 00:39 , Processed in 0.039492 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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