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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. ]% p1 \7 j; q( m; M6 P  s' o#include <linux/init.h>6 {" h$ y9 R0 [9 r2 @3 C# ?
#include <linux/module.h># K8 o4 q/ Q! @" @$ H
#include <linux/kernel.h>
# R8 k0 r7 L8 ]+ K7 [#include <linux/types.h>
, I( q# i5 w* h! n& L  @#include <linux/gpio.h>$ K' h* \! {( K- G+ F
#include <linux/leds.h>2 }+ b/ W! U' V+ t- j/ @7 j7 j4 T
#include <linux/platform_device.h>
! O& A+ O, Y, s& N# f
; U. U! t% q' v4 w5 s4 `#include <asm/mach-types.h>
7 @" j+ }/ z& A: o* J! Z! f#include <asm/mach/arch.h>
4 y4 u3 F8 O2 ~) ]9 x2 }5 Z+ i; a3 @#include <mach/da8xx.h>+ u/ R* @) c, h) ]1 W
#include <mach/mux.h>5 \$ l( T8 b- A: M( L
, y! ]. n' r) V- d" P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 |+ T# g7 V& N# G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ W+ E# N5 @' g, ]0 F& B& q- N" K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) ^8 ~7 |" u; h5 E! Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- I  O' K7 V! Z/ Y( j+ ?; I9 D, H6 C, S
5 h0 X7 B0 m; m: H) \2 k' k2 f/ `& U
/* assign the tl som board LED-GPIOs*/
4 ~" \: f6 ?) Ystatic const short da850_evm_tl_user_led_pins[] = {
! P7 X8 ^% i6 O8 ]        /* These pins are definition at <mach/mux.h> file */
, i- `5 L( E' J# Z' p3 c; z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 e3 D1 {9 [+ J" d) E' o% b2 t        -18 Z7 q& F% m3 v2 H8 T$ G
};
! E# I% r! E2 e2 h( n3 y% s
' q6 ^8 Y) M% Z. pstatic struct gpio_led da850_evm_tl_leds[] = {3 e7 d4 I+ ?8 Q' X& ^; R
        {5 o, y* U/ R! L( M
                .active_low = 0,/ p' t, b# J" S1 q7 o8 ^& f
                .gpio = DA850_USER_LED0,
6 h8 p4 Z( i1 A                .name = "user_led0",
0 S( _0 s6 x; D, v# O                .default_trigger = "default-on",
) ?. c4 ^: l/ Q+ D( k        },
4 a% r: e# o$ w0 {0 `! ~$ l        {8 u7 s: m# ~' y: _$ G2 v
                .active_low = 0,+ k4 |' r! E. q3 P" t; b6 e" \
                .gpio = DA850_USER_LED1,2 E8 b0 u# P) |6 u$ [- r
                .name = "user_led1",9 n0 r- I' b- s" e/ s; _& {# b* c
                .default_trigger = "default-on",1 c6 \$ q; {  Z! P- T4 g
        },
- \' ~2 q( _7 N        {
3 J2 X9 U3 w8 \! @4 a. X% g5 ~5 w/ X                .active_low = 0,) R0 [! ]5 B. A1 ?* N  a
                .gpio = DA850_USER_LED2,$ O# m9 k; o+ C& n7 B7 h& {
                .name = "user_led2",
" K+ O! G: I7 J% a% p                .default_trigger = "default-on",
5 l- M7 U* f+ {1 n; Y        },
& J) Z  c. o. O. ?        {9 q/ p( H7 M3 Y9 |* P
                .active_low = 0,
' a2 r8 m9 G( c9 U' k                .gpio = DA850_USER_LED3,
7 B. M* T& A- g$ p7 r% S                .name = "user_led3",( X0 F3 \* |7 h( {: K
                .default_trigger = "default-on",
( ?$ ]/ f9 p2 K# v0 _8 Z: |        },
9 {; z4 S( ]! ], m! K+ Z* ^};0 g, \2 N( L3 ?# {
7 w! F; T+ f  H) E; [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 o) u" q# f+ o( m% ?. {) ]
        .leds = da850_evm_tl_leds,' }4 v2 L% _& |# B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' R! \. O0 @9 }5 \# ?2 v% V& x
};9 D- [4 p$ k) I

; s' K: u( }* F6 r( C2 Vstatic void led_dev_release(struct device *dev)5 b: d  [, i6 b- _& x: X
{7 g" W3 t6 S- f5 Z) k
};
# b2 i; M9 ~# c( ]  P- b( ?
5 V9 a' d* Q. ystatic struct platform_device da850_evm_tl_leds_device = {/ I6 U. o; j  w# j3 X( U
        .name                = "leds-gpio",
3 f/ y( Z4 z9 U& D$ M9 u% v        .id                = 1,
( L0 M. u/ ?9 C, \  D" z" Y        .dev = {
0 `" z" h5 w$ K* K                .platform_data = &da850_evm_tl_leds_pdata,: q9 n) |. k/ L4 U
                .release = led_dev_release,) m8 y3 M% _1 c6 `; J
        }. G+ A: t" C' w; v( |+ r' S/ Y
};
% ~- a/ c; n& x1 w5 f* S  n
0 }* M7 i! ^/ D8 F  z+ j3 v. {static int __init led_platform_init(void)$ p: ^4 e+ ^% f  ?6 R" T% f
{
6 |7 n6 \& |4 ^  h        int ret;
4 C, T4 [- b+ ?#if 0! q1 D% b4 T& |7 Q5 I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 v$ H8 J2 m3 \9 C7 F) }+ j" v
        if (ret)8 X6 d1 t- [" v4 H" B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", v* G4 e6 W% e! P8 c9 R- ~* ~
                                "%d\n", ret);6 o" f. X- m" W+ w7 y
#endif
4 F1 I9 D0 `! z6 g5 O        ret = platform_device_register(&da850_evm_tl_leds_device);& P  m- h8 s+ e
        if (ret)
1 }# S# e% D" c/ d+ s                pr_warning("Could not register som GPIO expander LEDS");8 C7 q+ f$ q- g3 n. n
        else
9 X  e/ d8 T% G% z" ]                printk(KERN_INFO "LED register sucessful!\n");
- X9 \; m5 t% i$ A# F' F1 n0 j
' A! _6 k: ]$ X( x  R5 n8 p        return ret;
% ?+ z* r! t% J2 j% I}5 t! w+ b$ o, P. ~% H  M5 D+ m

) J4 U: s3 o: nstatic void __exit led_platform_exit(void)
; B  j; N# `; o) a{0 J! u, W5 r8 d+ x2 h( ]* U
        platform_device_unregister(&da850_evm_tl_leds_device);
8 u, O- H5 c( y& K! t
. I4 I: @6 U/ Q  n% j; i+ S* R2 v        printk(KERN_INFO "LED unregister!\n");
* e3 p! X; O4 w- [/ l+ B}  f( {4 M0 @. H
' W9 ]6 N" c- @  O+ k' l
module_init(led_platform_init);$ S2 x, m* p. n0 u$ f
module_exit(led_platform_exit);* Q; o  ~' |0 X; J7 T
  K: o$ y. b' q: m$ G
MODULE_DESCRIPTION("Led platform driver");
/ q! l  k, \& k( A9 YMODULE_AUTHOR("Tronlong");' b6 t, o, t, Y, N
MODULE_LICENSE("GPL");
, s9 ]: b& q/ }5 L, i: L2 H9 O" b# Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 13:02 , Processed in 0.052319 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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