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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ d4 M2 H6 r+ \0 T4 K, x
#include <linux/init.h>
- k2 A6 F8 E5 K, p6 K' w#include <linux/module.h>  ~7 E$ q( P' P& N; T
#include <linux/kernel.h>8 c; J! ~0 s7 i9 k0 y* g1 Z$ ]
#include <linux/types.h>
' }4 r: L. t3 k1 M5 J9 ]2 X#include <linux/gpio.h>0 y$ x0 k  ^, p. [  u9 k; `
#include <linux/leds.h>
- U8 ~% e9 `8 F#include <linux/platform_device.h>* T! P2 P$ {8 G

. J+ T& o  m, ]/ J/ I: S1 W#include <asm/mach-types.h>4 o9 y% i4 a5 L* o$ J
#include <asm/mach/arch.h>
9 Q' v* X& e6 o- O#include <mach/da8xx.h># S  J# o2 Y& v5 ~# ]4 \! M
#include <mach/mux.h>9 [5 E9 i8 E; e
$ a$ f3 U; K/ F% p$ s* O. J" ^/ j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 A; _0 R6 ]3 Q8 f9 |; V0 A( b
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 ~4 e% _3 q7 p: ^9 }* I8 K7 W
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ t1 C8 E! N/ ^+ t  o0 @#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  D0 ?5 Q+ K, A) s9 {7 w9 n8 t3 i* X% H, S2 |: h' P, Y% G1 `/ @; j
/* assign the tl som board LED-GPIOs*/# c# {1 u# T  c, ^- a5 p) T- u0 A
static const short da850_evm_tl_user_led_pins[] = {1 i0 x+ X0 q* @6 _3 d
        /* These pins are definition at <mach/mux.h> file */
7 m$ G, q6 ?/ A9 i- b1 F        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( ~# `, S' d$ y) t; d        -15 }) f5 f; l' T& p: I
};
8 A& ~8 E# j2 y. B% {- v4 R* F% A8 I' P; u1 Q# ?
static struct gpio_led da850_evm_tl_leds[] = {
  b+ o# v1 X: r- \        {
% ~* y( `( l! y* {                .active_low = 0,/ n# H7 A3 e. K& v
                .gpio = DA850_USER_LED0,
9 m, q; M) o8 O! s                .name = "user_led0",
1 g- J0 H* N6 [6 z/ o0 w- E                .default_trigger = "default-on",* L) r7 u. V$ f* V7 p- O% ~
        },% u% G6 Z% ?, m7 c4 L' p
        {" C8 ~: ~  x, l
                .active_low = 0,& T; U; |  W1 W+ l* m7 A8 f" N
                .gpio = DA850_USER_LED1,
, T! V( ]0 U4 s4 y5 ^                .name = "user_led1",8 A7 x/ V3 z) M  X( u2 F
                .default_trigger = "default-on",) }& C3 v- a, ~# v& {
        },
- v5 m7 l; @/ B) V  l        {
. b$ K3 M1 ?( P3 P: o                .active_low = 0,
7 @. S" o4 C9 C" D( a6 b                .gpio = DA850_USER_LED2,
5 t6 O, X- l, X" Y$ y6 u  T                .name = "user_led2",
- Z, z; ^8 n3 a2 U  P5 Z                .default_trigger = "default-on",
1 q  `- h+ H8 U! J% V        },# G' ^$ ^  f. |- h, O/ j" j$ n
        {
9 m5 V/ e0 _5 r                .active_low = 0,
' `& O1 B. w+ M5 R0 F5 x6 p3 p                .gpio = DA850_USER_LED3,3 ~# y) ^* k- `: ]
                .name = "user_led3",
  c) a$ N' D. X% v* ]2 v                .default_trigger = "default-on",4 Q' U- ~+ W. E! p: T4 }. `) s
        },/ h9 b7 h; s+ M% q3 K
};
" q) j1 O7 M0 ?# D0 C& y) l3 A; m( P" s& H5 I: T- h) _# J: b. m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ E9 L8 e6 N( G% g! N9 ]- c9 N
        .leds = da850_evm_tl_leds," G7 L: K5 [+ R5 N; r" j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 K8 l3 u3 s# v# P7 Q6 ~
};. M* e8 v4 g+ `) t( C

9 q6 t! ?1 `$ Estatic void led_dev_release(struct device *dev)
5 D, F- _9 K; y9 r: J7 J1 r. ]% @{  v* w- R0 i, |7 C% a( ^
};; ?2 i$ m6 Q6 l" m, L) w
& H/ t9 x5 u; j( R  Q0 U
static struct platform_device da850_evm_tl_leds_device = {( c* O( e7 Q% ?" L& D9 D* J' y
        .name                = "leds-gpio",2 J' \% V9 ?8 U$ q3 L+ n
        .id                = 1,  P  G7 M& X1 [) Q
        .dev = {
3 X& J, \+ S0 v& L' S                .platform_data = &da850_evm_tl_leds_pdata,
  a5 ^! Y' l* ^$ ]6 w1 C& x" P                .release = led_dev_release,: ]1 b3 U( B0 H& [% x
        }
+ @. |7 m1 n* v& O* t% n( ^};& s- N" n8 r8 n' x' v
' n0 q2 p. D7 X
static int __init led_platform_init(void)
/ N1 Q% U( o  M2 U! l{9 ]( i0 K- h" v* r% _7 c
        int ret;6 L. a9 Q/ I, l6 u. m7 O
#if 04 V, a: `/ J  R/ }; V" j" W# Y' g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; A; B+ a+ Y1 G- R  e
        if (ret)
( G0 g% W+ u: M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! t5 G( O9 e8 G7 i3 T' C                                "%d\n", ret);
* b" m( P9 N: q- C#endif
+ C; I* h5 V) Y        ret = platform_device_register(&da850_evm_tl_leds_device);! o' q2 A2 k4 K! s/ r5 C& H0 ?
        if (ret)
7 g4 P8 `. @- N: k                pr_warning("Could not register som GPIO expander LEDS");
: e- m+ N; M8 X0 q7 n        else
& S. u: y  W( m( _8 p, ~                printk(KERN_INFO "LED register sucessful!\n");" \2 g1 D  k, p0 Q  r

- k) q$ U3 t, Q, u: v5 Y        return ret;7 G% |2 b* a- Z' k
}
( q% t. D7 w$ }1 i" r/ n# X
# g5 _0 J3 Q) U2 V1 ostatic void __exit led_platform_exit(void)  [. k/ `$ E; H- O
{
" p0 S; I7 ~+ ~5 x; _8 [5 E        platform_device_unregister(&da850_evm_tl_leds_device);8 q" C& e0 a- z  w/ P9 J0 l

5 X' K" B3 S2 j& u        printk(KERN_INFO "LED unregister!\n");
# [2 L8 i+ [/ i- T+ `' q6 d}6 \& e" w5 X. @6 `) ^5 o

4 s7 N9 Z  u$ G" ymodule_init(led_platform_init);
+ i# ]7 y( y) ~6 wmodule_exit(led_platform_exit);
; [6 m2 K0 U7 m- K: i% l4 p
! w# [. M  e5 mMODULE_DESCRIPTION("Led platform driver");, U. J; p) w. y/ b  F5 h
MODULE_AUTHOR("Tronlong");& k( z$ `# d/ g0 N6 I$ V
MODULE_LICENSE("GPL");
- G$ S* J* O/ R% ~$ `% {, T& u* z) [7 _- n9 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 12:03 , Processed in 0.040564 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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