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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# h  h* U% p3 H* {( n#include <linux/init.h>
- ~+ b' D' h( j2 H  h  V. C/ c9 y#include <linux/module.h>' }" S9 m. z% o: l
#include <linux/kernel.h>
+ S' H& b5 D* p( I+ K#include <linux/types.h>
; i- E) l  U* x4 z#include <linux/gpio.h># U, ~0 y- ~9 n: n8 l# Y
#include <linux/leds.h>+ P2 \8 `8 G6 _' ]
#include <linux/platform_device.h>
. P; r3 _6 Q1 t; m1 Z! d2 {9 s5 s" m
8 n' e( E0 t# I0 j#include <asm/mach-types.h>* d$ X/ |+ f0 {" P& T- f- b
#include <asm/mach/arch.h>
5 ~* k! a/ m( J3 T#include <mach/da8xx.h>
2 [5 m6 }' H5 Q9 F- c1 W#include <mach/mux.h>
# _0 k6 d! `! y/ o* B* H7 a2 V# d9 B6 d
% k8 c7 X$ U$ d7 F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- n1 D- D% f- o6 t7 r  p9 M#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 S5 U  m& y2 e& p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 U* i+ A! k' G0 \6 |#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 M- [( w! F4 ], J, I4 n- w% S

; h( S4 [' u6 J* p/* assign the tl som board LED-GPIOs*/* i6 @/ F' w: G. a
static const short da850_evm_tl_user_led_pins[] = {
/ G7 }- O% f+ d9 K" O" U  h, q9 \1 w3 c        /* These pins are definition at <mach/mux.h> file */
& z7 I7 x7 t. O4 q6 K        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 j' `8 Q: Z' W4 S6 `4 A        -1
( [8 |/ s( m3 q4 Y' e+ V};3 G6 S8 w% t/ y! W
7 c8 U1 c& r: g$ U% U; g  }
static struct gpio_led da850_evm_tl_leds[] = {( b$ a* c# h* p/ t
        {% X( h, ?% V0 a! m+ h
                .active_low = 0,2 e# f0 W% \* @3 n9 F# [  r8 m9 u/ Z
                .gpio = DA850_USER_LED0,
+ w5 y6 ]; ^- r9 H9 |; L9 a; T                .name = "user_led0",
3 C# ^1 x5 _& h% A5 n                .default_trigger = "default-on",
" p" ?% p1 p! I8 ?0 t        },( A9 N2 l' W/ J/ |5 }4 l
        {' a# e7 E! F5 {( }5 h5 r
                .active_low = 0,
) O3 C% L% |+ x) i1 Y                .gpio = DA850_USER_LED1,  [; j' W# R  D1 Q
                .name = "user_led1",7 b+ T$ O5 s" s0 e0 V
                .default_trigger = "default-on",
" {* O6 h  R, T        },9 R5 `* Q7 w% [5 I! k: M
        {
% Q' f( l: u: x8 q1 ]                .active_low = 0,
, m7 ^& m/ Y8 t/ `8 b# S# K                .gpio = DA850_USER_LED2,- E- D0 `6 i& C) v: k+ K8 U
                .name = "user_led2",2 P; W- t3 r" v: R
                .default_trigger = "default-on",. R/ J2 j4 S, \& x  S
        },
. Z& b  q0 h/ W: M/ `( E! F        {, n! Z( R# b& h1 Y% ^9 W5 c0 b
                .active_low = 0,$ x( N) d' O% ?! h; G( C- D
                .gpio = DA850_USER_LED3,
) T$ f) L+ s. ~! _0 p! w                .name = "user_led3",: R' t, ]6 \: v* c% }
                .default_trigger = "default-on",
2 ]4 C1 G8 G, ]" W        },
9 b2 o" n9 Z/ H) j; L. Y% B};3 Q) l' S$ N, Z7 x7 ^1 K

; w3 w7 B1 B5 q/ X; T* cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' m$ T$ e% g( n0 F3 A% O+ k
        .leds = da850_evm_tl_leds,
+ K% P, y2 |# N        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 S& y* u+ t, @' k% i};3 b9 H( d! e' O7 M5 g( w7 e- Q1 _

; y8 m9 Z/ Y" z3 B. K  A2 n( o/ vstatic void led_dev_release(struct device *dev)) t4 Y( ~0 S, \2 B# Z3 P4 ?! n9 B
{' _; C. k0 _1 M  m% x! [4 C
};
. j; D( ?; }. q
0 Z3 |) K: u5 j& G. k2 Nstatic struct platform_device da850_evm_tl_leds_device = {
# o  ^4 V) P$ z) Z* R( v5 h  m/ @        .name                = "leds-gpio",
% f- [% [, f/ J# Z6 A* f  D' {        .id                = 1,, I* t7 t" v6 u
        .dev = {
. X4 X) Q4 m" f" t8 d                .platform_data = &da850_evm_tl_leds_pdata,2 h- U5 {5 }6 v! M1 {! b4 m
                .release = led_dev_release,2 c  H( B+ t5 W5 i
        }9 X% H6 s6 m; o! i# ]( H
};
0 v. h: s4 x' X* U4 c+ @% O( B4 ?$ S' ?+ P8 L
static int __init led_platform_init(void)0 k1 M8 g" o6 @  a2 ^; F6 n* B
{7 r; ]; s7 }5 v1 w
        int ret;! v$ f5 m8 s1 ~  \  j: T9 o
#if 0
+ K' u8 n2 w) }7 h        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  o7 n, q( \  E4 S8 i, ~  ^
        if (ret)$ K6 q+ L' l. J, B8 j
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' E; L$ }: T- y; j3 ~/ d; K                                "%d\n", ret);
% L6 [  M6 q% B3 h7 `, o  }2 E#endif
. I9 \3 O+ c$ K/ y( m        ret = platform_device_register(&da850_evm_tl_leds_device);) V, L3 t: m7 c! {2 m
        if (ret)  t% l3 W# |3 b, M4 z
                pr_warning("Could not register som GPIO expander LEDS");
0 l, ~9 M; Y! w4 C& m% l        else! j  S+ R/ G! R2 G) }9 a
                printk(KERN_INFO "LED register sucessful!\n");) c) {* q- q- G0 T6 i& {/ V, [
0 d. B; F5 ~( W+ }0 y
        return ret;: d! G4 o3 c' P
}
; M8 T& r1 ~- t7 f2 i; Y8 ~) C- Y; ?0 l& u- E/ n0 _
static void __exit led_platform_exit(void). p4 Y& t7 W) C5 L$ E+ p2 S$ h: b% @$ U
{8 N) g$ J$ i. E) p& _
        platform_device_unregister(&da850_evm_tl_leds_device);; N7 z3 ?4 G; k1 f

( d* `% z) R6 K9 a% a- e& [        printk(KERN_INFO "LED unregister!\n");+ [1 H: G# h7 s7 \" j7 F
}4 ^. k  Q4 T3 R% t& g) f/ v

" l% k2 K; Z- umodule_init(led_platform_init);
5 q( `' {4 W: V" ^" mmodule_exit(led_platform_exit);% o% f* k+ Q5 q# W9 |9 _
: Y' A* P1 X+ I2 G
MODULE_DESCRIPTION("Led platform driver");
8 K! m) n' R5 [+ P- AMODULE_AUTHOR("Tronlong");
5 n# ~! M( T' _# DMODULE_LICENSE("GPL");" E/ ^5 v" b. a( W
9 T1 ~6 {- Q* \# n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-22 20:30 , Processed in 0.037747 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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