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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' `5 W6 F) m2 U#include <linux/init.h>
" \' b3 q3 d7 h; V#include <linux/module.h>) q( R6 }( R9 c% W3 N
#include <linux/kernel.h>
& u. v% u. m( b& Y: f* I2 K! B#include <linux/types.h>
/ N& S' L8 y3 {1 Q1 m' J6 c* Y" I#include <linux/gpio.h>
) ]) k: R" B0 h4 u" A) t. F: \#include <linux/leds.h>" C3 T& r7 H# [
#include <linux/platform_device.h>
9 s8 W% o0 |  O/ j, u) W6 S; e: \( e, q) Y
#include <asm/mach-types.h>4 z& j. @) m# @' N( b6 v' H6 A7 O
#include <asm/mach/arch.h>
7 s: j; m( q0 _; x' u' E#include <mach/da8xx.h>
# Q* C$ E" K& i- i, J8 p% q' \#include <mach/mux.h>* }* r! X7 m( S& l2 u
  ^3 C# M; m( `. \5 w
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 x4 Z  W6 f! e, H
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ E$ x4 `: {; q" J( c! z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 H9 }& V0 a1 l$ w6 T! G+ f3 u#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ I' t8 ?1 h  ^/ e# r
3 J+ w& a+ i. h2 K" k/* assign the tl som board LED-GPIOs*/- {) ]7 B  n3 q9 C$ d
static const short da850_evm_tl_user_led_pins[] = {' n- \1 p# I# w1 N  c; q2 X0 \
        /* These pins are definition at <mach/mux.h> file */$ ]; Q9 B" S+ x: q4 I6 D( d9 q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 i7 u( s7 d" d4 ~# K* [        -1
9 |7 d9 o/ e- t3 c. |};. i. N  Y, [. a& @# X
8 O, P( x1 b2 l6 i+ }( D- h
static struct gpio_led da850_evm_tl_leds[] = {
) `. C) W6 |% g; h. X        {
9 \" c. r: E: r/ v- \1 H2 X) o/ E                .active_low = 0,* s, z6 ?# e3 Y
                .gpio = DA850_USER_LED0," l; i1 Q1 U$ _; c/ T* m
                .name = "user_led0",0 }, W* Y2 w6 h6 q& D8 k$ w
                .default_trigger = "default-on",
/ |* s+ X) x; }+ I" `        },/ k1 H6 ]+ q* x3 B
        {* W& z; N" \* p/ y0 {  w
                .active_low = 0,, z) j+ {+ \: X( u1 b6 ~9 C& ~& T
                .gpio = DA850_USER_LED1,7 [- i% s4 z0 y+ O5 c& ]+ x2 N
                .name = "user_led1",
6 S1 w7 H% |) X4 a5 V9 Z                .default_trigger = "default-on",
7 P& u3 ~' O6 {9 l3 B" K* H        },1 b! }. f& O6 j  e' K% a; m' R
        {
1 F: F6 q! j1 ?3 {5 ^                .active_low = 0,
/ t8 `  r! j/ l  C1 {6 b                .gpio = DA850_USER_LED2,
7 L) E/ Q; L) M9 |                .name = "user_led2",
  K* t& `" M4 ]6 q" i" P+ J1 \                .default_trigger = "default-on",, \1 s7 t( I) h* M6 \2 c
        },. w' s! u6 H; O" f: R
        {+ R/ b' a  g2 a" X2 ^
                .active_low = 0,3 M' }, E9 U3 {; j9 ^
                .gpio = DA850_USER_LED3,
7 v  n$ ?/ c: E: X9 V                .name = "user_led3",4 x& K& Z' ~! P( d2 G4 k2 q: `# O
                .default_trigger = "default-on",
! M9 H6 X+ v$ Q) n7 I* J: z" H# Q        },# w$ C. N3 p" ]5 _! G4 d
};! Z2 s- }: }. T: z% T

' o' `4 v5 P  S5 }9 L" gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" Z' b( e5 t, v+ y9 r* @        .leds = da850_evm_tl_leds,- W4 b3 [- X2 j3 ]- o& p% R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 U% T! T1 E+ J& L0 o};
- Y% ^# z6 i3 }* V
6 c+ w, v; M" i- |/ z8 ]static void led_dev_release(struct device *dev)% ~; x% ^  u9 z9 c
{! a, v. P3 _5 C/ `5 l: v1 J
};
9 s& O$ h" N& Q3 M- W$ p, [. U" a& Y1 m2 m
static struct platform_device da850_evm_tl_leds_device = {9 J* h1 |# U: X; l( K  Y  Z
        .name                = "leds-gpio",
: z# j( @- ^7 `        .id                = 1,
7 P1 g" v& @2 y0 D# H        .dev = {2 S% `) }# H% K- t* Q' Z/ w
                .platform_data = &da850_evm_tl_leds_pdata,2 X( A$ R0 \; {, _' p
                .release = led_dev_release,5 v. z3 p' L5 c$ |# C0 m/ L
        }2 x* a' u2 R9 {) w- H3 G) W& w
};
% T" B) A* R$ ~! F2 O! K/ I. t8 F0 b6 o3 i
static int __init led_platform_init(void)7 x* Q( G1 U) Y- m7 l5 n7 t! Q5 T
{2 P# k8 F3 G0 [% [" O
        int ret;
+ N1 e8 `2 S3 Z2 E0 p#if 0
& ~# X7 G' W& z# D9 g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, l; z% V9 c+ q6 L& m/ W8 z
        if (ret)
- |4 R/ Y4 l( G- E/ @9 Q% ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; m+ }$ d/ r$ N  B5 L                                "%d\n", ret);
) n6 \! e6 l- ^" J1 j' h3 W#endif
# u+ t, Z& d/ o8 B        ret = platform_device_register(&da850_evm_tl_leds_device);# m9 ]2 Q. @8 b- p
        if (ret)2 x" b4 y, a4 Z" J, V- l. Z
                pr_warning("Could not register som GPIO expander LEDS");
0 x- t8 Y+ Q! B* B% u        else9 v. ]4 {2 K; U* u
                printk(KERN_INFO "LED register sucessful!\n");
* R6 M0 r9 S# [4 t
& ?, O" }& M, |; x8 V! y9 a        return ret;( [8 x4 M2 j! D
}$ H4 f4 a( P; z6 s, E2 u

" q# L% x  [) G8 N5 Lstatic void __exit led_platform_exit(void)8 P. F: X& y: k/ V( W( v# R& z
{5 f7 `( S1 z0 n; e- M
        platform_device_unregister(&da850_evm_tl_leds_device);  u' T! g8 I/ Z7 [" o
- `" y1 t5 ~/ d$ ~
        printk(KERN_INFO "LED unregister!\n");
, p* R' C; A# S# Z+ y}) f0 @5 F' V3 n9 X% H' l

6 q# ~  V! i% M& ^* e2 pmodule_init(led_platform_init);
/ ]0 G& _& ?- G% U& Omodule_exit(led_platform_exit);
3 d" S6 y  a4 I; o$ V. [" h
, S' a6 l2 f! GMODULE_DESCRIPTION("Led platform driver");
' _/ a! ]7 {0 p: R+ @: LMODULE_AUTHOR("Tronlong");3 ~& |. E6 }/ q. v. m( w
MODULE_LICENSE("GPL");
' W2 y& v1 Q3 I! N: [) \" x1 |
( i7 Y- m5 n4 {' K! H% C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-12 16:06 , Processed in 0.038405 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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