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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: p9 F4 R; e$ j8 A6 `9 _6 _8 P0 M
#include <linux/init.h>
+ Y& t6 n3 B. `5 ~8 ?& W' i#include <linux/module.h>5 }* |0 N* @  g! f+ T% x* Y2 D
#include <linux/kernel.h>" _" s" D" w: y
#include <linux/types.h>4 X1 z9 \4 w+ b' N7 H
#include <linux/gpio.h>7 X  W7 z, s* N  G9 S
#include <linux/leds.h>: B$ z3 ?( A/ G0 }
#include <linux/platform_device.h>! V% U- L( s/ V! P( W; Q5 B

0 q. Z7 v3 b" O6 w' V#include <asm/mach-types.h>
4 `+ g( t7 R4 U/ l#include <asm/mach/arch.h>0 p& K; Q  o2 L. r1 O
#include <mach/da8xx.h>
9 ~2 ]- ~3 u$ }5 f' V+ T#include <mach/mux.h>
1 o- R% E: r3 T5 C# w. j
' z$ F) B3 Q/ q) i" p3 j' S# [#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, j" A! b* T& B* H  f  ?; A. P$ T#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& p) A  T6 e/ Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- p" x% `6 @  |9 U! V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ l; O8 g% X; N3 p! U9 l# z- L2 D
6 x* R: u+ ]0 I8 m0 c
/* assign the tl som board LED-GPIOs*/
! f  z5 e; z' Q0 k1 estatic const short da850_evm_tl_user_led_pins[] = {/ \  Q. |1 T5 `6 B8 |: O8 f
        /* These pins are definition at <mach/mux.h> file */
! r2 H. U, ?3 O4 q7 b4 L) M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 T* {# l: J3 h& \! q! R7 U
        -1+ P9 w* E6 Q5 O6 v, N- Z
};6 S; J& M8 m3 c) t. e/ _
$ s( z( B. |5 a% q0 p0 J
static struct gpio_led da850_evm_tl_leds[] = {$ y' B$ Z0 X$ w/ j1 C( a  V
        {
# B0 a# U3 l8 Z  G6 b                .active_low = 0,4 u- E- [; S- s( C
                .gpio = DA850_USER_LED0,9 `# m7 S% `+ v& ]# M) G( o
                .name = "user_led0",
2 M  o- L& ~# C: s3 L% p. C                .default_trigger = "default-on",
/ |3 i2 j4 P6 ?) e* n: @        },  E- c; u# Z, |" g- d
        {7 s: h* W2 |/ ~% [9 \
                .active_low = 0,
% N. O. `3 [. ]% S                .gpio = DA850_USER_LED1,* x: q) b8 o6 ]6 X+ j" W  Z2 z9 p
                .name = "user_led1",
1 Z8 W: g; |% E$ N1 ^( \8 K2 N  J                .default_trigger = "default-on",# {3 P1 e+ o' ~7 N
        }," v3 k9 k) b- q7 H2 V
        {1 M( c5 q6 R- U% K
                .active_low = 0,, D$ G3 V4 o. q5 ~1 i" w; m
                .gpio = DA850_USER_LED2,% M9 @- f- _, Z
                .name = "user_led2",
/ M! a3 R$ ~2 W! w9 j" [                .default_trigger = "default-on",9 l1 K1 S  Y& O7 v" L0 R
        },
# ?& I- ]# ]0 `5 J: p        {# G0 u  Q5 N, O& b. B  q- E
                .active_low = 0,. J) N) Q# `4 P$ `; C! ~% Y* ~
                .gpio = DA850_USER_LED3,
7 k8 q# K" r1 u5 k                .name = "user_led3",
# ^/ m  C$ s& A0 X8 S                .default_trigger = "default-on",% Z" ^8 O4 }0 _  C9 @! [
        },
  t4 U8 v8 y% _4 t};2 J7 d3 P* i" p* n: T# b0 T
" L" Q  s1 a( [. K9 W: @1 H, G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 C" f: b+ O$ H% a6 ]        .leds = da850_evm_tl_leds,
( x) x( ]# Z$ s. g6 s+ p        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' s3 ?5 f" M- S
};
$ n) D# {7 o2 X( M
: q" k6 b' E1 [1 W* u. m: }static void led_dev_release(struct device *dev)
! I& v, k: z' ]{. h5 `( _. l: N: T, f
};2 z" C4 e. U" E
$ S  E6 f3 I) q
static struct platform_device da850_evm_tl_leds_device = {! j0 H9 w$ v( d1 n6 H" p& x4 }
        .name                = "leds-gpio",
) i1 Z( ?5 |2 }( X3 }        .id                = 1,
' i$ Y# E& H1 M        .dev = {+ L. l6 g  g" }, J# I" w  `
                .platform_data = &da850_evm_tl_leds_pdata,
2 m1 ]6 E" d% o4 D                .release = led_dev_release,
$ d$ b% N! ]  T        }+ @- c3 a. z) t1 ?
};
* R" t1 T; I) }3 H  G& O: H  G( k
static int __init led_platform_init(void)
# |% b) X, U* C3 H( D5 ]{2 }/ k; e# E8 \
        int ret;+ {( L/ J" S( o  C! X  B7 N
#if 0* g9 i8 l. E; V7 [
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  p' v! m+ H6 g3 {9 K8 |! q7 D        if (ret)
( G1 W: T- C: c2 `# g  w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* g  H5 w  ^  E0 R/ G0 R; h% T: u7 X                                "%d\n", ret);& X% @! _0 ^" d5 j5 J. q
#endif
, l0 `. m/ \1 d. G; Q) j2 h) h8 B        ret = platform_device_register(&da850_evm_tl_leds_device);8 Q8 }+ J3 c1 D3 y0 ]
        if (ret), C6 Y$ H1 N9 V4 R- W2 V: q# g
                pr_warning("Could not register som GPIO expander LEDS");
5 g7 |; Z4 t! K, v2 z        else
: s! {. s; H4 P2 A3 ?8 @                printk(KERN_INFO "LED register sucessful!\n");/ Y9 j5 T% n2 S/ c. c* _7 }

7 J3 C5 t: p+ H. U8 ^        return ret;/ p; i" T3 S$ z) H+ e
}
% S# k+ ~9 [  x) B7 n& a& I5 E7 a; V
static void __exit led_platform_exit(void)# t  F9 ~/ y, M7 w2 K, X
{; Y2 q& Y5 {7 b3 ]8 a2 ]. A5 @9 v
        platform_device_unregister(&da850_evm_tl_leds_device);
5 i2 A- x" I* d  N0 d
% p# u0 l) F$ N. N        printk(KERN_INFO "LED unregister!\n");
- f8 y1 D! T* V  k  h$ j, ?2 B}8 c+ ~  `; w4 @% y. \2 v
+ q' V. q+ ]' Q' ?9 f0 Y
module_init(led_platform_init);& F& x2 i8 ~) q, v+ t  @
module_exit(led_platform_exit);
* }% b! b5 S: x2 c7 g7 M2 a6 `% u! U. c! ~$ b* V
MODULE_DESCRIPTION("Led platform driver");
7 p8 I; \% B3 B4 D0 p/ t4 H# q) E! ~MODULE_AUTHOR("Tronlong");; v/ z! g3 z5 D+ l5 c  a6 `, L
MODULE_LICENSE("GPL");4 G3 e; d% I1 w1 Z+ Y9 d+ c

! }5 D9 ]' G+ F/ Z4 G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-24 18:37 , Processed in 0.039026 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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