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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' j' d; c( O* s* `  @( e" Y" N#include <linux/init.h>
  b6 E* E$ ^+ M6 l+ K( O% ^; Q#include <linux/module.h>+ m! W1 O% C0 w1 y: r
#include <linux/kernel.h>! c- L/ ^2 t, A) z
#include <linux/types.h>4 z' R5 A7 ^7 Z+ @
#include <linux/gpio.h>
+ G5 ^1 ~, D; j; L0 v' p2 C#include <linux/leds.h>3 m4 V) R0 ^" b7 h( s8 E0 X" H
#include <linux/platform_device.h># ~; y, Q- F: s, e+ x* e4 _! T
$ j) z4 W$ G. K, y! @5 i
#include <asm/mach-types.h>
7 n  J+ e$ P- ~4 o0 z#include <asm/mach/arch.h>
) b& ], }7 p* {2 `1 r#include <mach/da8xx.h>: c) U+ t* h  d, v8 ]% ^
#include <mach/mux.h>9 ^3 E2 d5 h% T7 _5 ?! }
8 N4 T( A3 v4 K7 t5 C8 T
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ }& g: l/ r3 j: \& T0 r8 ^#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 E$ D( M# X2 T6 f& S( b0 Z3 P#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ I7 z/ R8 M. u% m# M8 w% {- R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# a5 p. x0 ?" i6 f, o0 Y% @/ J
/ z+ K& C5 c% l8 {" X' `/* assign the tl som board LED-GPIOs*/1 a9 ]! C- S/ E
static const short da850_evm_tl_user_led_pins[] = {- x. l+ e4 R3 Y/ y
        /* These pins are definition at <mach/mux.h> file */( g( C* p; E+ ^$ _' |2 C9 \! V
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 B  N; K/ f8 m4 Y
        -1
6 h( W$ V* c2 h) R};0 O/ r; H, `( j
! z8 S. n5 T- E! x6 y; d$ p  E9 K# l
static struct gpio_led da850_evm_tl_leds[] = {
/ [; B# H- o2 X0 t3 w* U( Y) f        {
5 J# m7 R+ P/ r5 o2 @. |                .active_low = 0,
1 A& i  o/ @* ~8 u* |                .gpio = DA850_USER_LED0,7 T% ~; H" O* e- n, \+ X
                .name = "user_led0",
5 t! V3 O6 a. ^% B/ v* s3 J9 Q                .default_trigger = "default-on",# S1 d/ |( p) z- A& I$ _9 C0 [: L
        },
" b1 }! P9 r# q: U+ r; C4 a5 v" a0 \        {
' J0 L4 o: O, G% V4 |- {                .active_low = 0,
$ {# e0 O. r6 h7 ?/ J                .gpio = DA850_USER_LED1,' P# T& p% u5 \3 b% P
                .name = "user_led1",
, D0 @5 f% w3 ]( X1 ~8 M                .default_trigger = "default-on",
# h; H/ S5 T2 {        },
# r6 f- c! f" J0 t1 V0 M6 Z: J        {
$ g& \2 z  r2 w! g1 h/ j8 G                .active_low = 0,/ @5 }. s; [8 ^) ^
                .gpio = DA850_USER_LED2,6 f( }) h5 I6 Y, J
                .name = "user_led2",
8 |, E6 `) j7 G                .default_trigger = "default-on",
8 |9 J* D5 I0 ]        },5 i* i7 p0 X$ L  D' B# A
        {
1 o8 o5 Q( w$ Y. P0 c! c3 T1 L4 q6 L                .active_low = 0,
9 i' @6 q* \2 A% t                .gpio = DA850_USER_LED3,
( T  `, Y' N8 {0 Y                .name = "user_led3",# Z  n. ~/ \1 B% y2 `3 i' K6 q
                .default_trigger = "default-on",
/ }& C! P+ ?; B6 ?8 r( Y        },
& p  G- ?! `' F- N% T: |/ J};' I( Z& q  q9 H) q
& N6 F6 P* A. J. f2 J1 p) F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 N/ z, M" K2 Q        .leds = da850_evm_tl_leds,# |) x* G- {" A0 r  V. u3 ]. N2 n, j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," b; g  z& c! [
};5 h3 I1 ]; F# P; C9 h

) m: M- e6 ^6 C' Ustatic void led_dev_release(struct device *dev)% o- ]$ I2 I4 O: q1 Z; m
{" x: e* o/ A$ ~( j0 s5 P0 L
};" }5 W: w/ _( R5 c  z
' D5 W  ^( K: u
static struct platform_device da850_evm_tl_leds_device = {
6 A( o* Y$ Z5 _, k, }" _9 r5 }2 Q        .name                = "leds-gpio",2 L# t, a7 P% K" I! ~1 h
        .id                = 1,* s  k4 K5 h  B5 j- q8 h
        .dev = {
3 G3 }6 F8 a0 o( K                .platform_data = &da850_evm_tl_leds_pdata,
8 I# J' l$ ?2 i* d                .release = led_dev_release,
& |  ~5 i/ ?$ ^' Q* U, `0 m% u3 W& b8 `        }
$ }' s: Z8 a  y};
( y- I3 y' X; E, h# V
3 D  _" g. {& h1 w, D6 X, tstatic int __init led_platform_init(void)( F# `2 g( p0 v; L
{
! C: y1 y1 S9 n' d        int ret;8 o8 {" w7 O1 ~' X# L
#if 0
: E  |% R8 R  g/ x: ?) y& b# ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* G' t/ y1 E* A* ~* Y        if (ret)
* s% a8 b, U9 M& _  K) o) T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) P4 F4 h9 ^$ h, j2 \                                "%d\n", ret);. q( A- Y3 l3 G. \! d/ x# {5 Q
#endif9 D+ @% [: o$ C9 \- p; _! T: ]  V  M( s
        ret = platform_device_register(&da850_evm_tl_leds_device);- u+ |# Y9 n+ H; v
        if (ret)
! O) U: n8 c* z! E, |                pr_warning("Could not register som GPIO expander LEDS");  n: q3 u& ]! o- G
        else
; ]# ]0 E% l. K2 k% E                printk(KERN_INFO "LED register sucessful!\n");
# Z5 Z" i. N1 Y" V
2 {0 C2 D- @$ h. l5 o. A/ J0 J; {        return ret;5 K+ D! }9 {- f* x9 F: y5 h
}
6 [' q  w7 R8 N/ H/ Z( _" \$ _3 Z( K; n3 n. k
static void __exit led_platform_exit(void)0 X0 m. V7 S$ r& q$ u) o2 T- y
{
! J! E2 Q# p0 H) S        platform_device_unregister(&da850_evm_tl_leds_device);
6 J8 c6 i8 E  \5 N
! ]5 E4 D, R6 Y8 _, {5 B9 I! B1 d        printk(KERN_INFO "LED unregister!\n");
+ I7 V$ {, L1 L) i9 c$ o* k}
. z* n, X) |+ [* N7 I7 w, o) d% \! k- W% Q0 T
module_init(led_platform_init);9 n/ M  R* W/ n3 }- [7 J0 q4 `
module_exit(led_platform_exit);" ~  N( n. o" Q+ N* H9 W

4 c1 y, T9 R2 }% Z) j* OMODULE_DESCRIPTION("Led platform driver");7 w1 E. S/ W  O5 E/ j' y
MODULE_AUTHOR("Tronlong");0 n: Y( a+ ~0 ?$ @1 z2 N
MODULE_LICENSE("GPL");! f  D( E' D# d4 R; |2 o4 W

1 b. A$ V7 E# U0 G2 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-30 09:49 , Processed in 0.037914 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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