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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 @9 z* `7 v  V+ V2 y: b, ]- P. v#include <linux/init.h>7 m8 {" Q# M: D& j8 U& U
#include <linux/module.h>
4 X' M1 X! \( [5 @! M$ ~6 R6 \; |7 o#include <linux/kernel.h>% d' R6 O. R- c
#include <linux/types.h>
) ~# n7 Y( F! V#include <linux/gpio.h>
. D. M! N! x( T+ F7 p#include <linux/leds.h>
: {- h6 }  K% u; t#include <linux/platform_device.h>
3 H( `3 f" @+ P, k) @
6 V4 x' L5 g5 o* t7 Y! M! c, [#include <asm/mach-types.h>7 W- }5 V$ A3 }* h% M7 P; ?4 o9 m
#include <asm/mach/arch.h>
1 E4 ]" x4 ]/ k1 g8 \* P3 u#include <mach/da8xx.h>
( ~, y/ S" n+ ~9 s0 S: s4 R#include <mach/mux.h>. m1 [: N% O# c3 M
. J5 m" T$ v0 e) ^' u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 U/ o. o# W) S& g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 l9 a' Y. {" A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, F  Q. E* [1 F% B4 l' W' n2 W4 J  c# s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- b. K' H9 p) A
6 r) G/ {8 m: `5 i3 ]" Z
/* assign the tl som board LED-GPIOs*/
! u( A  K0 X! k$ X. v7 nstatic const short da850_evm_tl_user_led_pins[] = {
" O! u1 ], v7 X3 F/ J/ g( l        /* These pins are definition at <mach/mux.h> file */% C9 v# ^, d5 J" r+ H$ r+ c  F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. E0 L0 ~+ h$ ^! d; s        -1
# e. n- B% a1 n% @};
2 t* o" w- c! K1 g* p6 ]1 y
* Z$ N0 a* G# \0 ]  Ustatic struct gpio_led da850_evm_tl_leds[] = {9 D6 l8 w; \1 f
        {9 l3 B; z+ q2 i3 D
                .active_low = 0,7 A* E" O( a2 {9 p6 ~, s- i
                .gpio = DA850_USER_LED0,: L$ y$ F# E! c! B
                .name = "user_led0",
. A8 D7 y4 U" b" B; {1 q0 M                .default_trigger = "default-on",
. i5 r+ C' M4 W- e# Z  M/ c$ |        },
9 P  w0 U$ ~" m- Z        {
' v& z3 B$ ~+ U6 C9 n                .active_low = 0,3 e9 s* ]( x6 r, B# w) O1 ^, S
                .gpio = DA850_USER_LED1,- j! L! w7 U5 T% h
                .name = "user_led1",
: M7 A5 d. t* d% f: A                .default_trigger = "default-on",6 ?8 V) }# z$ `6 s. ]
        },
7 O  j6 m0 B% M. O, Q0 g' e        {. J6 r, j6 _4 k' U( Z
                .active_low = 0,' m2 H2 F% ^( _/ a3 B0 ^* t9 R
                .gpio = DA850_USER_LED2,
! C/ L7 ^  v/ k; x4 u. `4 _                .name = "user_led2",3 h' P8 ?# `0 {: |; s* z, J) F2 r
                .default_trigger = "default-on",- B* I% q: G9 X$ K5 o% R* e; x
        },
# i( k9 P$ C* k+ B( w        {, {$ V" p1 _3 Q% k" [2 z5 y
                .active_low = 0,0 i: Z+ j' X8 Y5 P# a
                .gpio = DA850_USER_LED3,
) f* [7 Z( t# k* z1 b                .name = "user_led3",0 }0 x! N5 e  `# P6 Q% c
                .default_trigger = "default-on",) `7 z) x- v. b
        },, E7 m, b* W% E6 |0 V
};" |# j  k! M5 J1 {7 G( f+ b

# U* e# S: l5 B' |' e8 Z( F) x+ Y: b2 j' xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- n2 {$ q9 C# n  n        .leds = da850_evm_tl_leds,$ M0 Q& G' F% Q! [& f3 L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 f7 F4 [6 \' f8 v) l2 T: J};7 m+ Q, i- N- `
3 Q3 J& U. z4 Y( ]. Z0 I
static void led_dev_release(struct device *dev), {' S( _% T, ?+ y& Z# _3 P
{* r/ g3 f* g7 C
};
: c' N3 ^0 w0 L& Q+ v
$ ~. t) O7 R/ B9 o8 jstatic struct platform_device da850_evm_tl_leds_device = {) o2 g8 F$ M2 C' K5 s  F9 j
        .name                = "leds-gpio",
& S. P. D* w. w* r, }' u        .id                = 1,
3 B. o# o6 P. }9 K2 i2 ~) K5 }        .dev = {
+ z# x2 v. W9 m, j                .platform_data = &da850_evm_tl_leds_pdata,
9 m2 W% w, b$ w5 D                .release = led_dev_release,5 K$ n5 K- z( M6 a0 T: ^
        }. [9 [  e4 I4 t' |+ W7 {3 J2 B3 S
};
8 _$ b5 J2 h9 z3 y2 j  [8 B) y- P! Y) m9 ]6 r( C
static int __init led_platform_init(void)
4 q* m* k: p1 A( R: D' r( }{
2 b7 }% ^% n1 T        int ret;/ p' ~( K. G- |9 v: Z8 H
#if 0
' A: I' |( J+ j0 H. f        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% |) n! o4 z0 K8 z* {
        if (ret)$ n' z: }3 B5 E
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ q! e0 p2 o$ b* E                                "%d\n", ret);
) ~: N9 ~8 a# @7 J# S% I& D#endif
; q' T# b( E2 W! O; G; h        ret = platform_device_register(&da850_evm_tl_leds_device);
5 T+ m/ `/ l* u% \' Z: ?* a- {  d        if (ret)
- n* n; |: `1 F6 w                pr_warning("Could not register som GPIO expander LEDS");
5 l) m/ G! O+ T2 e' }, {3 v4 S        else
/ }8 p+ d/ O( V# r) J( l1 X2 |                printk(KERN_INFO "LED register sucessful!\n");
* F0 ~; J$ ?8 e# x1 ?7 K/ ~1 ~, k: K6 p, Y
        return ret;
$ b' o) m4 h5 S! p; Y}
+ f6 ^* t/ T' [1 {
# I8 f3 B' o7 y4 istatic void __exit led_platform_exit(void)
, D  q' N& w# ?. ^{$ y* O4 ]. n4 }& e
        platform_device_unregister(&da850_evm_tl_leds_device);
$ @, K$ h+ o5 ^: i( o! o% X( S/ U, x( d! z3 y
        printk(KERN_INFO "LED unregister!\n");  f' x3 q! z: j/ h
}
1 f7 J0 O, U6 o* ~. x
/ d, [3 |. y# }; g, Ymodule_init(led_platform_init);! d) m1 S/ m* c/ C/ L' @. }
module_exit(led_platform_exit);6 ?6 r5 p$ z* j+ d+ o( a
) V0 E, G7 V; f1 {' X. P
MODULE_DESCRIPTION("Led platform driver");
( t; r1 \6 N: e2 q' @MODULE_AUTHOR("Tronlong");
" A7 d- g5 g, @7 @$ Q! BMODULE_LICENSE("GPL");
3 O4 B. K$ J' X( o  e* F/ Z: @* @) `6 y, ^( {0 x  m  Y- X& |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-27 01:01 , Processed in 0.042278 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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