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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 E( g" w' H+ @' W  n2 d/ U
#include <linux/init.h>$ p# r' ^) g/ i  }
#include <linux/module.h>5 H6 P, F) r6 A, D3 e& k+ |$ j
#include <linux/kernel.h>! A& R- z1 g# U9 }) t
#include <linux/types.h>
1 Q9 ^5 z; o8 u5 o& W#include <linux/gpio.h>( M4 e$ x5 w0 X( x% j- R7 V
#include <linux/leds.h>7 f3 |1 v" J$ X$ z% ~
#include <linux/platform_device.h>
1 ^, h+ U, i0 i9 O! l4 b
( Z8 ^# s# X$ X, [& E7 b3 r#include <asm/mach-types.h>
4 ?4 t  F6 \! P+ {. r- ~#include <asm/mach/arch.h>  s9 V) d# |# B9 z9 s1 W, Y
#include <mach/da8xx.h>: g( ]% \2 q9 Y: y* G' ?# {9 B
#include <mach/mux.h>
! p; x. ?  \+ x+ U' ^, Q
0 W6 J5 s- B  B( i9 M* ]#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 f) w) H2 b  K
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 d, W2 M  I7 q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* N( q6 t, }/ Y' P: {# j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), M4 S! z; o6 s

6 _& g6 @9 a# f$ g$ Y1 p/* assign the tl som board LED-GPIOs*/
' b; L9 ^& p+ u  ^static const short da850_evm_tl_user_led_pins[] = {' x' M' D4 Z! e/ f' y0 N8 Q7 M9 j
        /* These pins are definition at <mach/mux.h> file */  t5 Y7 i  J- p) t4 S6 h; J4 N, [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 b: S/ i& V. n, t9 V  S6 f
        -1
3 i1 N& X0 x8 {2 s$ z3 e};* H5 z! a! G# C# Z$ J% @2 w
: b' C: }. i$ m# a6 c! O
static struct gpio_led da850_evm_tl_leds[] = {1 T3 A% D9 O9 E( ^7 K3 M
        {
6 P9 N. t  z! j7 v: h" H, _! {0 j( e                .active_low = 0,
1 ]# F! s* a/ i3 i9 Q2 C                .gpio = DA850_USER_LED0,
, T- f7 e' }' S4 ]8 E/ i: k# Z                .name = "user_led0",
" m4 d. J2 L( w- J1 n% M( C                .default_trigger = "default-on",
9 b' z7 r9 ]  N) P        },% p/ b' @1 [' }+ G2 M% [
        {
3 s0 M! w- Q7 c6 s( i2 m) h  Q                .active_low = 0,& a! l5 q3 `4 M2 b0 C  i
                .gpio = DA850_USER_LED1,
; e; I0 D- t7 i$ J$ Q                .name = "user_led1",
* m' t0 M) Q0 g, W" M                .default_trigger = "default-on",* M, X, }5 L0 E" `& I  L
        },
. o- B4 c+ A! }        {, t9 R. Y! U* [( y5 o! M/ A% n/ K
                .active_low = 0,
/ s. a" T. b4 M8 s                .gpio = DA850_USER_LED2,
6 G  d, Y/ U; O                .name = "user_led2",
4 \) j* D3 C/ c3 f) S$ Z+ H                .default_trigger = "default-on",
+ N! D0 Q9 L2 j0 H- J* w! K        },: D. T4 B- x% Y% I0 o1 M4 [7 C
        {
" ^: G) b; \: Y) X& v5 a- H                .active_low = 0,
# T" r2 A& u! s: @2 C" ]                .gpio = DA850_USER_LED3,8 g2 N0 E$ c& N- ]4 U2 k1 Y; q4 g
                .name = "user_led3",
  C2 c6 k5 X' r3 q                .default_trigger = "default-on",
& ?6 p5 n! @0 `* r0 W7 ^8 {        },5 ~1 n" n/ a8 B9 U" H  r* G
};
- k4 X3 e: u! h. E* C7 ]3 X* N& g- O- G# _7 e5 _- j9 ]
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. r' w( F5 q* z8 ~* a5 T3 @8 K        .leds = da850_evm_tl_leds,
" n/ }9 `9 t: Q; y, L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, o4 C. i) M( ~" K  g  U
};3 }& m# g: e3 [, k* x) g

+ x' ?: g' S' r9 S4 ]$ P* j7 `static void led_dev_release(struct device *dev)
- Z7 h; s; P, b7 B& h; v{% C5 M# z4 v$ q8 K% L
};7 G" w" T6 }0 T/ b
! d0 n  a0 m. h; ^' S8 U1 N
static struct platform_device da850_evm_tl_leds_device = {6 n, \4 M6 ?4 i! m: L7 Y
        .name                = "leds-gpio",/ j( u) K: T8 {! I# q; A
        .id                = 1,
# O  U# _! P. ?2 i; K9 ^: ]! C8 m$ O        .dev = {" ]( q# o6 |/ Y- }8 O, z; R
                .platform_data = &da850_evm_tl_leds_pdata,; j% J' L. X5 {( H
                .release = led_dev_release,
4 I5 U; E/ V' t+ ?: S; k8 P        }/ p  b3 G+ d1 o
};! g% J( a6 q, K' H  Y- ~: C
9 }4 r7 T# e7 F5 g: D8 t
static int __init led_platform_init(void)7 ~7 s/ C; ]% N1 l& Q( j6 g
{- W( T! u/ F  a  a! R0 B+ }& n& ~
        int ret;9 d) Z+ `: `' B' M$ N1 e
#if 05 Y" }' O/ W/ m: |4 n0 L' ]- Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. Y; L' y+ X. {+ N5 ~$ m
        if (ret)
  M+ K* Y0 r- E, x6 \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& q) {2 r$ h- o& r
                                "%d\n", ret);+ y) ~6 z. s: @
#endif. _7 c( T6 S, _% |4 o
        ret = platform_device_register(&da850_evm_tl_leds_device);
) `& p1 t* R0 d% U$ Z) ?: I        if (ret)
% M" f; \0 m* k6 u: y* @$ G9 Z5 s                pr_warning("Could not register som GPIO expander LEDS");" l* A3 f/ I5 t) k# ]
        else$ u  a+ H0 Z7 q) s
                printk(KERN_INFO "LED register sucessful!\n");
/ c  V8 z. B2 R% l0 E( ~
2 I5 T- i& F  @) E        return ret;1 k! Y3 ^+ U" ~4 m8 r
}1 Z# Z6 c; c8 n3 z

0 K) y1 b9 w7 n2 B! zstatic void __exit led_platform_exit(void), m$ f9 S9 O; Q! k
{' t( L: U2 {1 e, \( H* p7 E+ m7 e3 |
        platform_device_unregister(&da850_evm_tl_leds_device);# \% B  D3 y9 V) y+ ?! H
6 B& ~5 u' [% d) w3 J/ U
        printk(KERN_INFO "LED unregister!\n");
2 h& @! r3 ^- _4 c}
; p& s$ H5 s' z1 H, [7 t/ }% K
/ N# C1 f9 I! r. Rmodule_init(led_platform_init);
( e& b2 F1 k3 ]2 f0 l+ x' Cmodule_exit(led_platform_exit);, X! R0 w1 ]/ ^8 Y! M2 }/ q" u
: O: |3 p8 \7 l8 w# \
MODULE_DESCRIPTION("Led platform driver");
4 a  F. I& ?, a. `& ^  a7 xMODULE_AUTHOR("Tronlong");
  B/ r! O0 r9 k' `: e0 V1 sMODULE_LICENSE("GPL");
  A3 b% I+ O; m( c* f, u0 `2 ]
, {& g! l0 g5 U  |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-14 21:58 , Processed in 0.035329 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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