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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 s6 W% \- _, ~/ }, i#include <linux/init.h>) i  _( Z6 a2 i. i
#include <linux/module.h>2 h3 R2 D4 F/ T) q
#include <linux/kernel.h>
5 p% F: m5 F8 O; u7 q) q: h2 J#include <linux/types.h>$ y4 z7 Q$ {, h! ^2 i/ d
#include <linux/gpio.h>
& t5 G% e* s- [7 U6 o, \. e3 i+ [#include <linux/leds.h>
8 S" m3 x7 L8 o#include <linux/platform_device.h>
) Y# b" d3 P' }; }# j
6 L# e% p- l0 l/ e* t#include <asm/mach-types.h>
8 p4 p, E% b9 R# U8 h#include <asm/mach/arch.h>
6 Y6 F' v8 a2 A, ~7 }#include <mach/da8xx.h>+ P5 P- e6 y! I! T9 M  ~3 v
#include <mach/mux.h># V$ a' n  D/ g5 w5 C3 ]3 w

: ~% d) E' g* L) a. h#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ k" \. Q% M# W# Z" u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ s4 R+ _. w- f* n
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 s8 O! n& B8 B8 t9 G
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# \' U" @3 J! S. T
8 v' c0 r3 I" ~# x3 @/* assign the tl som board LED-GPIOs*/, b" C7 A7 S1 J/ f3 z- G7 P
static const short da850_evm_tl_user_led_pins[] = {
3 i% v4 |2 p- m5 t$ C        /* These pins are definition at <mach/mux.h> file */; W! c& }- D+ c5 |" R( v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 O, K' v) G& f+ R        -1" |2 {% p- S0 i, n
};  {$ H( ~. b0 [
- t6 I- H! T2 R" D
static struct gpio_led da850_evm_tl_leds[] = {
, h" N0 B4 m; Q( P2 P6 F/ U6 u5 O        {
5 v1 f% O7 }! @                .active_low = 0,
( a% O" k4 G* \; r, [$ y                .gpio = DA850_USER_LED0,& L% A4 O) ^/ B0 w/ g
                .name = "user_led0",
, @. X- _! k- f2 m) W6 z; C                .default_trigger = "default-on",
! t- n- [: f& ~* k- G4 n        },5 E0 }8 y) S& i& A# y* c  V& {
        {& H6 {2 o% w8 N: ~# @
                .active_low = 0,3 o$ o6 \# f# o" l: |( \; o) G
                .gpio = DA850_USER_LED1,
/ N) `. B, e5 v5 P1 R" [% L4 m                .name = "user_led1",' \. |* h! F/ X
                .default_trigger = "default-on",
( ]) i% P0 k( h2 D        },
+ ]0 A3 ^4 n$ N( [        {
0 n/ A8 S% W  ?                .active_low = 0,
( {5 ]: R$ m  k- [7 x                .gpio = DA850_USER_LED2,7 X0 v4 t6 B1 _. q7 P& w1 s9 _
                .name = "user_led2",, N" a! c- V5 ?$ j" |1 z7 ]
                .default_trigger = "default-on",
& ~- }( j) i0 L2 Z7 i6 g        },1 _( \* j: R) A4 k6 S( Y
        {
6 _3 {* m1 ?/ C1 H6 n+ a                .active_low = 0,
* [# o) L8 p, h: c3 F: f. v) M, U                .gpio = DA850_USER_LED3,* F% j! o. u* W6 N! t+ B" u
                .name = "user_led3",
3 h9 \. Y$ n  `: Z                .default_trigger = "default-on",/ g- d: b# X$ X/ p
        },
! L1 S3 p& k, ~  s};  {( E0 S; C# Y" ^2 G" r8 l3 I
. u( e( Z, i" v( l2 l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ x; y( H2 M6 X, S% O
        .leds = da850_evm_tl_leds,
$ j7 G0 J8 R  r$ V& V        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: Z6 U' L, z/ P0 F/ a
};
0 W9 _6 t1 ^  b8 E" Z. W3 {2 v9 }  Z$ e* N& v! F% `
static void led_dev_release(struct device *dev)
4 K, e% F, t3 O) E3 }$ Y{3 i' _0 ~* P; q' U7 U, l
};
- [  ]5 t  v. X
/ i4 f8 `6 L6 ]( pstatic struct platform_device da850_evm_tl_leds_device = {
, o! X" F4 S2 `9 B5 z        .name                = "leds-gpio",+ L# m; M8 i/ z$ J
        .id                = 1,& Z- ^/ {. D% i+ J4 Z( p* g% P
        .dev = {
, h! l" I+ m$ M- k  r                .platform_data = &da850_evm_tl_leds_pdata,
' c5 O* A. Q) m3 r4 r                .release = led_dev_release,0 t5 I0 j7 @, \) m% C) @
        }
/ o% t% W" E& ^# S};
7 |8 b2 f# x) F( z
% F# H+ n1 V$ k2 A9 j8 a! I9 Bstatic int __init led_platform_init(void)+ G7 u" v* X" r) |
{
5 W. E0 M5 G! S/ {  E: Z        int ret;
5 m. g2 W, r% }2 s#if 0
3 `+ s; y: k# s/ s% t" ], M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 {0 D6 S5 \  K: U  t9 @7 F" ^; q7 P        if (ret)
- e5 H  U; F8 {* @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- e! o% i9 A4 U, C6 T                                "%d\n", ret);
, k0 z: P: \3 }1 W, D#endif, g% L+ G6 @4 R# _
        ret = platform_device_register(&da850_evm_tl_leds_device);8 T/ `6 ?. Z% E4 C- S( x
        if (ret)
0 `& Q' T' u& U# W                pr_warning("Could not register som GPIO expander LEDS");
& {' \1 k: s: P2 O0 [        else& N, r/ `+ A' t" ~- ~
                printk(KERN_INFO "LED register sucessful!\n");* {2 B7 W2 H$ X1 W1 l6 \
, H8 e6 z# f; I$ ~
        return ret;/ B' X+ l" [, V. R5 c* x" x& u
}
8 w5 b  o/ f, j
$ W; [4 B/ ~. H' e- t# R: U* `static void __exit led_platform_exit(void)& E6 K; P  w) {5 T4 `) m0 x1 P
{
' K: K- S. b% \% g1 v) _6 C6 H        platform_device_unregister(&da850_evm_tl_leds_device);9 W* p7 C* B( `2 s* ^

; H3 o, f& w: U6 c" S        printk(KERN_INFO "LED unregister!\n");: u6 d& V7 m* V
}* V" w5 R0 T& a% U  k  b( L

  k. N8 [( l& W9 e0 Z$ Bmodule_init(led_platform_init);0 r5 Y* F* q  B+ o9 ~
module_exit(led_platform_exit);
) E! {% m" r& j/ T0 S! i* Q# ~# j* [9 Y6 k: p) [' z0 d
MODULE_DESCRIPTION("Led platform driver");; b' @( u; _$ H/ I  P" \
MODULE_AUTHOR("Tronlong");' I( u, j: u# M& }; R
MODULE_LICENSE("GPL");
: t. K( v$ G, o# s
$ o% f3 U$ b8 k' Z) z1 r4 [. N- p) d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 04:21 , Processed in 0.040393 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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