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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( ~) h+ x; H: T' ?#include <linux/init.h>5 @+ E. s8 y5 r6 e; U( l# y
#include <linux/module.h>9 x5 Q8 Q! F8 E6 ^7 S
#include <linux/kernel.h>$ T. j% k7 F& M$ n3 h: j+ ~
#include <linux/types.h>
$ s* l, j/ }% ]3 N, u7 Y3 I#include <linux/gpio.h>, _5 e! P3 V: H" f4 U$ G, k6 c. C
#include <linux/leds.h>; H/ K% ]  o' e- B0 _* D& _% ]2 ^+ P
#include <linux/platform_device.h>
  \4 ]( K9 {: V) e$ m% u" d" p4 K& F! [9 K$ m* y# `$ i' S
#include <asm/mach-types.h>
/ ?9 F, {- |$ v! a4 t/ U; W3 e#include <asm/mach/arch.h>
6 \; X0 P, Q' D' I' ?#include <mach/da8xx.h>% ?( ?- k( w% T" R6 H$ z6 O3 y
#include <mach/mux.h>  C& N8 _/ n7 g* V: P) M* }
5 J* w+ Z5 E5 E! ~& S6 ]8 k) a! U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 \# p. J: H, }0 ?0 k$ g! |
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 |: b8 h+ o; x4 y' \9 f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 Y7 z3 U# [' a#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 T) ~. c; V1 O$ n  e
% {: Y+ |7 K3 U7 U/* assign the tl som board LED-GPIOs*/
- s5 F6 T7 W' z: W" s) Tstatic const short da850_evm_tl_user_led_pins[] = {
; u8 |! [: g& s        /* These pins are definition at <mach/mux.h> file */
7 B' }: K, I* M1 T  p        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 [- S. _$ J; }$ h& J9 F4 b        -15 }0 z, K  R9 W' T7 W/ R8 a; f5 u
};
. e; I& b0 E( \9 b1 B; ]
# v$ g& S3 L7 ^( U- r2 X& Xstatic struct gpio_led da850_evm_tl_leds[] = {
6 P+ E! |- A& n+ t0 s- {: ~        {
2 ~' u1 F$ r3 r                .active_low = 0,' t/ K6 Y, ?3 x3 C
                .gpio = DA850_USER_LED0,; E' d& P8 m+ N; s# V; p# M
                .name = "user_led0",4 L2 N1 M% G5 W& J! U$ O( U
                .default_trigger = "default-on",
+ E* m5 l* k  j+ }        },% j! d& w- d, |0 M
        {1 ]/ h1 Z7 O. c0 ]$ ?
                .active_low = 0,
- K- P0 h* \) F' k4 R" h+ |2 w                .gpio = DA850_USER_LED1,
( ~: j" b- Z/ V' m                .name = "user_led1",) A! t- G% _+ B5 Y) H0 ~  w9 t
                .default_trigger = "default-on",8 ?4 o) I  X. _7 n" B2 @' t$ ]
        },- Q3 B$ l, V& Y/ v" X
        {
4 e; w, G3 s0 m& Z8 u                .active_low = 0,+ S2 y- u( d0 K: r  [
                .gpio = DA850_USER_LED2,/ J0 N9 z* N- \2 S+ \
                .name = "user_led2",
% O  v/ m- j4 S6 i& I* e8 W/ H& J                .default_trigger = "default-on",
* H- l- w- F6 P  N4 [% @8 m  ?( E# c        },/ A9 z8 d2 j0 W  o8 V! k
        {- W+ O/ c# r. B& D
                .active_low = 0,$ ~, ~9 t  x6 J! Q! w
                .gpio = DA850_USER_LED3,
* e' ], N) c' d                .name = "user_led3",5 p6 e8 ]' a8 h. u, T
                .default_trigger = "default-on",
! ~  [0 d4 U1 b. u9 O4 F1 g4 j  P        },
8 b) `3 j1 q2 s7 x( P& w4 u. \- T6 H& V};
& `4 c; p- Q1 H; \; @9 I0 N
; ]* Y- F! e2 C+ U& Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* W, ]2 W& }/ z6 r
        .leds = da850_evm_tl_leds,5 t2 ~) T3 F, @, K) d; d! l& q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( d9 ]8 c+ R) T) g. ]7 J: Z- }};
* F) u5 f. n, o0 ]- B3 h) r3 m' q* B2 l* [. o0 g
static void led_dev_release(struct device *dev)
( G, w( c1 f$ r+ H{# C2 p: |* I* u& m9 H
};& o. O& w1 l( T  v, {( d
. S& t6 I5 b3 h2 K" H9 f
static struct platform_device da850_evm_tl_leds_device = {
& S3 S  l. F% i0 f/ ^) B        .name                = "leds-gpio",0 \% N4 H9 l8 p+ g+ c3 `) z! d, I/ @2 Y
        .id                = 1,
& z% |! h8 s4 G1 z! A3 d        .dev = {
& x, U: h2 q$ W+ i                .platform_data = &da850_evm_tl_leds_pdata,) \& f  A& ~% r4 a5 X# }
                .release = led_dev_release,4 S( H" ?9 [, Y* H7 F( r
        }& K$ I# d: T- T3 p+ I9 G- ^& g4 Q
};
1 j. F: H2 J0 O0 \$ Z/ c# R$ r
* i1 h! x% v$ q% B2 tstatic int __init led_platform_init(void)& u  [  \. }# \- W
{& o. d4 r+ I( p4 @$ K0 U
        int ret;
" m% R1 W9 j& K$ T/ t#if 03 r6 r7 X1 v0 I! m, M. C5 }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' s- E- b- n  A: G& W        if (ret)) R$ S2 j6 e+ K" U' b  \& }
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 N1 f: l0 ^9 P- t4 [; |0 |5 V                                "%d\n", ret);
  n3 o5 B8 ~7 w/ [5 ~#endif
( z- M" e( i% ~' N% I' X2 q, D        ret = platform_device_register(&da850_evm_tl_leds_device);" G) P3 Y5 W6 t% a" |8 }
        if (ret)
8 ]& g, L# Y! G& A0 x                pr_warning("Could not register som GPIO expander LEDS");
  A. q6 \2 G2 C1 d6 C. c        else
& H+ s6 R/ Z# H; P3 P                printk(KERN_INFO "LED register sucessful!\n");
) N" Q( k) B8 A! \: v% Z
7 s4 k$ B" h8 Y        return ret;, _* @) d* k* a# |
}. O3 _  Q* ?7 M0 J) t

1 M2 O# S! X! A/ |, n! rstatic void __exit led_platform_exit(void)9 u, L0 E+ u) d
{
! K$ I; h$ S$ u8 o        platform_device_unregister(&da850_evm_tl_leds_device);' I# i( j3 N5 ?3 m6 n& ]
, W1 r- z5 M( A- W5 c
        printk(KERN_INFO "LED unregister!\n");+ ^$ l3 C9 ~' D! T* c$ o
}. C8 o! v& X8 t8 [7 I& U

4 v: d  p3 S" a) Q' `$ k5 imodule_init(led_platform_init);
% y/ ?9 J5 q5 l# Qmodule_exit(led_platform_exit);/ ^5 n/ M# v- g
; G7 v$ }* v9 |; r9 K* ]
MODULE_DESCRIPTION("Led platform driver");9 m" E. O" O' z, o3 V  e
MODULE_AUTHOR("Tronlong");* N1 l( E! x- C- a% k% b
MODULE_LICENSE("GPL");  }3 R7 h- e* ]" k3 {3 ~
9 ?, c+ [9 i) C! j* e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 08:23 , Processed in 0.040107 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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