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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 w. X+ D5 g& q" j% ?5 r! n$ @) k$ x
#include <linux/init.h>
+ Z$ G; n  X2 D! b" X) s#include <linux/module.h>
2 T5 A, L3 r& [9 X% P#include <linux/kernel.h>
7 E1 U$ P8 e, Z8 E2 {  s#include <linux/types.h>" k5 `( u1 n% d) B2 A: y$ y- G
#include <linux/gpio.h>
" Z* M; _) l* j6 h6 E#include <linux/leds.h>
; R6 h2 ~. j) i0 \" V#include <linux/platform_device.h>
2 J0 G) d% p8 [; w8 H+ ^/ w, M4 i6 F, P0 `9 o
#include <asm/mach-types.h>
6 d$ t4 m, m+ F6 I#include <asm/mach/arch.h>
7 @# B+ I& H8 ^. d( ?#include <mach/da8xx.h>
% h5 @+ B# N, n#include <mach/mux.h>
# \5 @  L: ^( {' ]9 @& i4 A, y! d7 m& ^- S) d6 \( i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- R3 o( L8 a# Y- _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 w, J- y7 O0 p2 r" a; e0 P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- i0 S8 J" s% Z9 m8 r+ ?
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 q2 E3 E9 P3 O8 Y5 v( ~8 G
$ z8 d& b9 s$ O4 L8 s( f' {. f
/* assign the tl som board LED-GPIOs*/
2 s  e) E9 Q* {# E% jstatic const short da850_evm_tl_user_led_pins[] = {
- d( k! ]  K2 l. }" R* [) X$ s        /* These pins are definition at <mach/mux.h> file */
" r5 g$ j8 k3 f3 {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  B# }& n/ B9 j  m1 F3 P; z        -12 i9 M) ]3 X6 p4 }* J( V
};" W$ m0 \: c$ x0 q
( M" q$ y+ @- b" Z& b0 E
static struct gpio_led da850_evm_tl_leds[] = {) f! P9 L! h2 X7 I* }7 t( q
        {
) h  r1 b: E, [( F                .active_low = 0,
. Q( g0 @7 R) q0 g# n                .gpio = DA850_USER_LED0,6 Z& |$ ]  z  w! ?* i
                .name = "user_led0",
. d* U4 |8 B- Z8 q7 @                .default_trigger = "default-on"," w% B1 I8 H# c( S
        },
# R2 s6 k- C- A: y        {, n( O5 }/ F7 c9 \" l8 d
                .active_low = 0,! e+ t& d. f& s+ \- a
                .gpio = DA850_USER_LED1,
9 `! l- [) ^) F: l4 u) Y: o# @. j: ]% B                .name = "user_led1",
% m+ N1 r* I% I+ w4 O                .default_trigger = "default-on",
9 M1 k. c5 T0 V        },
0 [, [! ~2 i) M& f        {
$ a8 D) j  e+ W. x* U% \                .active_low = 0,) K9 l/ Z0 I& I' G/ H4 T$ O+ V0 P
                .gpio = DA850_USER_LED2,
. _2 G- Y' D7 _& m) c4 `, a                .name = "user_led2",
/ B  r7 j7 B) P' l/ g                .default_trigger = "default-on",
, [" W  `* h; N6 b- l# \- x7 L5 F        },
$ Y* H1 V. @. o" I% a# Z% o        {
8 N+ t/ B1 u: }9 g: Z8 p8 |) t                .active_low = 0,
% U# ?9 u$ I6 e1 o5 }( u1 E9 H                .gpio = DA850_USER_LED3,! a7 B. g$ G: i: a0 N
                .name = "user_led3",- M! h+ m/ b2 a9 c7 ~" y
                .default_trigger = "default-on",
& W& M% T( `* U; P: F        },  d4 N# Z/ i; \. a
};9 [* I" d7 }! }8 Q( k+ q2 x1 ]
# `4 S3 H9 z) w3 `1 @4 S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; c) I7 r7 l# k, `+ k9 F
        .leds = da850_evm_tl_leds,
& [& f1 H0 e- l/ z$ ^) \+ H        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 _! k5 C- f" U, A9 L3 k8 s: ~* h};
% N; g" g$ W  x: U$ |9 T7 @' n& L9 }6 T
static void led_dev_release(struct device *dev)
2 W# o" i- U* F* X0 Q# k& e{
  N( }( @( }* ?6 U' p};
# \+ q6 U+ O6 I( j# e. O: f  l* D6 }# l, e* a7 ~- R
static struct platform_device da850_evm_tl_leds_device = {" A1 y) q# k; W5 O! T$ o
        .name                = "leds-gpio",
+ \. A! ^7 p- Q  B- X6 ~        .id                = 1,+ S, L# p" Q# Q1 R: Y$ N( u0 g
        .dev = {% R5 k+ G$ l6 Q  f' Z
                .platform_data = &da850_evm_tl_leds_pdata,) D6 |% m3 s( A. x+ M6 Z6 w/ [
                .release = led_dev_release,
. t- I4 m0 o0 H8 X: ]6 O3 P' |        }- j+ G3 O$ n. U* h! @( Z. Z+ k# \6 P
};
3 s' F6 L0 x$ L! j% w# M1 X, o- e8 J% B
static int __init led_platform_init(void)0 T& H3 H2 E- w+ B0 r# a  ?
{4 F; Z- U8 ^0 N; d
        int ret;
: Z( R' W3 }- P; |#if 0
# P9 @8 M  P* y. g, I& K6 v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) j- b. Q0 l1 \2 C4 N9 I/ m, i
        if (ret)
% j6 L5 p/ H3 h# Z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* [" n! y0 G3 @8 b. K. S                                "%d\n", ret);; ~4 H. f9 P( x5 S. f9 r- w: M9 c
#endif# y4 C! t- J2 ]  i& w$ l. ?6 p
        ret = platform_device_register(&da850_evm_tl_leds_device);
* p# P; S0 S1 ~8 L% l) T5 F# j        if (ret)
' w2 c, t% S/ Q5 P0 x                pr_warning("Could not register som GPIO expander LEDS");2 u: E: R8 M) u, D
        else
+ K* N- v8 }2 G, r0 ~9 t+ v( c                printk(KERN_INFO "LED register sucessful!\n");( b/ I6 s) u. H2 o

6 x+ }1 n4 Y* T0 C5 c. }        return ret;
/ A9 e- j" A4 s% I* k}( O* y3 E. t' d- F8 B

/ a4 c9 ]4 r8 c, Nstatic void __exit led_platform_exit(void)
  S1 D6 W( f/ o* v( G{
& j; W- c: K) Z, v# L        platform_device_unregister(&da850_evm_tl_leds_device);2 R! Y- M" @! c. n

8 ^" H1 N3 F" z# S) B        printk(KERN_INFO "LED unregister!\n");- r5 d0 |+ |( w! B
}0 g* k; N! q' ~( r: C
0 J, d$ P: R8 W: B: H. j: H$ U
module_init(led_platform_init);, U9 B1 x& v" P% x+ Z  r
module_exit(led_platform_exit);
$ M, e& u  t' f+ H0 n7 }0 M+ C0 v0 q  f
MODULE_DESCRIPTION("Led platform driver");4 ^0 F$ G" c4 X
MODULE_AUTHOR("Tronlong");
4 O3 J8 P' V6 s) nMODULE_LICENSE("GPL");
# Y- q8 s1 q7 q5 Z4 d0 c, `4 a# K. S( o; \* A, V0 |- k: F- V' l7 L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 14:56 , Processed in 0.038828 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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