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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ I, [! i# m- {5 r: _#include <linux/init.h>' a' M4 Y. }, J4 L
#include <linux/module.h>2 h7 G8 g% x4 I4 e
#include <linux/kernel.h>2 D1 e) v' C$ x( u. h
#include <linux/types.h>
1 y) k/ \, j/ c1 ^* g3 W#include <linux/gpio.h>) R, q( O. D" i  W; l3 H: p* P
#include <linux/leds.h>! ?- I. M- r. o
#include <linux/platform_device.h>
6 i% X) j5 K& h) C! }' K9 m
4 r5 V4 E, y; B#include <asm/mach-types.h># R+ }% t1 G  p0 I; J* p. @
#include <asm/mach/arch.h>
/ w% C6 w5 C, n9 f9 }1 w3 V) Q, E# @#include <mach/da8xx.h>! k( B5 j3 g# S& E' c+ a
#include <mach/mux.h>
2 M. T& [5 Y) `$ _
+ p. e" m+ C, r8 C* @7 T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) i, |" J. q2 K& Y1 G+ o0 _
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 g# n1 `* H3 }' @# c$ ]
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  E3 m; e" O$ g1 v  z5 [4 P$ v#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), y# d7 l( x9 d2 _% `" z6 ?

! R6 \6 A' y) X! ~/* assign the tl som board LED-GPIOs*/
2 A: H$ {) p3 z5 Z; H8 j- Jstatic const short da850_evm_tl_user_led_pins[] = {
8 d2 [/ x( z; D, _" B# ^8 _+ n9 B        /* These pins are definition at <mach/mux.h> file */. J2 o$ g* a% m3 B3 _1 E* ?  F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% z  ~8 ~$ n& z4 F) l. a
        -1
. p9 N: ]' y' L1 Y  }};7 n% `& q" P, c& |
3 p5 a6 A: I9 O& p7 ]9 Q
static struct gpio_led da850_evm_tl_leds[] = {
* K% ^3 T* J# Q& N0 O5 T7 i        {
  y$ z: y  a& ^                .active_low = 0,) `9 r5 N' Q, g9 j9 K% H6 }
                .gpio = DA850_USER_LED0,; A& ?7 i# S* F& u$ O" d( g& A
                .name = "user_led0",
: p( y$ n4 \- U                .default_trigger = "default-on",9 J7 Q$ h4 |: b
        },  S, h- W( Z1 k& L/ Y
        {
( Z) e+ U, X+ Z7 r4 [- E0 d( ~0 P% O                .active_low = 0,/ G( `# p: l4 y* l1 ?  b0 X" v
                .gpio = DA850_USER_LED1,. }. t/ w& A6 R" q
                .name = "user_led1",
- k- k% f% h; v/ Z: l, ?0 v# W! J                .default_trigger = "default-on",5 F. Z( I7 h) J! v+ M% l) Q
        },$ m/ w8 i! m; I+ P- r) }' W# ]  f' s& Q8 ~
        {9 u) }$ ]' f3 a( v1 q. n8 X( h
                .active_low = 0,
7 I; q: L# M6 K) ?! X, ~* l                .gpio = DA850_USER_LED2,
0 j( E" B2 j5 J  b3 B0 d7 R                .name = "user_led2",
# y: v& B5 J1 i- Q8 {' ~3 F" c                .default_trigger = "default-on",
: u  B: I5 v+ w        },
9 L9 h1 d3 L9 g/ a7 @7 _        {
( S( k5 R9 i0 v; O/ k                .active_low = 0,6 O5 _3 X1 k* Y5 N5 F( m; K
                .gpio = DA850_USER_LED3,
, }' r* h* F9 z  r6 l# o) W                .name = "user_led3",
0 g: J( D& j# _+ O4 A/ f                .default_trigger = "default-on",  O+ H8 U1 m  y; e5 C" {' ^7 q. r# D
        },
% ]( v: p0 h9 A/ ^};1 U! V! Z" C# z# q' \  H/ o
" x& ~. C  s' h8 @9 U5 ?" s* L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 o2 R: |  e" E* R4 ~1 @1 ~/ Z
        .leds = da850_evm_tl_leds,
" x5 N4 j: T) s( d) \6 ?        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 Z# e% c# v+ m$ b
};
5 W2 q  x2 U5 [9 t( g6 D3 ]1 E% l7 R7 L
static void led_dev_release(struct device *dev)0 ^1 I& Q& ]+ `+ J
{
2 T' X+ e/ ~, f) O' `* b};4 R! }; t: q: `+ Q/ m7 u, O. L

. Y7 {. x0 L* hstatic struct platform_device da850_evm_tl_leds_device = {: g& m3 @. k1 ]9 ~# ~
        .name                = "leds-gpio",
+ @6 W5 i3 l5 ~! s# G' V        .id                = 1,
) \. H# x% E4 H2 R' O' {0 {        .dev = {8 n. d  [7 d. U$ s5 Z2 j* r. k
                .platform_data = &da850_evm_tl_leds_pdata,
5 C% n) N- N2 g) g* L                .release = led_dev_release,
$ p/ h8 j7 L7 l7 h: T3 ?        }
) d7 s$ t) Q+ a" Q};% b. D2 C* s. R7 |7 p  R9 e! S
6 s. W" G1 P0 ~  v4 J( g% j
static int __init led_platform_init(void)
8 w9 I. _+ O5 c6 R! h{
0 v* F" V& K4 w0 j        int ret;
$ b4 O8 n" u2 A0 Z; f2 a# N#if 0
% R6 L7 v' B* \5 F2 C        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) ?, S2 A( s5 Z' T; F        if (ret)
5 [3 p4 G5 @/ g+ [/ _2 \5 X( [                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 X1 H# N; D+ m
                                "%d\n", ret);
8 {! o" P) `# Q! R/ }#endif( K' \. V& M$ i- s& h- T
        ret = platform_device_register(&da850_evm_tl_leds_device);4 i+ F4 e# [- V+ \7 y- V% I$ I1 _7 a
        if (ret)
3 D4 g3 N; D# x2 [                pr_warning("Could not register som GPIO expander LEDS");
; k' _$ T% G& B: Q8 B9 e        else  g0 D5 k, m6 R; a# b
                printk(KERN_INFO "LED register sucessful!\n");
, E: c- l2 N1 P/ ^% `  N2 K, Q; F: ]' M
        return ret;/ q! P* q/ |; K* W% e: x+ c& M
}# ]; h% \3 k3 H; E; F

$ m& W" w- j* Xstatic void __exit led_platform_exit(void)
+ C  |# l8 M  Z( G! {" R{
! k8 K1 _( u% ~        platform_device_unregister(&da850_evm_tl_leds_device);
2 g' f/ v" @. Z) H; [& C/ T& c  |- Z* w/ C+ ~
        printk(KERN_INFO "LED unregister!\n");! c$ e4 e/ \; V
}
/ w; M: l( e% K5 N" r8 L! g/ g6 Y- P
module_init(led_platform_init);
+ t: \2 r& T6 u% \9 Q. G. I9 pmodule_exit(led_platform_exit);8 \, K) R+ E* W7 U
" M/ t& ?. P: q. }; S5 H
MODULE_DESCRIPTION("Led platform driver");) c: }* N5 B4 m- r/ h
MODULE_AUTHOR("Tronlong");
& b' m' `% k/ I% YMODULE_LICENSE("GPL");
3 B# d! J* B3 [% q. a5 m' B" T8 C; [- a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 15:55 , Processed in 0.040232 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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