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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 m* h! V1 t# m) y* X& U#include <linux/init.h>* c0 r$ i5 }$ A% g, j! _
#include <linux/module.h>$ O5 t" u2 F6 q6 ^$ J! `' m' F' H
#include <linux/kernel.h>) r; N% c  [% U7 a2 r
#include <linux/types.h>
# V6 B9 w+ p5 m' z" m' U#include <linux/gpio.h>2 D  e: G+ ?% o2 j" @3 X
#include <linux/leds.h>9 }, D8 r* \+ W
#include <linux/platform_device.h>4 y' P. m& v0 r. M! V9 c

& o! B; r+ l% K: L# U- k#include <asm/mach-types.h>) i6 \6 i2 P  i% ]
#include <asm/mach/arch.h>
7 y, g2 |) H6 n#include <mach/da8xx.h>' o9 m5 B, d% N" D* A; C' u
#include <mach/mux.h>: u* T0 X  ~% {0 I) k

8 g( r& Z" n* v1 E7 v1 K0 D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* i% w7 i$ K7 h# `9 J' }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 t# k! `4 c# L4 ]6 W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 V& M# w: {! e/ h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 _5 I* @: X+ p. m- ^; c) k8 q  [+ Z  |  C/ k; B3 P
/* assign the tl som board LED-GPIOs*/
' P0 Z) q2 j! @0 }+ `) [static const short da850_evm_tl_user_led_pins[] = {
  R% T5 z7 {9 G9 o        /* These pins are definition at <mach/mux.h> file */
/ q# t0 \+ z3 G: }% b' f; f4 [        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 Q  E6 O; r  j, e; p) v4 c3 x3 U        -15 X/ g! l7 M* M7 e6 B7 x0 t0 t- E
};
6 n9 h& L+ e2 S) d) d2 p7 w( f0 p& _0 @4 Z+ [4 C2 a+ ]; z# p7 F
static struct gpio_led da850_evm_tl_leds[] = {8 q) ?0 e" S* O  g- Y* H
        {
0 t/ k3 d  b+ g4 ~8 ]3 T7 `                .active_low = 0,
2 e9 d( V: ?' S- C                .gpio = DA850_USER_LED0,
4 f" {+ o& v8 z* b- k                .name = "user_led0",3 ^' \6 z' B0 K& ]; A2 |2 k) Y
                .default_trigger = "default-on",  c# I: q1 p( H5 t- m2 G- V4 ~
        },
1 y  B9 e5 T1 c- P& W* l        {4 F9 l1 h  p- _- h
                .active_low = 0,9 m9 K# |  N2 [) Y
                .gpio = DA850_USER_LED1,
( U3 }% o6 n6 {                .name = "user_led1",
! Y. H+ V/ j5 {4 Y, J  r                .default_trigger = "default-on",
# A, @% \7 Q' s3 c# G0 q        },( J% }5 R5 B! i& l4 d$ Y
        {
- A3 v6 H- K. @2 |# u: c# Y                .active_low = 0,
* }# m% P: s5 Y5 T7 f                .gpio = DA850_USER_LED2,/ |. L8 t7 e2 g. [# w
                .name = "user_led2",
' [- ~  B: @9 I1 D$ z) M  B                .default_trigger = "default-on",
$ f  b/ p2 w, y" n$ X        },
' r7 G. g1 U- G9 N4 z! f  z* R        {( Q4 q2 i: A2 F/ b8 r% N
                .active_low = 0,, r5 ~$ [8 U+ r: z$ T# c8 j4 e" d
                .gpio = DA850_USER_LED3,/ p  f/ S# i4 J  i3 k
                .name = "user_led3",; g) q. [: ?( a5 G5 k8 A' e
                .default_trigger = "default-on",
+ N" L2 ^) k1 L$ H( @        },2 ~( ~4 L! o4 V* e4 A/ X
};; r7 C0 {1 {! f3 Y+ e
/ I: J- \1 M; B; o3 H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 ]- O$ W& y3 E, a
        .leds = da850_evm_tl_leds,4 l: I! A. [3 P4 D: `. z  E
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* v4 ^* p* U% B( v6 H7 C
};
. Q' V# U- h5 o( C+ r% k. g8 }/ ^/ K
1 C1 a. ^! g8 g" o$ l& K) Y% xstatic void led_dev_release(struct device *dev)* r/ B! U  _1 K: m5 W+ A1 o
{
8 C. @% w; f# o) B% X0 i" @};
% O* q* |9 v( k3 K/ J4 y& |" L7 }9 r* j: z0 w
static struct platform_device da850_evm_tl_leds_device = {
+ F$ w, M) j* f9 k        .name                = "leds-gpio",
* \" ~: u9 P  d0 u        .id                = 1,
9 e$ ]! V- t) ~0 a' ?        .dev = {: ?- Q+ f* d2 H. g6 ?0 Z
                .platform_data = &da850_evm_tl_leds_pdata,7 a* t% P9 o0 Q% P8 A2 H& v2 Z
                .release = led_dev_release,
# g" K& m2 {  O' A7 y5 s- e& N        }2 h5 u: i$ i5 M/ s, g
};
- x( s. w" [( U% h! Y! L7 T# V% b7 m2 ?# g3 j
static int __init led_platform_init(void)- ^8 h2 k0 K- ]7 `
{1 Y! C, Y: q5 z( I6 @6 E5 }
        int ret;
* U5 u' s$ [6 m5 k! d#if 0% Z4 d# d; q, m& L$ s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) x9 C% j* |9 s% h5 |6 i- q, J        if (ret)
+ @/ S4 p5 `: d) t: \% F7 L" ~1 K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 n, ?& P  {: H( b; u4 z                                "%d\n", ret);
0 a! Q5 j2 V+ }5 c: M#endif
# ~9 _, N/ i' e: b$ L/ Z0 B) w. x% A        ret = platform_device_register(&da850_evm_tl_leds_device);
) z5 ?0 y  T6 H) T- y        if (ret)
% K7 y# m& _$ f$ i" }                pr_warning("Could not register som GPIO expander LEDS");
8 ^! C5 I. a$ u9 u        else& A! ~4 r& F& x) f
                printk(KERN_INFO "LED register sucessful!\n");
1 ~; H0 S# I2 m& p% R. _" {3 K
" `8 ~: I7 @3 e5 M" T        return ret;
. w3 h1 [0 t) {7 @9 A+ A! l6 s8 u}
$ B# K1 X" V8 w* E0 `
/ y. M* @" @7 F6 u8 ^6 U9 pstatic void __exit led_platform_exit(void)
( z6 G) E, c7 q$ c( v{
  K$ @4 P( i% l3 |$ x# Z        platform_device_unregister(&da850_evm_tl_leds_device);6 w1 o1 S" D) e0 a' p

' c" k5 o3 J1 `" J9 p        printk(KERN_INFO "LED unregister!\n");; t( t5 e  K! b
}
& X" e' A* ~# c. I" j' g. ^8 J, W/ ]) e. i$ J
module_init(led_platform_init);
, `/ p& c9 z# {. d/ f; S- \module_exit(led_platform_exit);, k) i$ }. j. U3 F7 P
/ Z" C% N2 n1 }( o% l* U' K" g
MODULE_DESCRIPTION("Led platform driver");' J6 Y. B  }; Q1 [
MODULE_AUTHOR("Tronlong");
; ?& U. i2 S  n1 bMODULE_LICENSE("GPL");
' F% n7 [0 P1 I' v( d+ v$ I  K* s( M' |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 05:06 , Processed in 0.038343 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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