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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ m$ o# A# C! Q* C8 f#include <linux/init.h>
; v, J/ t, D- m3 ^7 e#include <linux/module.h>, U6 ?2 X" @, q* G& T
#include <linux/kernel.h>
' b5 {; _1 b( r+ {; a: B# ?#include <linux/types.h>8 U, f$ @0 I* _) ^8 g
#include <linux/gpio.h>
! s& s$ T" x: n5 }; z! F6 r8 V#include <linux/leds.h>
" K2 b5 W  L2 K: q+ t! ~% H#include <linux/platform_device.h>7 U' r4 C) a& e0 T/ O0 X; ]
1 i# f3 H/ M* ?4 y" s; c6 R
#include <asm/mach-types.h>) X- f2 T4 H' \) h( D( [2 z
#include <asm/mach/arch.h>7 ]) S+ R3 h* c) A
#include <mach/da8xx.h>
7 W4 i2 g0 g8 a0 K6 E/ i#include <mach/mux.h>! [) ?. F5 P1 s% Y

+ I2 u2 v/ }9 J( ?5 p, K, m4 G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ M9 ^4 ^7 C2 P) `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! F; v+ E' l. e' W+ x9 N1 i
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 _+ `# d( r* w4 i6 @#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 \" {! l5 i+ G& h) u" y! c; k
8 ^" m, O# I& [& L6 ^8 R7 s( o
/* assign the tl som board LED-GPIOs*/
4 c$ y: a2 X8 j& u: |* zstatic const short da850_evm_tl_user_led_pins[] = {* Y: {1 |+ }$ l
        /* These pins are definition at <mach/mux.h> file */
! f2 [7 a% Z! S1 X7 g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, l, D- H4 \. {        -1
$ D0 p6 }& U' N( y) P  a};/ T: d8 _+ Z# D! y0 X* h1 H" i

. c: v% q: ^9 z: X. s9 d1 Estatic struct gpio_led da850_evm_tl_leds[] = {, e" i& u$ U3 B+ {# [
        {; {* b. J8 H' g, @9 r
                .active_low = 0,
; h$ m- v- h1 E, q" q3 M                .gpio = DA850_USER_LED0,
9 g3 }- C. {. t: d- M+ t                .name = "user_led0",
2 l0 _7 v* J, Y                .default_trigger = "default-on",
0 C; s& g  W% q- S5 C6 m- f        },
; B; \8 I# i1 \        {
5 J) P, ]3 C$ [$ |* {2 k& g                .active_low = 0,
& B7 a, M4 g1 x9 W3 c                .gpio = DA850_USER_LED1,6 d" u6 H: a/ f% a9 v
                .name = "user_led1",  E/ V8 W* w0 F& P
                .default_trigger = "default-on",
7 `2 T( M5 W" ]$ }3 M4 m: w7 f/ \        },
3 V: P2 h1 f" x5 j4 e. ~3 _        {
$ {1 \1 C6 E8 N                .active_low = 0,
% v5 |5 O: H  D, A% b) U/ X. f                .gpio = DA850_USER_LED2,! A& f5 e! v8 X" }2 V' v
                .name = "user_led2",0 V2 p5 |4 }9 e! }$ P
                .default_trigger = "default-on",9 j7 i: }+ X% e# }% ^2 w1 H
        },& w- Q* {+ P4 Q  N% k; t
        {4 h* d. n7 }. T* \9 G
                .active_low = 0,8 J% ~# H6 [6 M9 E
                .gpio = DA850_USER_LED3,' H5 ]- m+ c+ Y" _6 y6 X) T- h
                .name = "user_led3",
2 h& \+ ^3 x% o' j3 l8 T" H                .default_trigger = "default-on",) O9 S( F$ g. c- @' s: g
        },7 ]6 N$ w5 h: X
};
8 I' |$ K+ c7 d2 l$ W! x5 z
" P! W, a6 g; A. z+ \- x1 mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" q- |  I% `8 V: r+ q        .leds = da850_evm_tl_leds,8 G9 X$ j5 ?# D: ~
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 @% h3 e/ V& Y( h};1 `' i# V: e$ V

3 m3 h4 F9 I( gstatic void led_dev_release(struct device *dev)
7 U. T, C1 w) W# z% D9 R" V{0 u8 N/ h" `# `* h$ w# h- K1 N
};
4 F4 N$ l$ q8 n# @0 v% T4 \2 W% a' X8 B' z- S
static struct platform_device da850_evm_tl_leds_device = {
% c9 I% l9 E& ?" R( ?        .name                = "leds-gpio",
2 N7 I- a  U9 l+ E        .id                = 1,' S2 P) E" r; R+ Z5 m. t: C3 }
        .dev = {
: C& T; R' W+ M) w) z7 g% E                .platform_data = &da850_evm_tl_leds_pdata,
5 G5 W* J$ z0 G  c  u+ P4 g4 s: ^                .release = led_dev_release,
1 l6 h) t/ F/ l% F& |3 F6 M7 S. ~        }: r% [1 {) I/ f9 `. h& x
};
$ ~! U1 ?+ I7 @# a4 r/ Y# H( m. b8 R# j8 T7 I0 H' y% a7 U
static int __init led_platform_init(void)
0 |! X4 L  _$ |' k3 P6 F' ~{
& M. L4 K9 q" k7 F$ Q        int ret;& ^/ T8 C5 E7 F/ m1 X6 p
#if 0
" q, [3 ?2 s: @- l$ \8 J$ [        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 @7 ]2 Q! p1 S) ~5 P        if (ret)
9 i, M6 g( @$ e  w; _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- \7 m& l- ]. P- S& j- U6 p9 W9 M* X$ n                                "%d\n", ret);6 @: B% r3 ^3 L+ z$ e, u/ P4 e
#endif
4 @+ w; \' F+ u& x( y        ret = platform_device_register(&da850_evm_tl_leds_device);; G7 t- E- l  ^1 ~- i3 ^
        if (ret)
$ z% d% P8 ~" c                pr_warning("Could not register som GPIO expander LEDS");# B0 Z0 r5 a9 n9 d
        else
. U- m, J1 f* z$ b% R                printk(KERN_INFO "LED register sucessful!\n");
( i9 [$ Q) M! N6 D2 f* v. j7 y/ ?+ W7 F8 E
        return ret;" D( I8 E# D1 f" @
}
: ?+ L2 d$ ~; a' n9 L2 ?. F1 k0 P) [* `
static void __exit led_platform_exit(void); o, o' R# X8 e: H5 M- P9 g
{9 J' d4 @* X+ U$ z' @0 k- T
        platform_device_unregister(&da850_evm_tl_leds_device);
/ T! ?& I. v: i9 n, h
( I2 z1 B# c* |) K2 x7 }        printk(KERN_INFO "LED unregister!\n");( N* g, m  a$ u6 u* g! r
}
. d; s: W0 _! O9 P! Y. G' k6 u' e$ {/ [, H) G3 d6 P" P" R3 G3 o  A/ N
module_init(led_platform_init);
6 A7 `, U! X7 Z; C  cmodule_exit(led_platform_exit);  r4 \( u) c4 C& U' \

) K, @+ D; P1 s- C6 X0 O! d+ hMODULE_DESCRIPTION("Led platform driver");
% _6 |8 [* ]1 i5 W% d- W# `MODULE_AUTHOR("Tronlong");0 l7 d: y* o  G' t8 Q) U/ D
MODULE_LICENSE("GPL");
9 l+ L& l, c1 d& q
% p2 ^, d0 c! d" R- G! A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 18:01 , Processed in 0.044416 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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