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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 A5 L' o! _6 g! B3 ~. T7 X  W#include <linux/init.h>6 ?4 T9 X3 t/ J: J/ z
#include <linux/module.h>1 v# k) ~. K* u! ~( d
#include <linux/kernel.h>
: l; l* `5 c2 n& M* z#include <linux/types.h>
5 E6 _1 Q1 l; m2 Q5 S#include <linux/gpio.h>! S( T+ P: o7 q- g( C
#include <linux/leds.h>5 n6 }& E. J- r2 p
#include <linux/platform_device.h>3 ^9 i. Y( a/ Y$ K4 {; m

4 \+ V0 a( J5 o# ?* i9 S1 R& g+ y" j#include <asm/mach-types.h>
8 v4 e& ^: A8 Z2 ]#include <asm/mach/arch.h>  _2 r* ^9 ^) l# ?2 `- h
#include <mach/da8xx.h>: |! D) q: j# d4 B5 k- }/ H
#include <mach/mux.h>9 A+ g. {6 P3 F$ C3 n
6 G& ?1 p2 L) F1 P, w/ v- D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- \3 c; ?: X# j3 b#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 K0 Z% I9 A* S( e) ?! ]
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' ^$ k" T$ R& A; ]#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ J  [2 G" T) L* r7 w% J1 ~- S- A5 V# q
/* assign the tl som board LED-GPIOs*/7 R4 {9 E0 H( j/ Z
static const short da850_evm_tl_user_led_pins[] = {! ^$ @* m. I8 e! S# a
        /* These pins are definition at <mach/mux.h> file */
% [. [: T4 d5 }# S% p+ m        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 W0 M. r/ P+ @
        -1
- A( \9 V% g% C6 n& F* ^% d};9 d% A5 [7 }  {& x, b& p0 a

0 d+ I# V+ @2 [/ Z+ M! J2 Kstatic struct gpio_led da850_evm_tl_leds[] = {
6 u% q2 J! m) A  y  e        {( \% [: Y$ A0 }
                .active_low = 0,3 a2 ^! P: ~8 R" Y5 J+ \
                .gpio = DA850_USER_LED0,9 {6 i" e. P8 {% g* m0 S" U/ d
                .name = "user_led0",8 Y6 o7 c* m# C/ ]
                .default_trigger = "default-on",
3 b9 Z( g. N' c  @% D* X! W. x; K        },
! a1 m0 Z' r$ v, b) s        {- w5 v; `6 M- L% u" i  u
                .active_low = 0,0 v( z9 y( {2 k/ d& O/ \" L: P
                .gpio = DA850_USER_LED1,. G3 T( ~( k, W  S
                .name = "user_led1",2 o$ u& o: k/ P7 [$ j6 R
                .default_trigger = "default-on",
. M9 m- j3 F% `6 p: v8 r& V        },
* v. D2 M2 e3 q" i        {
" _2 r$ ?' }* ]                .active_low = 0,5 D/ t! \: v7 r. I2 U; c
                .gpio = DA850_USER_LED2,/ x, a3 `' k# n. n5 w1 }
                .name = "user_led2",* m: A0 S, G! {0 r- ~
                .default_trigger = "default-on",
+ N5 b7 ^$ P- x8 h        },
0 A! C1 ~! v) a, c! ?+ ]        {; i/ ~" D& P9 U6 Z1 E
                .active_low = 0,
! Q0 r, E& l9 K* i$ z: `3 O                .gpio = DA850_USER_LED3,; ]# G: p! `  A- L8 v8 B% h
                .name = "user_led3",
! |; H% J" i6 E0 L5 G                .default_trigger = "default-on",
9 k) J9 l" W% j9 Y* n' W: S        },% ?( o: k/ y- A" J
};$ Z8 F5 `; C6 E) d, V3 k. G, _

# w1 U! H- [/ C, t' x( \0 g/ Xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* I. F/ l& g4 e4 ~% \        .leds = da850_evm_tl_leds,% Y% u& W3 `: x0 M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 Y3 L+ e8 w9 O- J* f' j5 R5 U. L};
& G" _$ i% f) v+ R1 g- B: j( L
static void led_dev_release(struct device *dev)
0 r, }6 y9 g- t2 ]4 F) [{
% B8 o8 N8 D% N  Z# j6 o};
, d$ ~6 e/ [) k$ n2 x. G4 D. J/ ]3 X4 _, S
static struct platform_device da850_evm_tl_leds_device = {5 T$ A; O4 r- Q
        .name                = "leds-gpio",
9 h# }4 s8 q1 T2 w! e- n        .id                = 1,4 D6 e& Z- w& a9 [+ r6 c) j
        .dev = {* v4 g. O" g# o6 Z: e6 I3 e8 s
                .platform_data = &da850_evm_tl_leds_pdata,
& J0 T1 W& y2 I$ s; M; l3 z( `/ i                .release = led_dev_release,
7 `: ^2 H4 a* }2 R6 o        }+ R$ G& O& F* k2 j' k
};% k6 G2 K+ g/ ?3 |1 K) |5 P$ ^5 ]

, M  `4 K  }& zstatic int __init led_platform_init(void)
  R: u# }' b& E( r{
# z7 n& l1 S  L" _        int ret;
0 X( |# I+ p" n4 _6 v0 |0 F( B, i#if 06 [3 a! y+ c2 k7 [% b* f! I6 q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 h- n7 e4 v5 K6 P
        if (ret)
# [+ j* E8 e+ A- t1 ?! o                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 ?% Y1 g' |/ q8 o
                                "%d\n", ret);. `" m& O. q- c6 ?  W. W
#endif
  u3 R, q5 w6 h/ M        ret = platform_device_register(&da850_evm_tl_leds_device);
/ A2 o, W* v. L* t) e        if (ret)/ u% Q4 ?3 Y1 N# o+ R# I. H
                pr_warning("Could not register som GPIO expander LEDS");3 G  w& S" W" V+ j
        else
% V# [" b2 h6 ]' n$ D$ t                printk(KERN_INFO "LED register sucessful!\n");
" _6 L9 W1 \' u2 B4 R
" P& Z- I+ Z  |5 g) @; ~        return ret;
6 v* {4 E* a8 S}
1 D; s4 a: R6 t& E6 b2 ]  _+ \5 I3 Q
static void __exit led_platform_exit(void)5 a5 n4 S& L. m, J: v9 A# P) Z* c
{
+ s0 U% a0 z9 j( d+ J        platform_device_unregister(&da850_evm_tl_leds_device);- L, b  m5 u+ ]2 ]! P( l7 s: }3 T1 F
1 t  A7 T6 n! R
        printk(KERN_INFO "LED unregister!\n");+ P( G$ s4 _2 p: D' S& G
}0 ~, q5 K4 y3 K# I, O
7 k0 P3 c/ J6 M9 o
module_init(led_platform_init);# h9 I& G# [# X) K" ]4 @
module_exit(led_platform_exit);9 F0 k( v. {- N: v
6 g6 z, ?+ v" k+ a. u+ \( g5 w4 |4 g
MODULE_DESCRIPTION("Led platform driver");' d, Z8 t$ ]* x& Q4 X0 F
MODULE_AUTHOR("Tronlong");0 P8 ^0 G9 a9 `& F/ U5 s
MODULE_LICENSE("GPL");
) z) T' D) Z6 a( D  v* _# i: v9 v5 b) B# _# O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 18:28 , Processed in 0.039527 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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