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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ |3 r6 j* c, g
#include <linux/init.h>
  E- L! y# r* u- I#include <linux/module.h>8 v% m0 t$ v  ]. @
#include <linux/kernel.h>9 R) p+ y" A2 X0 O7 r) b
#include <linux/types.h>; h8 ~4 N# |. _/ {( F) e. R+ F
#include <linux/gpio.h>
; A& }; h, s8 T/ g4 Z: a0 \#include <linux/leds.h>
6 E4 @5 e9 _! B5 B  `#include <linux/platform_device.h>
8 w. T6 d* p( N: T% i: H
" c/ p( ^' h3 X#include <asm/mach-types.h>- X" W4 ?! g! @
#include <asm/mach/arch.h>0 ]5 L* W5 M- W& p! \  f
#include <mach/da8xx.h>, N9 B" h  K& n/ c# h
#include <mach/mux.h>
$ B$ D( D4 i. D% _. j
4 N7 b6 }1 I- k. q* c- g#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% l  V" E* z& d5 U+ w& e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 j* Y: [8 ?& ?5 D8 H6 H#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ a5 {/ E2 x  {& z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- D8 Q* L& {+ D, K7 ~- S
6 C3 ]( i* Y  T7 q2 d/ b  U' {/* assign the tl som board LED-GPIOs*/
0 t) @& \5 f. f& }7 s* z+ ~% ]static const short da850_evm_tl_user_led_pins[] = {0 F, }" g! f* Y$ E9 `
        /* These pins are definition at <mach/mux.h> file */% y& G0 x4 ^7 o. f9 ?: g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 s2 b, v' L  l- u        -13 L. m5 j. ]4 _0 t! a& l& B
};- y) k' X& ]7 C: j
+ R4 K4 N! \5 }/ s. |; Z
static struct gpio_led da850_evm_tl_leds[] = {& t; m7 R0 b$ _) w# ^2 u
        {; V! }0 _7 L+ k8 G5 W- x+ N8 A
                .active_low = 0,4 q! U8 k, Q8 |
                .gpio = DA850_USER_LED0,
. V  Y8 L* a8 L* ]1 d8 b+ e! o* n1 ], I                .name = "user_led0",' G, j1 I5 o6 S6 ?0 X
                .default_trigger = "default-on",2 i+ E- E* e) Y+ I
        },
# v. o# m; n9 H8 j        {$ l  Q, S  E* V4 i) [3 r
                .active_low = 0,( f$ Y! W7 i% C- b
                .gpio = DA850_USER_LED1,/ ^0 Q9 C1 E2 Q& R
                .name = "user_led1",
7 e6 S0 u6 l5 K6 n$ Q* I  `                .default_trigger = "default-on",
0 K& B+ \) p" `# W2 f        },% T4 O# d) d* I+ Q/ p7 F) c3 i/ B. o1 e4 `
        {0 r' o/ o+ t/ L' D9 s2 A
                .active_low = 0,
! ^. @. F( u5 r3 \3 C+ r                .gpio = DA850_USER_LED2,
2 [$ X8 K; D& o6 ]1 N/ z                .name = "user_led2",
3 M7 V. n) t" B/ Z+ @7 Q! P8 w                .default_trigger = "default-on",
- k, K5 K" z6 N" K# x6 b, Z        },
8 H- s3 e0 x! @# e/ @7 P' G: Q        {
3 S/ B) w: e2 A' V/ _                .active_low = 0,
0 }$ F9 a: z6 r2 c( d9 t5 S- e. \8 G  C                .gpio = DA850_USER_LED3,
1 O( _7 g. f7 ]3 U9 E7 I( y7 o/ q                .name = "user_led3",
  P' }6 O' Z( w2 W) E' h- L& r                .default_trigger = "default-on",
4 a) l7 z9 H* C% U( ^7 N* u# g4 {2 Z        },5 v/ z7 q! G' L4 F8 L/ I
};' v0 ~. r/ c$ [( ]- B

1 b0 c" f2 \# M6 @8 r, C  Xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* L+ p& I5 r+ X/ m4 t        .leds = da850_evm_tl_leds,
# ~0 \' l& b2 e+ ?- [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 ^4 K( o2 ?2 m$ Z/ v# f
};
7 d# p: L* K, }& _" N: W
" W4 s! ?. V2 }3 P, qstatic void led_dev_release(struct device *dev)
. ]) x4 @8 p) E0 ^, E. |. C{; ?3 p! D: k# q3 Q
};
# M/ W7 c% n6 k# A& d6 P
% s/ N5 W4 u; Z: C+ {) w% Pstatic struct platform_device da850_evm_tl_leds_device = {
' B- X1 W: k( ], k! T2 Q        .name                = "leds-gpio",
) }* |/ r, n+ t; m2 R        .id                = 1,
4 b& \% e5 i9 b- l2 s        .dev = {
8 h7 I* j! a0 k, l                .platform_data = &da850_evm_tl_leds_pdata,$ z0 s0 [& }6 H8 H+ h
                .release = led_dev_release,( n4 C% ]# h' W4 s+ v4 X
        }
  U$ @/ U- o9 s9 l% ~& Q};
: A0 p( Z) x, @+ `& d9 X2 o$ a. i  e* x9 U) b, T- {
static int __init led_platform_init(void)/ b) Y6 s2 l  T5 |
{4 i! n5 @* A/ n$ y% ~
        int ret;: @4 G! r5 u0 p. C( |, M
#if 06 n4 L5 H  A: c; r' }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* _/ Q- _- l6 O9 e2 l. R6 p
        if (ret), b1 g! Q. G* U7 H1 V; F0 V- Q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", B9 B( q2 D6 r, f
                                "%d\n", ret);5 G* Z4 x5 T" D4 T  L- Y, ^1 m
#endif
: N" ^  L9 c$ p1 V5 M        ret = platform_device_register(&da850_evm_tl_leds_device);  D  [. w) e  [
        if (ret)
" U! @+ `1 A& t+ c' v9 V                pr_warning("Could not register som GPIO expander LEDS");2 L3 |9 p2 W. }+ l
        else+ z7 [8 k0 w9 L) X. a+ X9 V; X
                printk(KERN_INFO "LED register sucessful!\n");
! |0 v1 y! Z* q/ O# k- Q8 C* ]3 t% g: C/ L" ^* q  T
        return ret;
: R2 ~- ^$ D% s4 ~5 g2 ?# E}
  v# B% t8 f8 W5 c5 H
2 C, Q7 c" X0 j$ Fstatic void __exit led_platform_exit(void)" ]9 r1 L8 d/ Q# k5 |, u
{
* k8 g4 n$ T/ |: x, Y. l        platform_device_unregister(&da850_evm_tl_leds_device);8 {! t+ S- a$ n9 s& h& @% I( B$ h

% U( R+ F- Q/ ~8 n9 M4 i/ l        printk(KERN_INFO "LED unregister!\n");: V8 t3 ^4 \* @5 V' r
}
: A4 S% s4 O2 S+ N& |: ]( T$ p9 k, Q8 B& j. ^) h8 |% ~/ z' d3 A8 j
module_init(led_platform_init);
: |& f* g, ]) ?( b- ~module_exit(led_platform_exit);
, r  Q$ [1 Z3 \( r  ?* y  @6 a# a# ], S# P, F
MODULE_DESCRIPTION("Led platform driver");
# K' t8 G8 L* C1 gMODULE_AUTHOR("Tronlong");5 B% r# F! \3 A, s
MODULE_LICENSE("GPL");8 W" C/ q6 @7 m7 ]+ ~
4 x4 @# c4 E/ f4 {% O* u8 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-16 01:42 , Processed in 0.037471 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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