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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' r% o, M9 D1 n; f, J
#include <linux/init.h>
+ }% O6 H; x7 o( R, O3 P) A  g#include <linux/module.h>
  {+ @; K# N% A2 f+ C' D#include <linux/kernel.h>6 J# b  Y1 Z/ E. Q  D
#include <linux/types.h>
9 y! s2 f7 c  h( K7 e/ {#include <linux/gpio.h>8 O; [4 N3 \" K& z& y: C
#include <linux/leds.h>4 T; p+ t! ?( C7 [" Z
#include <linux/platform_device.h>
) D! {& h& Z6 t$ T* e* K
2 E/ F& }3 ]6 O  k2 [4 i" h/ |& j#include <asm/mach-types.h>* z  I7 d/ E  s) N1 H# M/ u! X- N) [
#include <asm/mach/arch.h>9 u% X2 E3 `9 d( f
#include <mach/da8xx.h>
: Z& H+ I( F$ b+ a1 f$ ?# u. I0 |#include <mach/mux.h>
4 ]' f- {6 Z/ v* g# k) v* }  x
1 ~: f) R, _1 d* K! X5 A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ V' R4 P# \  s( T0 u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) y9 h  z: r- O) l+ _#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; h8 R" C6 P2 @$ s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 J2 ?5 J; g3 ~- E% r" A
* z8 m, X! c1 x' @/* assign the tl som board LED-GPIOs*/
( j% y6 w( J; H* [0 p$ qstatic const short da850_evm_tl_user_led_pins[] = {
/ ]9 n# l4 J5 E9 F        /* These pins are definition at <mach/mux.h> file */
: N- i0 [, p6 x4 M; ?5 p1 T: Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; m* Q' N8 F. m  c$ r1 R
        -1
( \2 o9 h8 T: z};  \* f; F2 S( u- M

& e4 o& V! D% K& X" s  ^9 V: p& gstatic struct gpio_led da850_evm_tl_leds[] = {: m9 O# s$ ~9 C: n
        {
6 l! _) N* k/ r9 Y# \- v                .active_low = 0,
. D! F4 o5 T( W2 M# G$ a# R3 Z9 o                .gpio = DA850_USER_LED0,, J  M! w: `% w5 ?9 w" p* ?& ]7 K3 ?
                .name = "user_led0",
) j. ^+ B+ q, \$ Z                .default_trigger = "default-on",8 b- N/ g6 m5 t( `& X3 I2 N( l% w' L
        },- p; W# e) T& L& J4 c" c' P
        {9 P& M/ A/ q2 w* b5 S! v6 d
                .active_low = 0,5 y2 i1 |% v; d; A/ v
                .gpio = DA850_USER_LED1,+ f- k' B7 F( T- c/ a( V
                .name = "user_led1",% s; h6 D+ W5 R+ K7 r
                .default_trigger = "default-on",6 x$ q7 l* w; c
        },( _3 y+ r1 h; R% Z- m5 B+ |
        {
+ E4 k5 _$ X' R( m2 p                .active_low = 0,5 L* X' r$ X6 n+ ^- Y
                .gpio = DA850_USER_LED2,; r4 e) E" o" |
                .name = "user_led2",, `3 ]  G! W0 q! h& D, z; |
                .default_trigger = "default-on",; |8 c* z0 y7 h; f" t4 G' T3 v! ]
        },8 }( e! c5 M$ D1 B+ ^/ T
        {
8 D' |; q- e, @! l4 C                .active_low = 0," l% k* W6 t! V6 z9 s
                .gpio = DA850_USER_LED3,
. T0 A& Z; |1 t# Q7 ]8 K3 k# y; a4 g                .name = "user_led3",
7 r# I5 M- e0 {3 D- u                .default_trigger = "default-on",
& H- `0 s" B$ w# b% A, P* {, k        },) N% }" |  j5 Y& |2 o
};* T( j" e. \( e# A! u- u2 r

/ h: f' B6 m1 M$ x  X6 E" F) n5 hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! m' K) Q( I4 z8 y3 N# N
        .leds = da850_evm_tl_leds,  T- O0 t6 H$ b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 h, B3 a6 W+ v( d( {};1 b' y9 V9 O9 V

" e- J) Q" y1 y6 Q) g5 Istatic void led_dev_release(struct device *dev)
: b9 r- ~3 Q8 v/ n! ^{; s8 g) w& F! Z9 P8 A8 g
};1 m; ^- N! M3 F4 P

8 \0 S7 @3 h) n' m5 Z! h8 D! mstatic struct platform_device da850_evm_tl_leds_device = {
* u: l9 M8 E) W: l( D7 w        .name                = "leds-gpio",6 i5 t5 H$ Q. Y6 H2 y! K6 w2 f
        .id                = 1,4 H( F: e/ N$ x9 I
        .dev = {+ \$ l2 e7 a7 @- f6 R3 ^& U
                .platform_data = &da850_evm_tl_leds_pdata,: B" {+ i/ o" F5 l5 h+ l! U
                .release = led_dev_release,/ H7 ~% G* l& S+ s4 R! q
        }' v7 ~5 N1 K% i8 H9 X
};
! l4 `5 j2 L8 x4 e* }2 c
5 a. M" n* V  L' t0 f. Z  Vstatic int __init led_platform_init(void)
3 ~0 K* L2 Q+ d# i0 A{
! A4 C- G# o7 d# H9 l( U        int ret;" ^* k" p% t5 ^8 p' p
#if 0
# j- F  H, k0 h( J# m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* O! x8 n, [7 ]2 I1 K+ `, H
        if (ret)5 p5 P6 q$ x% y: Q& w/ f9 W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ k$ P  j. i7 I; n2 m
                                "%d\n", ret);
4 z+ d* C1 _" x, k- s1 b#endif
2 k' s8 e( [- J7 r        ret = platform_device_register(&da850_evm_tl_leds_device);
# g# U! s8 ]) ~, |: U: x        if (ret)
. q2 s7 _7 Z- P- c                pr_warning("Could not register som GPIO expander LEDS");
! s/ C/ u" p1 r; N& T        else
7 A& b& n1 ~  a3 x: y& y                printk(KERN_INFO "LED register sucessful!\n");7 v# t" u  H) _- g) s% D
( K! B1 J+ u  c% r- ^
        return ret;* y+ Q6 A& x$ H) V3 [7 O
}
8 h/ d8 }8 u  u1 R% {1 }
& o6 g& l+ a4 P; f' a6 Ostatic void __exit led_platform_exit(void)- F. @& T# P, r$ r* K; J) A
{
* H! a7 D% [$ y# z! l8 P8 [        platform_device_unregister(&da850_evm_tl_leds_device);2 ?' f) ]) U% S) A6 z
6 w# I; h8 C" A8 `. G2 F
        printk(KERN_INFO "LED unregister!\n");5 H1 ~4 x* v2 V0 ^- B; B4 U
}: |# A& b3 [: }3 S

  B5 [5 c0 e8 y2 \module_init(led_platform_init);' @& n" d$ o- ^3 Q# ^- w' p
module_exit(led_platform_exit);0 w7 Z4 Q3 t+ ?# I4 T9 f# v% o
' d4 @4 J7 S$ i. q% o2 d3 q6 P) v
MODULE_DESCRIPTION("Led platform driver");; k& r) b" I" f$ {. S  |, W0 i' z5 W: |
MODULE_AUTHOR("Tronlong");+ S$ o2 y: z- [. e2 n& F, Y
MODULE_LICENSE("GPL");
2 M/ e5 M% X3 Z1 N8 S4 d  U7 K" n" f4 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 15:28 , Processed in 0.038277 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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