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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 e! k( o* P. L3 D#include <linux/init.h>4 g8 @  L2 \" W, O; t
#include <linux/module.h>
* P; e1 Z$ M% u+ @0 L% B" Y* C#include <linux/kernel.h>
- J, B* p$ O; Y% [7 V#include <linux/types.h>
: @& {* s6 F6 s) _#include <linux/gpio.h>
: g3 ^4 ~- i  T+ D- ~#include <linux/leds.h>
& N" ~. _2 E/ `8 a! M#include <linux/platform_device.h>( |* r) x# b2 o0 l5 `

- @% p3 y3 k3 i2 J. `6 p#include <asm/mach-types.h>
, A; I% T; G% s) c8 `1 {#include <asm/mach/arch.h>
4 {" _! r6 I4 s5 F% `) n#include <mach/da8xx.h>
% I% D; Q6 |  C; U8 M#include <mach/mux.h>) l3 s+ U/ v( s, ^4 G! g+ v) a

; O3 I$ f  \3 D: E( ?3 i1 G: ?& l  @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), c$ c! h+ s1 E3 u% B0 r
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! s6 `( S4 ]/ [8 D' X
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 G4 X& U' q9 C* s: U
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 R2 U8 b% ?$ g' U8 ^0 P2 O2 }4 M; z; ~
/* assign the tl som board LED-GPIOs*/! t4 f) G- b! ?. y7 G/ h
static const short da850_evm_tl_user_led_pins[] = {( n2 t8 {0 M4 {
        /* These pins are definition at <mach/mux.h> file */
, i% E9 t- ?  O2 X9 p" l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" H! ~! y# T2 f: i/ Q        -10 T, a/ ?3 y& Q! {% d: @
};
  ?/ d% z/ h* p! w+ t3 j0 j+ R
3 u6 r, }  _5 c, J4 ystatic struct gpio_led da850_evm_tl_leds[] = {4 B" _: `2 W6 t* P! \$ w
        {
. O% A. ]1 v* z; D! k/ r                .active_low = 0,- w7 q% l2 m: ]' q* ]
                .gpio = DA850_USER_LED0,# v5 |1 s  H: B
                .name = "user_led0",! X" b' s/ P0 v) T
                .default_trigger = "default-on",9 ?+ ~# c4 U4 q9 z2 t! p
        },
# ]7 S1 R" `9 Y* K2 T9 R* K        {2 P' d$ G) p% e. V
                .active_low = 0,* g# P* }2 c. a' X( b
                .gpio = DA850_USER_LED1,
' [1 Z+ g; t7 s7 V                .name = "user_led1",
: ?2 C1 C5 \5 w# A                .default_trigger = "default-on",- [# S; x" R5 [9 r- c
        },
0 Q6 P& i2 P9 g- [9 I* g3 e        {" I  j+ j# x# k# s8 M1 o  P4 G% s5 ~
                .active_low = 0,
' z  b% P+ X5 h+ c                .gpio = DA850_USER_LED2," e3 C6 z" Q8 c. ^# C4 s/ q
                .name = "user_led2",
) S! V8 f* H* h8 k3 D! I, U                .default_trigger = "default-on",
& j6 {4 p1 |, o- K        },& [; ~8 q- Q. Y- o
        {2 }" X8 z6 s" f
                .active_low = 0,
2 u' H' X' U( \  S- y7 d                .gpio = DA850_USER_LED3,/ Q  s7 ?3 N; _5 h; Q; d1 ?
                .name = "user_led3",' ^1 @- `$ W7 g% _; P1 b
                .default_trigger = "default-on",- F9 |" ?3 z2 F( ^3 q7 f3 e
        },
/ ~: x9 ?3 F- L% _0 S& N};
7 X1 R9 Y0 _; S9 _( d# J- L
  w1 q) Z3 @# p+ ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 A: q* u( Q6 E6 Q9 |
        .leds = da850_evm_tl_leds,
7 @& Y1 ]8 E6 B1 p3 P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- P' F/ n3 g5 i# x5 I1 [
};
! N/ S0 m# q' k; ]  N2 m  U3 E" ^; _
static void led_dev_release(struct device *dev)( D, x( E2 M. {* M+ o. v( @4 b4 H( R, `
{
/ w# b# t; T' v9 e};9 U7 e9 C8 f" C3 F- H
. e" T  g6 N+ X: v) U; h! K4 U
static struct platform_device da850_evm_tl_leds_device = {$ H# o  N6 ^7 L1 @
        .name                = "leds-gpio",( C9 e: W2 Q* m8 J7 P
        .id                = 1,- T3 K) ?* A1 u5 K# l" a4 u) V* b
        .dev = {. E# U( Y* c0 J( o
                .platform_data = &da850_evm_tl_leds_pdata,* Q+ W4 O9 f( V' d% C  M
                .release = led_dev_release,
# X1 E. I+ p2 l& R9 [        }' Q: h' `) Q. p' C
};: Q6 N) Q0 f8 |& e
' y, N5 r: T* q' s; [; o
static int __init led_platform_init(void)
+ `+ E' @4 c% ^! n( K3 w{7 [* }% ^5 H0 u9 W$ Y" s
        int ret;" ~' {3 J6 Q3 Y8 V) s8 `( \4 `1 G- H# Y
#if 09 l- Z+ ^, F* c/ p' r* P8 V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. K; C- ^2 ~6 G7 x, }$ ~        if (ret)5 b, b2 Z6 c( I4 `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. c3 q/ N5 Y; Y" b/ P+ V. x- u, \                                "%d\n", ret);( k2 ~% Z$ _) C
#endif$ z% Z$ [" E$ @* Q7 V6 @
        ret = platform_device_register(&da850_evm_tl_leds_device);% H0 e6 F! }) K1 `5 ?9 C% n' _
        if (ret)
* \5 n3 t$ c  ]2 A8 ]; F                pr_warning("Could not register som GPIO expander LEDS");
# w, {9 v' I) j" C: u        else- G' ~) S, g: `8 a0 I% Y
                printk(KERN_INFO "LED register sucessful!\n");0 V- F) _- X" o+ A! J) Z

2 W5 W1 d2 @& ]7 k- C4 l        return ret;0 I: `- e1 t! t+ R# s
}7 ?  z, |. y( h2 J- S" ^9 L: ^
) O4 x8 ]/ G- R2 e1 \" b( U
static void __exit led_platform_exit(void)5 M( ?9 g. U$ H
{% [0 x. `; k. A6 B8 C2 O7 ~  Q& e' t
        platform_device_unregister(&da850_evm_tl_leds_device);, M2 P& {& w+ P# y" Q) @
1 _7 ?7 `/ @( t/ {6 }
        printk(KERN_INFO "LED unregister!\n");7 C. L# D5 s6 k$ i# G3 j8 g. u% ~
}
( a3 l$ H- U# z
$ s% S5 \; b* Q" o: [; M, r8 e4 tmodule_init(led_platform_init);6 ]% Q. Z. K9 Y
module_exit(led_platform_exit);+ X" ~5 j3 t# t, \9 H

/ c0 y/ y* v1 i! O" E) BMODULE_DESCRIPTION("Led platform driver");! Q; G' A/ d9 \" i
MODULE_AUTHOR("Tronlong");$ C' H( G2 P5 y# X: B
MODULE_LICENSE("GPL");7 l& L5 M% X* C4 v
% x  g  n" Y, i8 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 03:41 , Processed in 0.038317 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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