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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; J, k  i2 _& p! O( v#include <linux/init.h>5 x8 V2 I8 V: ^: e, P2 ~# c1 e
#include <linux/module.h>& e' x6 q+ c' x! {% K& Z
#include <linux/kernel.h>
; O, {* \6 c& S8 ]  M9 i5 i4 i9 t#include <linux/types.h>; S. U  X! F- X6 @) R  Q2 i
#include <linux/gpio.h>2 a5 O& ~( m* L
#include <linux/leds.h>3 M  F  Y3 V; B% n! \: i7 ~; W: g
#include <linux/platform_device.h>
. q* L' t9 L: ~5 X* Q( k2 w3 ]; V8 L  D5 E
#include <asm/mach-types.h>- j' H4 \6 w, v+ O
#include <asm/mach/arch.h>
/ t% @, M. w2 r4 m8 Q" o) r3 w: y#include <mach/da8xx.h>
  o& p2 H/ m3 \5 |$ Y; ?* A8 }& g& P#include <mach/mux.h>8 H* M9 b8 x( a! x

! @) o* q- j2 R! s: f#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 L2 N' h, N" ]2 B) H6 L& E/ |, Z4 H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 f4 E7 N/ M6 P- X2 D% x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). z8 `/ Z, j4 Y9 u) f# K9 g# l9 j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 ^8 j+ t1 z/ r3 s6 _
( `2 l- C$ r6 T8 b/* assign the tl som board LED-GPIOs*/9 B/ D2 W; h2 K6 W. N0 I
static const short da850_evm_tl_user_led_pins[] = {
8 p7 M2 v2 r9 S6 ^" h  H        /* These pins are definition at <mach/mux.h> file */" d7 b+ Y2 I: k, F1 f  z) q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 Q4 w4 H' l4 E/ Y( M
        -10 z7 \  Q: {: \% n+ l
};
0 H% |4 q$ C1 n3 x$ R# u/ C: B" q" ~9 e+ p- k' Z/ {: E+ ]% M! H
static struct gpio_led da850_evm_tl_leds[] = {
0 t  @6 ^  a' @& F        {" |: v1 R& C# j; _7 C+ `3 H1 t
                .active_low = 0,' i0 j9 r7 i& d4 X! u) P( n$ C
                .gpio = DA850_USER_LED0,
9 X8 k  Y9 L% i' {. N                .name = "user_led0",
  [% S& L8 Q  I5 l                .default_trigger = "default-on",3 [/ v, T5 v! E1 @( x! l( ?5 \
        },  m$ A1 n  ~- p6 [% z0 b
        {" C8 l( V( d3 O2 K( e2 j
                .active_low = 0,
/ C6 G3 o/ j+ C8 T                .gpio = DA850_USER_LED1,
1 T/ ]0 r! b3 ^& V3 H9 L8 l& X; O                .name = "user_led1",
* d, m' v+ V# z" R+ L                .default_trigger = "default-on",* G( L- d+ B! t) Q1 B
        },& d0 c- z: {0 r& g/ }7 R9 q
        {6 n+ [! d! s5 W: @/ D5 p+ t5 |9 _& H
                .active_low = 0,7 H! @3 p" B; C
                .gpio = DA850_USER_LED2,6 n3 f) d8 Q- E
                .name = "user_led2",' I! i8 M& y- h6 g  h: ^
                .default_trigger = "default-on",* Z. Z% \: m; V& K5 _! T, V) o0 F" L
        },
" e7 S# L3 ~( ~9 G2 L        {
- ]4 b5 S3 c& U- I                .active_low = 0,+ m7 C& f+ M$ K! v% _
                .gpio = DA850_USER_LED3,
+ Q9 g7 j. K3 }- B5 k% a                .name = "user_led3",
! y& z' |& U( T4 c5 W6 l( p3 {) F2 U                .default_trigger = "default-on",
' H' f& D- x3 I/ K3 r+ I        },/ g2 ]9 M$ [( ?
};0 @0 H' u* f& X, y

$ g" I: \% N+ m4 z9 r' Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' a- B, R4 C! e2 S        .leds = da850_evm_tl_leds,
9 I9 f- ~4 r" L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 h0 ?2 O5 E4 C. X5 R) V
};( ~2 O! Y3 y( N# m( G* \

, n( z% }* y: t6 d: lstatic void led_dev_release(struct device *dev)8 W% W3 }1 F$ a. U; J9 g. f" k3 i
{
5 T$ R& {# y+ B3 `% R$ e};
. s& [5 z) B: v7 x" v; T$ D/ g# Q7 g* Y3 ^7 T
static struct platform_device da850_evm_tl_leds_device = {* P+ P9 |6 z" L$ Z
        .name                = "leds-gpio",
! A- i$ C7 M  b        .id                = 1,3 M6 a% q& p+ V: G
        .dev = {/ D- R- r/ G# _6 {- e
                .platform_data = &da850_evm_tl_leds_pdata,) ~% i3 O3 c$ e, D1 P
                .release = led_dev_release,
! q" M' m) V3 r$ R" v: [# _        }9 k8 I; ~5 l$ w$ A
};  r6 n- W. P3 m0 p, f) n: P. t% [
5 M0 |7 b- T! a
static int __init led_platform_init(void)2 J' W( x  ]  W) d& K$ I3 x: E
{; j5 @. r0 w( Y( B) I; j. J8 ^
        int ret;; D; L( @, m5 R- q* O/ X
#if 0
5 k9 e' l. D" o0 \        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 A  V# _% m3 z* g" i! n
        if (ret)
0 S, \* J2 H$ Y7 B2 g8 S6 B                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 y) `9 b1 [/ p( s
                                "%d\n", ret);' u( h& e8 O0 B; h7 |
#endif/ k: ]% b8 l- M% p/ R
        ret = platform_device_register(&da850_evm_tl_leds_device);) s) c( P! b9 M! I9 }
        if (ret)
. V; t( _3 C: V7 `2 |. J; H  B1 d                pr_warning("Could not register som GPIO expander LEDS");
) M( n9 o# @( t/ X, p  M        else
: B4 R6 ?# B: U1 K2 F$ b1 f' l                printk(KERN_INFO "LED register sucessful!\n");4 l* q1 `. P' ]
4 P1 d' c5 ~# A
        return ret;% I4 p" V! C! _9 J
}; O1 B: S) W: C

$ r: G6 D! M6 P4 `static void __exit led_platform_exit(void)0 C& U; z" G9 c4 }6 M8 ]+ `( e
{
; n% [$ a9 L# `( l! Q6 j        platform_device_unregister(&da850_evm_tl_leds_device);4 e4 D7 I# b. N

+ I' @) S! R% A6 c+ o% D& h        printk(KERN_INFO "LED unregister!\n");) B7 J7 c9 J) R# T, U+ H
}( O% Z6 C5 w+ r' i* F" Q8 F. t( x

& E" a4 l  }5 T! Y, f# X* |- `module_init(led_platform_init);
3 L+ R3 B  e+ J, g" E  Pmodule_exit(led_platform_exit);0 V/ p( I: I' w. \+ \) x! s

4 F! Z  l: ]' d9 v* s8 r$ Y( GMODULE_DESCRIPTION("Led platform driver");
+ G- S  ]' h9 w5 t0 @) KMODULE_AUTHOR("Tronlong");( h) N% m+ m$ g" r& r/ F
MODULE_LICENSE("GPL");9 u# Q* L5 I) q: @3 e7 _5 o
6 l) H% G% [3 D5 b1 t: ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-23 14:27 , Processed in 0.041398 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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