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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 u! X: }: Z; ^  N: q. o. l& ?#include <linux/init.h>. Z, J$ V; {1 V
#include <linux/module.h>. O" D* k/ ?. ?( ]3 V+ M: B0 |! g
#include <linux/kernel.h>
( R4 ?6 k" b. ^% U* A( W! a) l#include <linux/types.h>* i: z1 x3 L8 [5 }; H
#include <linux/gpio.h>" }: A' a- C  O" N4 g3 x* Q+ Y9 T
#include <linux/leds.h>
1 o: }0 o* T. e) V: f#include <linux/platform_device.h>
- E0 J+ b/ O0 c; C7 y7 U' F" E: E4 a, u' @! m& G
#include <asm/mach-types.h>
# _1 Z9 k+ E+ {# z( J#include <asm/mach/arch.h>
8 q- D; k6 O/ d1 y#include <mach/da8xx.h>
: u  `0 s. v9 a' t  H#include <mach/mux.h>
4 h3 d' J( _( n) I' Z$ ~6 ~/ O2 |9 J6 M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  V* ?8 m/ f: g5 h  A9 t#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% j( D2 t# r) G$ s7 n, K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ p' p0 t3 W6 j9 C8 Y8 Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 |$ F3 g5 r( e% j8 A6 y* G6 D

" R( c# h' T3 f/* assign the tl som board LED-GPIOs*/
8 b& P2 S4 P) A  |static const short da850_evm_tl_user_led_pins[] = {! ?/ \" u$ ^& e7 H
        /* These pins are definition at <mach/mux.h> file */
" }6 C* V7 G6 u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 O- e! M9 U; y3 p6 V
        -1) A* L- Z1 Q/ F. d
};9 ^- \: B( Q! h0 J  H# s4 A: I/ y2 w
2 ^4 D/ _" i0 r7 Z
static struct gpio_led da850_evm_tl_leds[] = {
2 l$ Z$ B# D0 b& L& V& m$ Z        {. E* H% E3 c/ l: v3 b9 D
                .active_low = 0,
# H# \  E! d3 ?2 f2 I                .gpio = DA850_USER_LED0,  N* M6 i) o% v3 |. h7 X% G' D: N
                .name = "user_led0",
: o0 {% j3 ~4 y6 x- |, k                .default_trigger = "default-on",% p1 U6 D* y0 ]  T8 K/ _! U& }
        },
9 }- L( ^4 i4 `3 a' R        {
" L) g) ~5 w! \! U                .active_low = 0,
3 j2 D% o& ]( j9 I                .gpio = DA850_USER_LED1,
8 a6 b' Z2 \' h! J+ D" ^                .name = "user_led1",: n! h% `# C3 \3 b  ]5 T% }7 j
                .default_trigger = "default-on",) j* ^. v9 s. y& Q; G1 B0 Q  P8 }; w
        },
  W3 s+ c& M$ Z. E: T  o        {8 x  ?3 F2 g% A/ w
                .active_low = 0,
$ F1 o0 j1 R9 M* R: z) `: Q                .gpio = DA850_USER_LED2,# P% N0 V& l8 {. Y1 ]$ {4 Z
                .name = "user_led2",
6 ?& N2 V0 s; m5 e0 z% @                .default_trigger = "default-on",
, F3 Z" H6 E! m# [        },
- v/ \* B5 w: z/ G        {
5 F; w' `* Q% |5 a1 }                .active_low = 0,
& i) ^+ H+ n3 v2 u5 [3 u( \                .gpio = DA850_USER_LED3,- w5 j5 Q9 U) n, }
                .name = "user_led3",3 T! \4 i# I# F. q0 ]0 Q8 A
                .default_trigger = "default-on",
) ?+ B% G9 `* `+ t        },4 j; {/ D5 d8 Q% T( ~" `
};
% c8 o" z0 W2 V/ o, R8 B0 S/ a( C$ m) }% U0 O4 }: |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& d6 n0 J1 ]0 m        .leds = da850_evm_tl_leds,. r* E4 J% ]5 D) l- D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 P7 q4 I: {2 ^2 f5 A% x9 _
};
, r$ V8 g7 e2 {8 G
: S, h, W( `. b6 {8 Bstatic void led_dev_release(struct device *dev)
" U1 W% l& G4 w+ ?# P, z1 Q" ^+ {{& V( [6 Z$ @0 Q; ~) ?, k9 Y
};
" P" d$ I  d9 v3 v1 l) W+ v2 K2 M5 Q9 [' t8 \$ C$ m
static struct platform_device da850_evm_tl_leds_device = {. q& t% l  \& z
        .name                = "leds-gpio",9 z5 P% D0 A5 s; G3 w" o( M+ ?# \
        .id                = 1,; d/ M$ {2 t! }
        .dev = {
$ l- y% }3 d/ }2 U$ N2 j- ~! R                .platform_data = &da850_evm_tl_leds_pdata,
" a) G( N, a1 \* J' L/ K. d                .release = led_dev_release,- ^! j" e' t, ?' e% R! P
        }
& w9 n, B$ D9 Q3 k5 m" N: ~& {};
8 t8 E3 q3 o# m+ q6 S' U0 {8 I8 U) F- v# g
static int __init led_platform_init(void)2 S; y, n5 U# R# |4 \
{
8 e1 {5 e6 l6 m: W, v        int ret;- n% S; |: C' O% J  ^# g2 ?/ A
#if 05 x' r5 {5 k( C+ {* m1 M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 f8 l' h( c  E% ]1 V; z        if (ret)$ o4 P3 F$ W/ h
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* }2 J' F- g# \+ D' @                                "%d\n", ret);
' J2 R* O+ |5 U6 ^" l; ]#endif
0 T4 m8 J9 v( B9 B        ret = platform_device_register(&da850_evm_tl_leds_device);0 E1 P& [; y7 n7 k% \
        if (ret)1 @5 u5 Z$ ~) B' a$ m6 L9 t
                pr_warning("Could not register som GPIO expander LEDS");
" r  B' F( s! A        else! f; P7 c8 W; u
                printk(KERN_INFO "LED register sucessful!\n");4 [) y2 N8 r8 n) Z/ y( p/ p0 m

# s# ?6 g0 z5 K2 o+ X8 ^        return ret;
+ U4 m9 Q5 h3 U}  b/ b/ e- ]4 k) V" I$ y
' N& X! g) P, W% m7 m/ ~  W* @
static void __exit led_platform_exit(void)2 y$ ?/ B5 L2 y( ~- c. E
{
5 t) c  g7 p$ K! x        platform_device_unregister(&da850_evm_tl_leds_device);  Q. `2 V" r8 D3 Z4 U0 `8 f

5 k0 X4 o8 D5 |3 s        printk(KERN_INFO "LED unregister!\n");4 t: z6 i# A& ]8 M& ?; M/ S
}) U" d3 X  A5 l

% m4 m8 s% ]/ D; Fmodule_init(led_platform_init);; m( G0 r3 k4 E6 Q% M4 _
module_exit(led_platform_exit);
0 a6 b; I6 j6 {8 G  ?% \
3 H% x& e# I0 F0 @5 n3 K8 oMODULE_DESCRIPTION("Led platform driver");
3 v: _- L. Q7 o2 Q3 q. K, ~) nMODULE_AUTHOR("Tronlong");- w  k0 k3 K7 I& F( }( s! |( O
MODULE_LICENSE("GPL");
- Z' c: j4 ?2 ]. x# I' \. X  |
! G: K& Z* f5 m- T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-1 21:37 , Processed in 0.040470 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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