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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 Y" L2 ^/ S$ H; b0 L+ C5 g' }#include <linux/init.h>
6 A$ J. r& v: v  X$ x6 n#include <linux/module.h>
3 v/ {0 n6 {& M6 Z9 j#include <linux/kernel.h>
7 _# L  c5 N+ J0 D% Y7 E#include <linux/types.h>
% o: S$ P: g" p#include <linux/gpio.h>" [& ?& S6 Q$ k& |' _0 e1 F7 d
#include <linux/leds.h>
6 v' j9 C+ r6 C. ^# O6 d3 V#include <linux/platform_device.h>
& u7 V% S) f* Y9 E  f/ R8 n4 F/ B5 x9 ]
#include <asm/mach-types.h>  X  y& o' C* q/ H; s: J3 |
#include <asm/mach/arch.h>0 l' b6 Z0 I2 a
#include <mach/da8xx.h>
3 ?+ x, M/ U3 J3 K8 A. N#include <mach/mux.h>
1 |2 I! y  ^  Z/ ~
1 F' E. u; a$ \+ [: o# ~#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 r. |, O8 T7 j+ w# d4 A/ D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 X1 [# ?( z! l4 A. q' Z5 r. u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& W3 U$ e/ z9 m0 _, P#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 [  ]# Q: n5 Z3 s. V: O3 {, A0 `! r
/* assign the tl som board LED-GPIOs*/
8 A5 g" _0 x1 S  k0 y$ w* istatic const short da850_evm_tl_user_led_pins[] = {. N4 ~- V- ~: @9 h, f6 r% o
        /* These pins are definition at <mach/mux.h> file */: ?% ]0 N5 c) V$ w$ y& C  F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 j, Z! g* n3 |  H        -1) I9 `, t% i6 u7 J: e! y; \
};
1 L$ n3 X) f. r% e5 j# G! k8 _3 u8 Q5 u: c# v+ }2 q2 f( k
static struct gpio_led da850_evm_tl_leds[] = {0 q7 F) {$ O5 M% x* V
        {
0 n8 _: Z' j, o7 \- U                .active_low = 0,
) X, _5 e& D* P                .gpio = DA850_USER_LED0,( k$ z' ]! B; ?
                .name = "user_led0",; }, Z2 W, J) |3 G+ Y: D: C. x
                .default_trigger = "default-on",3 x, f. v) i  Q( O
        },7 R3 v3 z7 z; ?9 G% [
        {9 M2 j; `: p1 i5 y/ p& {
                .active_low = 0,
+ W8 F- \& u  w! [2 F                .gpio = DA850_USER_LED1,
; s8 v+ {/ W- p/ i4 w% v0 D7 p* ~8 H0 i                .name = "user_led1",2 q/ D" `" u- i! y) ]
                .default_trigger = "default-on",
, b2 I, a' t6 T: B1 M/ L( \        },
/ Y: Y& H8 I2 a+ a1 ?        {
+ c- Z$ ~/ w( h9 e1 w7 W                .active_low = 0,2 M6 W0 l: O3 `' W* x# P
                .gpio = DA850_USER_LED2,
9 k0 z% g: \% a                .name = "user_led2",# k$ {+ W5 @  X" A
                .default_trigger = "default-on",
. J4 `/ ?# T5 N. v: o3 n& V        },( S. V3 T0 ~( ^" x  s2 {6 H
        {
# L5 T& {4 Y1 ]3 t) F0 {8 _" q                .active_low = 0,0 W2 {* g4 @# c. ?* @
                .gpio = DA850_USER_LED3,7 X( E  N9 D9 W
                .name = "user_led3",1 t2 G* x& F" N4 f1 W0 W/ _
                .default_trigger = "default-on",
! a  t/ X. C  k        },+ N9 x2 a+ D% x5 F
};" t$ j" j1 I! @& g) M# I- C
( |$ c" R1 r. g2 O+ l2 S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 V6 X1 i1 h* m* g
        .leds = da850_evm_tl_leds,
# K/ T, _4 a- y7 F7 b7 u% p        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( h, n3 o/ r$ Z6 O+ F  `/ d};' I# i' I6 J% e. t: }
, `" X/ l6 E: p8 u1 m
static void led_dev_release(struct device *dev)
& x- D$ ^9 J' t4 h: E3 K" @{
" W0 w, c7 I, U& l9 n0 Z# t; O};
2 N" [# g7 N- _+ S1 ?1 q2 }( h( ^0 j5 R3 w
static struct platform_device da850_evm_tl_leds_device = {* N5 n: {4 D  d6 y. J
        .name                = "leds-gpio",7 `$ [  I. V. R; m
        .id                = 1,; Q5 j/ O* c! {
        .dev = {
* r" F1 b" G" E8 J8 ~& h3 y' ]8 f                .platform_data = &da850_evm_tl_leds_pdata,
8 w& J! m1 u" L, [+ B7 N/ Z+ _                .release = led_dev_release,2 G: V) ^: z* o/ a& |% c( y
        }( O' n) j- t: A  }. u0 J
};
7 ]$ }5 V  T" p3 Y, S; m8 K. c
0 P8 ?, m$ z0 g, r+ w; Q# y" _; ^static int __init led_platform_init(void), p6 b+ Q: {$ Q5 ^
{6 }% q- e. V" X% h9 `/ A5 I5 ^4 ~
        int ret;, [* R/ ]' ~$ ^
#if 0
4 ?" j4 h( I7 }2 o        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  B- ^: W- M( r. D. u- t
        if (ret)8 G0 D. e/ w/ V' @* {. z9 ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" B, q1 c$ a+ w+ u                                "%d\n", ret);7 M* ^: d2 ]& D
#endif( d7 t9 ]4 X; l4 z  M$ m$ s/ ?
        ret = platform_device_register(&da850_evm_tl_leds_device);
5 g2 B; f  |  w8 k! ]/ s        if (ret)
; `$ T# K  P" z; `/ [3 r' P                pr_warning("Could not register som GPIO expander LEDS");
: S2 @% C2 z) D        else
6 Y1 x! i9 E. S% H6 ]                printk(KERN_INFO "LED register sucessful!\n");& [8 I" ^8 m7 b4 F7 U7 A; R  Z+ h3 Q

1 y% r; p! T. M* j' w' O0 J6 V" }        return ret;
) i' s2 ~- U3 K6 F9 r+ b}
3 g. C$ y! B" h8 ^% |! a0 ]/ k, x  {: B
static void __exit led_platform_exit(void)
! X# ]0 V  E- p7 {{
' S6 [" [  c1 I( R" n' r1 W        platform_device_unregister(&da850_evm_tl_leds_device);/ E: y0 E" m$ Q9 s5 D/ E

$ @) P/ v! C5 G- C        printk(KERN_INFO "LED unregister!\n");
* e8 ~* T1 p( w5 V  V}
/ T1 Z. m8 K$ S; z$ c
$ K0 `0 a; h' x9 |/ y  u3 ]8 W4 bmodule_init(led_platform_init);
+ A1 a6 E4 P1 mmodule_exit(led_platform_exit);
4 B$ ?8 n& J' M( i2 [4 H  Z
$ D* o' z5 R, i; m; M' _6 S" \4 |MODULE_DESCRIPTION("Led platform driver");6 q9 g( L" i/ j7 |2 Y: u
MODULE_AUTHOR("Tronlong");
# I% x% [- z. v& Q9 j# F- [1 uMODULE_LICENSE("GPL");; R4 u$ o- v# V+ i5 _
) D* {5 j! e: ^2 u; }8 D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 02:12 , Processed in 0.043327 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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