程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ g: t7 i+ E9 d
#include <linux/init.h>
( M- F1 q/ o* }$ A, \( X#include <linux/module.h>' _3 p* g/ V9 I9 Y' i. |
#include <linux/kernel.h>
0 N+ v% x# A# K#include <linux/types.h>$ P5 F+ |- K! ]8 m0 b, I9 E7 p
#include <linux/gpio.h>" f$ y# T8 T+ m5 B
#include <linux/leds.h>7 s: A. T4 \% Y2 N. E
#include <linux/platform_device.h>
1 G7 T$ Y7 `8 i( A+ w% l% b7 I- H  p% t6 `2 ]: j4 x+ `3 ~+ l
#include <asm/mach-types.h>
2 p0 F  A. U! s2 Z2 k1 @#include <asm/mach/arch.h>
. s8 c5 Z% E: e. z3 M. [  K  d#include <mach/da8xx.h>
- M( ?! `# L' c2 n, h3 R#include <mach/mux.h>
" ^+ p- B% C" r  o" x
  a; |3 b; L$ C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' v  {/ D# @& f8 E% X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 R7 J, m  L! p  j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) I  L1 I5 L! f' n3 m- ]#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ W, e( w% L( I" f7 G

7 S6 p* J: Q' }, R6 Y# |8 [# |/* assign the tl som board LED-GPIOs*/
( s( T0 g8 k/ i: j" O/ Gstatic const short da850_evm_tl_user_led_pins[] = {  T2 i3 ^# ?9 o9 i8 p" H
        /* These pins are definition at <mach/mux.h> file */4 [( `  q) ]+ g5 G; n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. l) P5 P, I5 J. D$ t2 D        -1
0 P6 Q% D+ j& O0 T};
) Q6 W  Q3 z( E2 X
8 E8 ]. l6 m4 T% }static struct gpio_led da850_evm_tl_leds[] = {
2 A0 Z8 |2 C2 i& b% z5 b7 b        {
7 O3 Z3 M* d1 a                .active_low = 0,- M4 M6 H! o6 P3 C" U+ _& Y2 j, Q
                .gpio = DA850_USER_LED0,
6 N2 y, E& s+ A+ Z3 i- T  _1 X                .name = "user_led0",: v/ q/ S4 O/ E3 k
                .default_trigger = "default-on",
) h" M6 i" F" q0 o" m        },) u* S; V- k  U+ \. B) b, R# E( c
        {
7 M5 S" E* {9 e9 e, Z1 }                .active_low = 0,
( |) a0 a* Y7 c; x2 H' T                .gpio = DA850_USER_LED1,( |3 K# i; J2 s: w
                .name = "user_led1",' I9 U1 ]: P# i. a- D
                .default_trigger = "default-on",- a3 D0 t  D7 B! _6 N+ Z6 u
        },( C/ ^, T% s' K/ X* D
        {
; ~) Y/ i9 a. W/ B- z                .active_low = 0,
' D8 o' n8 h9 }$ h. f! G                .gpio = DA850_USER_LED2,1 i: J, D  y, m
                .name = "user_led2",
0 M9 Q+ [- q# \( v1 `1 E  t                .default_trigger = "default-on",
, E) h7 `5 M8 X! [        },
/ o! R8 L! D# d* C+ U        {
6 [) T9 t; A8 q' V% V                .active_low = 0,
8 \: ~, t1 \2 l  c6 d                .gpio = DA850_USER_LED3,& }- }4 j3 r0 N; t' {5 }* d& t
                .name = "user_led3",
+ M" e6 Y. h9 i. v5 E8 P                .default_trigger = "default-on",
, [( K9 @' i- @& }3 p0 F1 w/ H        },7 z# O5 w6 o7 B( K9 s
};4 r+ d7 N2 q; ]9 B2 u7 q* ~1 Y
& j+ _( r4 s' H3 Y: E, z, ~  O/ S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( m% n1 x; [2 f        .leds = da850_evm_tl_leds," ^9 I9 M6 b% g* Y; S0 k5 g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 l3 G' U( e9 ~% r2 ~
};8 z: c. r( {: Z, t2 e& q0 f+ {0 t' G

& Z0 J0 z! [1 U! E% J% t+ ~/ zstatic void led_dev_release(struct device *dev)1 ~( [+ H' e2 n. G* V- c( [/ F# ]: V
{, G/ C) {/ a8 G1 O  y
};. `5 t' p6 F$ W" @  H

2 s1 ~2 }# w4 Z# v* M3 ^) b% kstatic struct platform_device da850_evm_tl_leds_device = {0 d8 q6 Q% T+ y5 t
        .name                = "leds-gpio",
8 B0 a! d, F0 T; I7 t# w% ~9 `, w        .id                = 1,7 ~$ ~# C  u& w$ t8 n2 }9 I# e* s
        .dev = {
3 M2 w( Y) A( u6 j                .platform_data = &da850_evm_tl_leds_pdata,* L! w& V: X+ C& M  [; X% M
                .release = led_dev_release,7 `5 s3 J* ?1 m/ J. P) X, P3 S
        }- R: V. }6 u2 k
};
( @& |% @& j' g; @7 Y; ^
( w9 G! `& @* \; Q" j4 R! ~% ]static int __init led_platform_init(void)- i& x1 _8 y5 V4 F& W, j6 W
{+ s1 z# I+ g: z9 W% L
        int ret;+ F$ E  I0 _7 W9 n
#if 0
; }( V/ Y2 k7 Q+ h        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: G  g' B2 g0 g' b* D        if (ret); p# Y; @" H6 r3 R4 p5 i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 y/ p# U, J3 K- E  |. J2 j, O                                "%d\n", ret);
' F5 T) p/ d( h#endif& |8 ]4 P8 B& w$ j
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ l- u" F  A4 S! D; g        if (ret)
$ {# t; ^" Q3 ?* d7 W' t0 P                pr_warning("Could not register som GPIO expander LEDS");- i  {$ h, O9 u
        else
* w: p1 G: Q/ C+ I& e                printk(KERN_INFO "LED register sucessful!\n");
$ W9 }7 l3 X# c+ f  x: i3 w+ K  E1 ?! u! |# J  X* D  D
        return ret;
  E4 ~0 d" `4 t, R, h}
  d+ ]' _# ?8 D; i3 o. \' b: i# E, K  }8 a1 H4 S7 R9 U
static void __exit led_platform_exit(void)
7 H% M+ Z- n- L' w  _{
4 A4 M( ?: c' ^6 N6 O6 D( j        platform_device_unregister(&da850_evm_tl_leds_device);7 _8 w$ ?- A) G0 Q5 H% T
% }4 V# r/ R8 i
        printk(KERN_INFO "LED unregister!\n");  q! d2 w) [9 h% N
}, @. }: K" p! q/ R# D
& b" q8 `2 E( v0 Y; A" z( w/ B
module_init(led_platform_init);& y- l$ d$ I2 p' L: C8 j: D
module_exit(led_platform_exit);! y; |& N5 E6 Y0 C" j

/ d% p5 z/ ?# S7 A# `. L4 jMODULE_DESCRIPTION("Led platform driver");8 m1 a  u7 h! e3 ^, q
MODULE_AUTHOR("Tronlong");; ^5 `- v+ Q% W9 d
MODULE_LICENSE("GPL");
, g/ e! y1 F3 t
2 m. Q( f' F$ A6 x1 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 01:57 , Processed in 0.051497 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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