程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ F3 t( Y, W' L6 b
#include <linux/init.h>; l8 |. m8 D2 \8 s; p# q0 V" e
#include <linux/module.h>
& F* v$ R1 [7 ?- V. x! I% H5 q#include <linux/kernel.h>
% e, j8 f- f  P; Y! l! t, }' V#include <linux/types.h>
' o- ^  s, V0 K" o#include <linux/gpio.h>5 R0 l9 M+ P4 Q5 J3 N" T8 T
#include <linux/leds.h># o2 N/ X& Q9 e, S  o  G
#include <linux/platform_device.h>
/ f3 D6 S9 B2 B2 e* G: |/ @  [( t/ h; q, ^, \3 I% a- Q/ y
#include <asm/mach-types.h>
! E9 q' E  c8 p$ u7 k: p/ \#include <asm/mach/arch.h>" D- e" _" m; N
#include <mach/da8xx.h>
7 _: P; D1 V; b" p4 Q4 f#include <mach/mux.h>
% t9 |$ a! m# ]6 ^8 p( f+ J& J! u7 C0 p0 c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 w. q! T- P. V3 a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 R/ N# j5 p0 z9 N0 e! n- d* E- k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( E2 q( k$ X( S4 T' P
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 n  p1 t% S& x0 f: U) Q  V) e9 Y$ N- i: b! G6 p" w/ e
/* assign the tl som board LED-GPIOs*/
1 m8 H3 E4 F6 V7 O" q& kstatic const short da850_evm_tl_user_led_pins[] = {1 b0 Z0 Y6 Q2 ~+ o( @; y
        /* These pins are definition at <mach/mux.h> file */
4 O5 H* p' L( }! Q2 G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( f' J; |% Q! \$ e; o. {  B
        -18 _  V4 `$ g8 ~' f
};
8 ?9 Q  X& z/ ?; E7 @" |* i3 t' @. M% n
static struct gpio_led da850_evm_tl_leds[] = {1 f+ w& d( X/ b( u% y
        {
/ u% x2 @3 R2 y9 w+ ^                .active_low = 0,
7 S' h6 j3 Y5 v0 w$ ^                .gpio = DA850_USER_LED0,9 M/ u$ H2 i3 e# s' B
                .name = "user_led0",9 |7 x. i$ p1 o/ O0 z
                .default_trigger = "default-on",
5 Q  g2 G9 t8 r% p* t; O        },
3 K3 q% h3 l$ b8 g7 b; X; d0 t        {- R  }+ u. ~; G: \7 {
                .active_low = 0,
) s# s* Y( X8 y/ b3 e; J3 k; S% o                .gpio = DA850_USER_LED1,
/ w6 {% s6 v. Z3 X                .name = "user_led1",
, n4 y: a7 j/ I3 u, n" D                .default_trigger = "default-on",. k5 T( i- \/ @5 u
        },
4 m* l0 _% i1 d/ H0 e1 b% ]. C        {4 N: M8 O  {3 q1 _+ X5 {. t6 J
                .active_low = 0,
/ A3 c8 t% i2 F4 p! d                .gpio = DA850_USER_LED2,
* v) j* B% g5 X# z                .name = "user_led2",
1 ]2 ?2 X4 y! Z9 ~7 z" O3 W! W" r                .default_trigger = "default-on",/ Y# _+ o) q2 N2 p' [% L) Q! w
        },6 d; x$ n. O6 Z( x; {
        {
% U) d$ I$ }* {  z5 M2 P5 Z                .active_low = 0,0 I. P) ?, E* G9 `) ~& q  P/ ^2 X
                .gpio = DA850_USER_LED3,
" E! M8 H' \, B- `1 D                .name = "user_led3",
+ P1 j  l0 D- @0 x; r) y                .default_trigger = "default-on",
% @' N6 i9 U) c; [        },! L0 M: ]; g$ O+ e
};
+ P5 U4 K+ G0 r
  o9 k: a* h# G$ `' Cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: `; d- K+ L1 J- D& ?, v; t        .leds = da850_evm_tl_leds,9 v2 J$ u4 A3 H; `8 p$ Y1 E3 h
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ p: R- x" j5 K, R0 c};
5 X% ?- b' s/ p: z; C& {' U& J
" A9 q' X; C+ V1 a. I3 B! v  Cstatic void led_dev_release(struct device *dev)
: Q9 L% X) U8 }+ N# c& x{( E. I# A: }/ R4 }" _
};- m, |+ e; ]2 j8 ~* y

1 b% h* _& ]2 l# ~static struct platform_device da850_evm_tl_leds_device = {; L% U! w4 Z6 {% M& B8 j
        .name                = "leds-gpio",1 J" t8 g, D: r4 ^4 L" g' N. t# u- d
        .id                = 1,
2 @+ l5 E1 D/ \( R8 J        .dev = {
" h$ x6 r9 P5 [( t* X" l                .platform_data = &da850_evm_tl_leds_pdata,
$ n8 G5 _4 D  K6 n+ g" K$ y( m                .release = led_dev_release,$ o/ }- b# x+ o: k
        }  j# V5 |) B: |+ |' [
};2 \9 U; z& T' V4 u, M# Z: ?* P
* f( j! v: `% k0 g
static int __init led_platform_init(void)
& }& o/ {0 K+ x' |; h{. J: V4 [6 Z4 V6 e# ?; N& `
        int ret;
0 ]! @8 O; g- Z#if 0/ @9 ?" X9 [7 s6 q6 d+ v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, G6 c" F7 _! W# o% m
        if (ret)
; i7 J% W" z, ]% n, |% t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, j9 Q, c9 B3 X* U                                "%d\n", ret);
2 h0 Z$ F; Q3 b, U#endif
1 @4 ^9 i+ e5 \! C        ret = platform_device_register(&da850_evm_tl_leds_device);
: f- u- g2 m' t( h0 @        if (ret)
" C( b% O/ J* u: D; l7 k8 m                pr_warning("Could not register som GPIO expander LEDS");
% |% p9 E, Z, G) o1 G        else
/ z2 n4 I( D) _+ |                printk(KERN_INFO "LED register sucessful!\n");+ D! z3 g4 D; d& j8 r  h' @6 O

4 k; A. p. V- `! _1 M! I        return ret;, p( N4 G  p8 z1 d( ~- H
}
" c% w& Q3 `: K* `; N8 M  Z1 z7 h. u! c9 [5 j* \+ z! c& I# \- h
static void __exit led_platform_exit(void)( t6 R/ \# l6 {. f. F6 H+ w# d
{6 J$ w, d$ H; N# e, P
        platform_device_unregister(&da850_evm_tl_leds_device);/ N7 m3 F+ Q% Y: E! |
! D, u) }/ J4 u; U. F% E
        printk(KERN_INFO "LED unregister!\n");( y9 \. @/ e. K# S
}* a* h' m% M- H+ o7 Q" @) r
: f2 m" b; M% K$ B2 T1 A$ c* w4 v
module_init(led_platform_init);, ~" f7 K# p: W( b4 R+ a& J
module_exit(led_platform_exit);3 L6 }: ^0 f/ l8 w4 H- {( E& x
6 u+ a- a6 a% {3 t5 g  w
MODULE_DESCRIPTION("Led platform driver");: d- s2 N6 S7 m# a7 n; ?
MODULE_AUTHOR("Tronlong");2 k6 Y. X. L( B# ]" {9 S3 p
MODULE_LICENSE("GPL");
. T7 W2 L, D- ]) p# v/ I# {; t# R
7 v/ C4 ?  W* E& Y5 s3 R1 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-2-2 20:19 , Processed in 0.039901 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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