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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- T  c; Q  S/ G8 S, ~#include <linux/init.h>
" V3 u. ~5 d' v6 Y( e- Y#include <linux/module.h>& J* \/ K$ ~3 o3 O8 D8 t/ A
#include <linux/kernel.h>) e/ A; z& t, y! M
#include <linux/types.h>9 S' S# n/ ~# G2 U+ i8 }
#include <linux/gpio.h>& \% }& p+ L; |" u2 x  B
#include <linux/leds.h>
8 x( J5 x" ^4 L0 z" P& X' E% g#include <linux/platform_device.h>3 K; |1 u; e) K" M" c+ T
% l0 [  z% s4 @+ M
#include <asm/mach-types.h>( ]( H$ _% m6 O7 Y- T9 v
#include <asm/mach/arch.h>
% E8 Z! x& Q, i6 j#include <mach/da8xx.h>
" d; {" w& |. W8 S! h3 T#include <mach/mux.h>6 I* L5 x2 Z; h5 b7 l/ i6 O3 P- d
6 `+ R. z" x, r( l5 A6 d% _
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 [  x/ S5 v/ m5 x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 ~: ]. A& [0 g/ n#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): S. A" Z$ B2 P+ p  D  P. d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- ~) s& L4 k. r. {" T, m' n
: l7 g. ]2 m& p& d
/* assign the tl som board LED-GPIOs*/* A) v1 q4 `% r6 X0 @4 s% ]
static const short da850_evm_tl_user_led_pins[] = {
8 B7 u+ O7 t& z        /* These pins are definition at <mach/mux.h> file */3 A  i2 B+ f1 Z% F6 U! Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 L+ o) @" K. K9 ?
        -1
1 r$ a, ~3 |. C+ Q};
8 A% O4 Y2 N& U" \8 D  @
) T% p  O- }$ [. \- G; g; Ustatic struct gpio_led da850_evm_tl_leds[] = {
0 c1 |' o5 i' y3 D* [2 d6 Z        {; K/ h  }5 G* Q% e4 o
                .active_low = 0,
  V0 P- v; j( ]/ w1 O& l$ R                .gpio = DA850_USER_LED0,
1 H/ Q: u1 l: ^                .name = "user_led0",0 m0 r. V# H! G$ i6 |
                .default_trigger = "default-on"," F! Q4 ?# q- C
        },+ }. ?! N- y4 s  y( u. j
        {
) D9 L" G8 O6 ?                .active_low = 0,  @2 O) q! L1 L* s. l" a) c
                .gpio = DA850_USER_LED1,! ~3 i$ r# a  D* f1 n* B
                .name = "user_led1",: c, L) u  W6 `. _. w3 E" m
                .default_trigger = "default-on",2 r% e- h+ U1 v# l' y
        },
; y* ]) I# _9 M) w( _. _$ ]        {1 Q* M2 I: C1 J+ y4 m( E
                .active_low = 0,
" j) i5 F' N( @7 d                .gpio = DA850_USER_LED2,
) R% j5 o7 r0 u% u  I! q$ U/ }                .name = "user_led2",1 }8 H, P" X$ N3 J& s6 T1 G6 o
                .default_trigger = "default-on",
2 x8 w( o* ]# h9 |9 e( C% b        },
0 ^+ Y4 ?% y# g9 ~+ m, N        {
% x3 y% w0 v) E  E  m9 @                .active_low = 0,
( S/ _7 m( k) f2 k  f5 X5 ~% f                .gpio = DA850_USER_LED3,
0 a) x  z6 g3 i$ z7 H( j  K6 |& k  i. X                .name = "user_led3",) [  `% G0 B/ Y/ [* C1 F3 J. v
                .default_trigger = "default-on",% z. q3 W, G+ @) o
        },; v3 z9 [( Q1 x
};) X- ]# |7 |0 F$ z- s* |% @
) W. O: c; Q& Y: u. ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) J  I4 y* @2 L. \/ T+ r
        .leds = da850_evm_tl_leds,
- I9 ^  x9 y& @1 W' a' J8 s        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. T4 K8 [( ]  k' K" O7 d};
; E  }7 `$ {  t
1 R- v, l$ Q- a6 {, istatic void led_dev_release(struct device *dev)
: H1 ]  n1 u5 r* J6 Q{
6 p4 Y, o# v4 \# Q. }1 [};
+ h) x# Y# N- J% F( [9 Q# q8 I, c+ j$ }6 r6 k7 g% R# V" r
static struct platform_device da850_evm_tl_leds_device = {
2 \' e0 T4 @5 M9 Z0 j) B2 p        .name                = "leds-gpio",
4 G* [7 Z( O' J" o. t. c# A        .id                = 1,
* k3 L5 `& A' Q3 v+ n& q) r        .dev = {
% H( J6 z+ V6 \$ b                .platform_data = &da850_evm_tl_leds_pdata,
7 h7 Z1 N/ Z% H1 l9 ?' I% {% C                .release = led_dev_release,: K# m) E# T9 A2 w: g
        }; v  F& u" K3 @4 P8 J& x
};
6 R, I" o$ E( N. x6 |# z7 a6 X7 {: P+ u) Y( D$ M. r: G* R
static int __init led_platform_init(void)
. K/ p+ a# A1 ~" I( `! o{2 ]. G5 ^: `( @0 X1 B6 u7 b6 O5 |) C% R
        int ret;3 l! t# y3 b8 q# ]: Q9 w! G
#if 0& [3 r- n% N" ]% H$ P/ Z" r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 S% {3 ]) |7 L4 V% |        if (ret)
% w( g2 K5 V8 R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. R, n* |+ W9 A1 m7 c                                "%d\n", ret);: z! y' a5 v- y7 F  C4 w
#endif0 ?) D; E* H! w+ n: c
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 C; k9 m4 Q7 q7 ?        if (ret)
% d" u/ h; ?7 n/ Y3 `/ W! H                pr_warning("Could not register som GPIO expander LEDS");
* g' Y, X, |, S        else
$ v# I) `  f6 W7 E: y2 m                printk(KERN_INFO "LED register sucessful!\n");
+ \' J6 |$ ~" F1 T" L+ V4 \
7 V: k2 W6 ?; w        return ret;+ R6 {) X: O4 i2 J# j/ Q
}1 Y- ?1 Y/ o4 G9 ]+ c' W
8 Y7 u1 {4 I# u! h. A2 g
static void __exit led_platform_exit(void)
" C4 S, B) I8 s6 T& E{# a% @, R2 g9 v7 C
        platform_device_unregister(&da850_evm_tl_leds_device);9 `0 Y3 q1 |# |$ G- o, `
$ Z  K. |4 a+ w$ ?: E
        printk(KERN_INFO "LED unregister!\n");1 R' k5 h3 p" v' G$ q
}0 K+ L! R7 P: ]  p
* k1 c5 [; c0 n6 f% F2 x7 u6 _- P2 o
module_init(led_platform_init);
) H: |. \. W7 {  }4 Nmodule_exit(led_platform_exit);7 L# P5 C$ C* u* x7 n/ U
5 M% g4 C: V. v, [0 e6 W1 t3 s
MODULE_DESCRIPTION("Led platform driver");9 I4 x, Z$ \7 v: l
MODULE_AUTHOR("Tronlong");0 q' q$ a$ [* Z) ?0 p
MODULE_LICENSE("GPL");  Q0 P( j! Z0 t7 w: {

; \% r, O; l1 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 05:52 , Processed in 0.037619 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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