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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) Q/ s5 ?; y( d4 ]5 b9 G4 k
#include <linux/init.h>
4 s# u9 O  `1 o* U#include <linux/module.h>
1 O# d: ^& e0 Y0 `/ x1 h- c  a#include <linux/kernel.h>+ ^' m6 C0 y6 V# U) ]
#include <linux/types.h>
' F. o. C# Z) l0 H#include <linux/gpio.h>/ h& W5 ^) b2 B, g  Z& T! P
#include <linux/leds.h>
- H9 q. |" L+ L8 w' F#include <linux/platform_device.h>' x  B. }- p* ]: r- R, O$ g

9 a" N$ h# i, s( B5 C4 E) y#include <asm/mach-types.h>, i4 e6 }6 f/ q- m3 h/ m  P
#include <asm/mach/arch.h>
& U+ E+ |' k& h( F- o#include <mach/da8xx.h>
5 ^; @# q3 l8 i8 c, `#include <mach/mux.h>+ T- }, Q. v, @2 Q2 m
; w! u7 v9 S) X- z; h6 [# f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* v0 N4 z8 b6 t0 ~, S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 q! k2 X  h# Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 C+ ^. w" S5 \. R) t# b" C
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 a  l  n7 ~- e' M
3 D6 I  {% ?2 S4 l2 [* s
/* assign the tl som board LED-GPIOs*/
/ U% Q" `5 O# p$ ?6 Xstatic const short da850_evm_tl_user_led_pins[] = {
  Z  }* y0 N9 }' C8 G0 P' B2 y# s# [        /* These pins are definition at <mach/mux.h> file */, Y' T, ?5 i" ]% m8 x' O5 A: {  ]7 ^
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 i9 I  c! v( I  W' e1 i
        -1
5 \# B! b. v, s" M) \+ J1 g6 I};, P/ @: |+ l5 j: F) M# R9 l
/ m! T, R" u; |
static struct gpio_led da850_evm_tl_leds[] = {7 g% m3 W+ g* {+ ^
        {4 r4 u" O, ~9 B3 b
                .active_low = 0,
# \% u% Q. Y2 @) A                .gpio = DA850_USER_LED0,
& ^  }  n6 k7 s2 o5 J                .name = "user_led0",
$ H4 B! w8 U$ W1 k                .default_trigger = "default-on",
9 @& K3 z1 W4 q! f        },! o, x) x  R* r: w1 A2 q1 H- J) P
        {! C" D8 M* |  A8 M) z# o
                .active_low = 0," v  u6 v: _$ q5 ]7 h+ N0 {6 g
                .gpio = DA850_USER_LED1,
9 M8 q1 L7 A( o1 f6 o" j# D                .name = "user_led1",
% `  S2 G2 H& |5 Y5 ~+ ^# o) s# G                .default_trigger = "default-on",. h' Y3 C7 o7 q6 S- n" g
        },' h4 w; {4 P3 A; ?' i5 ]7 L
        {
9 X; t- _9 |$ I                .active_low = 0,
2 P! e, |0 M$ ^9 F/ o$ P                .gpio = DA850_USER_LED2,4 n$ X+ Z0 l# ?6 w( M
                .name = "user_led2",
  q* `7 F' G, u                .default_trigger = "default-on",
2 E& E  r! v) @# g+ M        },
. }+ P: P' M+ l/ t        {
! H. |, u  ~% x- }0 d8 ?                .active_low = 0,1 x- t* U1 J4 N% A8 C
                .gpio = DA850_USER_LED3," \4 C' _& P& n: g
                .name = "user_led3",( K8 ?6 k  w. @2 A' V3 R9 c9 O
                .default_trigger = "default-on",& N5 c7 R: o3 r1 a  P
        },) {" @3 N# n1 }, p
};
6 m' }, c: x2 P" `& A2 j; W/ h9 l* \, I7 @2 e7 y4 V" w6 A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 d6 d3 F5 Y' ]* Z        .leds = da850_evm_tl_leds,
$ Y6 N* H$ E( C1 {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! M5 O& g- ]4 i- {, Z; A: @};0 `- N, [. T( I. R
# l" ]9 ^7 U: c! u
static void led_dev_release(struct device *dev)5 F: G+ C# h( {: y" v
{8 F" s( B. u  X' |+ c0 E8 @
};* C6 y0 c; c% l+ L5 H0 y7 n1 ]

$ \/ p, y! b* k3 v2 Y  xstatic struct platform_device da850_evm_tl_leds_device = {
* U8 q  `! S; ~% t1 A        .name                = "leds-gpio",
  Q: ^$ o3 G5 m$ ]! B0 y& e        .id                = 1,7 y: |. h- R% E7 E6 E
        .dev = {4 n* Y! g& [/ ~" x2 e0 w) `& s
                .platform_data = &da850_evm_tl_leds_pdata,/ i' d( X" |& ^3 J- f+ a
                .release = led_dev_release,; Q5 t( K: W) s9 Z
        }
- ]4 a' e; x% l. z& e};
" T' S! ?* F6 i) Q+ J6 s4 t  R% f, |: `$ T3 e+ ^" F) {# K
static int __init led_platform_init(void)* _# H+ u7 C; |
{
. Z" g8 M. _3 Y7 l6 s! T        int ret;
% S) L; {2 y* P8 _5 D$ b; j#if 0
: D8 c4 |$ W% |- y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( ^* w+ u  x3 s        if (ret)
  c5 a8 ^8 \4 \4 B( A# A/ i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 l5 ~% W  ]) k
                                "%d\n", ret);% n* F% J! L; e0 o1 b: ^. ^
#endif' y* \  A* o7 P% ?
        ret = platform_device_register(&da850_evm_tl_leds_device);( s" |% a6 ]. Q
        if (ret)
1 e4 x) R( I* W9 h; b- T0 E6 h                pr_warning("Could not register som GPIO expander LEDS");
7 ]. z+ G! M9 w8 ~        else$ w9 A# H* J' G! h
                printk(KERN_INFO "LED register sucessful!\n");
. v5 s; v, U7 y6 i" w/ \$ n" ^: G) D; K' \
        return ret;% S! e: T$ s+ V
}
, q; X: `# V" ^0 M% |8 j! y5 G
static void __exit led_platform_exit(void)
6 `7 U9 K) v) ~" l{
% {3 f9 d4 x. R) a2 H: S        platform_device_unregister(&da850_evm_tl_leds_device);
# k5 A6 u$ E, h7 q" M# ?* m
, B0 r  ]' C1 l6 S0 g        printk(KERN_INFO "LED unregister!\n");8 `- v* B" L  ~7 C7 }. b) p2 G  B4 n
}
" J6 `# I. k1 P+ s% R# g3 a
+ _! H, D: @" [module_init(led_platform_init);
( d, C' E0 a4 }% zmodule_exit(led_platform_exit);
0 f4 k4 b. ~, B2 b# |1 }4 b5 T6 {4 l( [3 D
MODULE_DESCRIPTION("Led platform driver");8 r# n; N' a( B1 X
MODULE_AUTHOR("Tronlong");$ T+ t: \% M0 z+ H
MODULE_LICENSE("GPL");. m0 f# k. a  L' H- Q
& I' j# l- h" x; m4 p- X& w7 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-7 11:01 , Processed in 0.043678 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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