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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" K) B1 f3 l7 [* D! w/ ~; l#include <linux/init.h>0 T. K- l* ^4 i& V9 l0 \
#include <linux/module.h>/ F6 ?( @: S  E& V4 Y7 t- s
#include <linux/kernel.h># n- P9 N4 `2 R& V
#include <linux/types.h>; C% U" _; @' t* d: s$ @5 y/ k* N
#include <linux/gpio.h>
0 p! V6 ]) V7 s) F* g8 T#include <linux/leds.h>& Z. |: U# ?1 W1 r( k
#include <linux/platform_device.h>. D) J& q' @5 l# u( v6 T  `
; ?6 H8 ^! m( P7 v1 |: D
#include <asm/mach-types.h>
" K- C$ `1 C. W7 X0 p; X, V#include <asm/mach/arch.h>
6 V. c+ \+ [1 W  v! R& J9 w% W#include <mach/da8xx.h>/ ?/ y5 F' q5 S8 \0 g. q, t
#include <mach/mux.h>0 t; N+ c3 s& |1 Y

1 b, _+ P5 G$ D" l5 N- S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ ^. Q) u' t; }* u% B# p- p9 J) D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ j9 |( p. a; Z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 D6 E- S8 r) n3 ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 y- e/ V4 K2 v9 g  h
( u7 |/ u" \: x/* assign the tl som board LED-GPIOs*/
' I7 n/ j! B* j+ g. n; p7 y8 Ystatic const short da850_evm_tl_user_led_pins[] = {
  I' G; I' L4 L4 `& O: @        /* These pins are definition at <mach/mux.h> file */
* S2 G: T3 {5 S0 r* `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 z, U$ {. s! T; m( `4 R" ?
        -1: ~( D# C7 t- p+ ?: `9 y0 g
};: k2 n  G; H- s
* R! S( g4 w- S
static struct gpio_led da850_evm_tl_leds[] = {0 L4 `  r0 K" A6 L. g
        {5 J6 E1 G) b( l& e
                .active_low = 0,% T- S, }& e% o' `
                .gpio = DA850_USER_LED0,
. f0 M+ Z/ g5 H1 _  _                .name = "user_led0",% K' ^' n! T& {0 O) ]* m
                .default_trigger = "default-on",
. j* b. j- {, D  m6 P2 x- t        },
$ x0 W- Q$ g& U1 d6 D        {
. G, X; t" N: k+ P9 Y: E+ L                .active_low = 0,
( m4 {% ~% G1 u$ K" B  f% o                .gpio = DA850_USER_LED1,
/ B) l! D9 B+ o0 T2 e( P                .name = "user_led1",
+ q% @2 Q3 k( B; c6 ]! u- t) K                .default_trigger = "default-on",
0 ]! M+ B. w: e8 l8 X        },
4 [' j/ U* ?9 ^' G0 o  V* y        {7 w2 C, r. Y" @% N
                .active_low = 0,
! p; |/ u. Y. j' q7 x                .gpio = DA850_USER_LED2,. b$ v3 S0 J' {9 i6 H3 \
                .name = "user_led2",' u3 A" X8 o7 m7 E5 l
                .default_trigger = "default-on",
0 h( y7 @1 L; C8 I8 \- S        },
8 d& F4 b6 y) X% U9 y  X2 m        {
/ u0 N# h% T" _6 R8 j                .active_low = 0,
" l7 R( n" g; ^  U                .gpio = DA850_USER_LED3,
0 }# O, S/ s3 E7 ^, ]. `                .name = "user_led3",# {$ Z# W" {" |
                .default_trigger = "default-on",) q* o- D: [9 l% t# D! b
        },/ C; m7 C, a9 @+ K  a
};1 N$ r* k" m* u$ ]1 F
/ @8 s4 ~& x0 X1 e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, @# G# x- u; r7 l9 i# k4 s        .leds = da850_evm_tl_leds,1 B6 ^! o0 |3 b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 {+ N6 e) C3 b$ B4 K};- G2 H) Z$ {  t' @% @! z7 q# Q

6 q6 e% C, I5 I; o3 Estatic void led_dev_release(struct device *dev)
) }, y9 v& Y) G! A5 h/ h5 A0 T{9 p" H5 @9 Y; H/ G( V
};
7 K8 \( n$ D" S8 d- S4 M( H( w2 L1 a. K
static struct platform_device da850_evm_tl_leds_device = {
# D' S9 A. _  A4 _$ N- X        .name                = "leds-gpio",+ u9 d% w; k0 Q) i! P
        .id                = 1,
8 n- [# `3 J) i% T9 b& S: M        .dev = {" H( d# ~2 }) h' Y  H; s( }
                .platform_data = &da850_evm_tl_leds_pdata,
6 ?7 }7 ~* C- q9 L                .release = led_dev_release,
# T4 U# d2 |' K  \& n        }: T  u; f( R! U" {3 |! a0 V5 P3 P
};! m& T  |: Y0 M3 n
, }. U8 ^5 {  r' U" m- P5 L/ r
static int __init led_platform_init(void)& W( o% S" n9 S; ]  p; C' g5 T
{
' _- Q- Z6 H4 g: v) Y        int ret;
* f6 m* _% W/ t6 @+ ?4 Z# H2 ?% w& ~# q#if 0% a7 d) [+ V. w6 p2 Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 B; b% C" n/ m2 f5 p( y        if (ret)
9 _* }" d' z* w( W# w7 R" ^                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 _; t4 z) ~( k/ Q: i  B6 r7 I                                "%d\n", ret);
8 h/ q" H" k9 `1 \7 F#endif' G, D7 r, E. \3 v- v
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 ]# s. |. F6 h' n% i% Y        if (ret)7 x" ~% c* J& ]' N; ]* Y# @
                pr_warning("Could not register som GPIO expander LEDS");% y4 v4 p$ D$ P1 f  w6 }
        else
. r! N  @8 [, u                printk(KERN_INFO "LED register sucessful!\n");, N( ]5 R9 y, N

  Y! t( {) I7 ]# v        return ret;
0 L: F3 T9 \: W- K( t6 ^}4 G9 M$ K1 s. d$ _  B: Z

! z! I! D& P' D. k- `* R$ kstatic void __exit led_platform_exit(void)* n+ ^/ a/ I; h8 M2 B# O; C
{
: j: I. m! N6 @: D) ^/ m        platform_device_unregister(&da850_evm_tl_leds_device);3 N- e0 y2 Z( Q( v) R5 w9 i1 ^

1 ]) N. L) I/ {: T: W        printk(KERN_INFO "LED unregister!\n");' A* m; |0 Q1 Q9 A5 w+ L% i, D
}
4 R6 y3 f# @, P* ]4 ?: c
" g2 B: m3 u( Z8 m2 {module_init(led_platform_init);" u# p: b7 ^9 q! P# M# D' g
module_exit(led_platform_exit);/ c, u7 ~" ]2 L, J
4 @$ p, P8 A8 j) t' X
MODULE_DESCRIPTION("Led platform driver");
# l. E, [0 ]1 O( `MODULE_AUTHOR("Tronlong");! D5 |6 W% E! n, n' \; ?& z
MODULE_LICENSE("GPL");' w2 ~/ I& h: g, O. [* V) R# U- D4 M

# a0 k9 X) x/ U* b: L: e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-6 20:07 , Processed in 0.041895 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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