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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 V9 W- f' e* U6 v0 W4 _: A
#include <linux/init.h>+ h, @+ W9 A6 Y" s( m- B
#include <linux/module.h>6 W* c2 t4 u1 z& J$ s" ~' \
#include <linux/kernel.h>
0 C' N# \3 b9 r4 C8 h#include <linux/types.h>' Q5 J& s! f) T+ L, W7 S
#include <linux/gpio.h>; T$ N4 x" e# d* e: o
#include <linux/leds.h>
! L3 A4 g$ Q& S% t#include <linux/platform_device.h>
/ K: j& R9 g) h7 `; R, |
& Y! R* u: v' T$ x7 k5 L, {; ^1 }#include <asm/mach-types.h>8 r$ C' t( z# n+ z* Y1 E
#include <asm/mach/arch.h>. t2 f' c0 Z$ K# y' m; T
#include <mach/da8xx.h>
, v/ D# V* ^) d3 r" Z#include <mach/mux.h>/ G' {) J$ V; h# t7 C* j5 A

2 m: J0 i" u; f$ }( O( [$ [#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 z8 B' T( X; u/ W% _; B: C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( b! O/ _+ A) `- K( o" Z1 }3 M4 `#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 t$ T7 J: S' y5 T. c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 W7 Q& g7 o8 W' M# Q+ @+ ~

2 e3 m! I9 D) _/* assign the tl som board LED-GPIOs*/2 K' C4 e- }: @# s$ w) w
static const short da850_evm_tl_user_led_pins[] = {( Z& K- a( C" y+ ~8 h) b$ P9 `
        /* These pins are definition at <mach/mux.h> file */. p7 M4 F0 {) x! E$ Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 ~# S" m4 x) U2 k
        -1
% ~" J" M- |1 P0 E};4 `) V% U: a4 U
9 J6 R8 |/ X3 _: M( O- C) [+ l
static struct gpio_led da850_evm_tl_leds[] = {' [  l; @: v8 I1 b9 @& a
        {! \7 l) |( p5 o+ x! C% `
                .active_low = 0,; M* H5 q& F% ^5 s) j+ G+ S1 ~6 W  i
                .gpio = DA850_USER_LED0,. L& R: _) {) _4 }
                .name = "user_led0",/ G* L6 K/ U  L% h' p" b- Q, V% f
                .default_trigger = "default-on",# B6 J. S# a% s' ?. ^
        },
2 R* i, L1 l2 g3 x. X- [: k        {
0 W9 y4 r9 v( x$ n) w                .active_low = 0,
' l: z  I  d+ S6 k: u                .gpio = DA850_USER_LED1,0 X# e0 b4 p( p) I/ @
                .name = "user_led1",! @, A/ e/ g9 j" w  D, |
                .default_trigger = "default-on",( r% M; J& i7 ]/ g
        },
( \) F( u' M- A; X$ Z* N        {8 Z6 G- n. ^5 f1 u: y  i
                .active_low = 0,
" I, G1 D' M8 y! b" N4 S, X, {                .gpio = DA850_USER_LED2,
& V: {3 m1 l0 `                .name = "user_led2",
# v3 s# }- ?3 A0 R+ c+ D0 q# `6 j                .default_trigger = "default-on",
  l7 k  b1 Y# ]7 Y8 P        },
5 H6 p2 x9 y- n2 p        {
: m2 @* P" T& U1 E$ E                .active_low = 0,
- _( u  A: D: ?, |9 ~/ Z) r% Q! K* e( M                .gpio = DA850_USER_LED3,
& I- |) Z) A; v' q                .name = "user_led3",
5 x% R/ T6 Q) t                .default_trigger = "default-on",
) b5 S% W# s# f        },$ x0 y6 z9 w0 o6 Q( w5 E
};6 Z  x4 F+ O$ w: F! Y) \3 I& V

. O. p* _6 W) |& f9 Z7 gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. ^* N  a" c# P0 i+ T        .leds = da850_evm_tl_leds,
$ t- ^' A, C8 K, P+ B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; t$ P7 H+ u+ C6 [# r};
1 L# L0 P+ V" g# F  c
- B6 Z/ g. z" F4 n& T9 G+ e" vstatic void led_dev_release(struct device *dev)
0 @9 u1 j, A  A3 o* _0 n' c" m+ l{- s, A/ \( Z/ n8 o+ k9 {
};
. [) n* y5 _9 \6 F0 r. U) T* n- B6 G
static struct platform_device da850_evm_tl_leds_device = {
4 T3 D+ t7 p" q/ ]# c2 Q" j" q$ o& P        .name                = "leds-gpio",( K6 [; s7 ?7 c% R3 p3 J
        .id                = 1,
: V: [9 u, e; e3 ]        .dev = {
9 R' H# P9 I* D( e0 D' T1 Y( l3 n                .platform_data = &da850_evm_tl_leds_pdata,! b9 e9 d5 A4 b' N, D6 G
                .release = led_dev_release,
( t. R& r2 F+ L! R# J% q        }7 T4 L6 k' P4 s5 s
};
) H1 P" P5 P+ a0 [) v6 A# D. G' l$ Q
static int __init led_platform_init(void)
6 F  F" c) ], D; ?& M' f{9 p  \8 B( Q# X
        int ret;- k, g- Y# S+ a& S; K
#if 0
! y3 O+ v. W6 u0 q* k3 o/ i: d        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 D  T8 C5 X; E% R5 j/ |+ s
        if (ret)! l$ t: Y: H% \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: z; A0 j" }2 j; v4 s. J2 x: o# }; ?                                "%d\n", ret);
% g. }7 `' A, V* p* T8 c#endif/ u0 b5 f2 X: E& h$ X
        ret = platform_device_register(&da850_evm_tl_leds_device);' u; F# ?1 e2 p" x: A/ h; Z
        if (ret)1 K! R/ J4 j5 Y3 [8 \) S0 P
                pr_warning("Could not register som GPIO expander LEDS");
' Z4 `# f1 O" k- V1 ~        else
+ L9 O* M5 v9 V: M: p% L  D                printk(KERN_INFO "LED register sucessful!\n");
; Z+ x3 B: c: X# f% E; ]; J; F$ ?; r, S! h* V
        return ret;: Z: d& u( q( o- E
}# v, }2 B' J: g2 @+ `* L% j
3 d, m2 v; j, G$ ?3 F
static void __exit led_platform_exit(void)$ e1 b+ J# u* P+ ^' A
{
6 s7 K+ W1 z& j# g        platform_device_unregister(&da850_evm_tl_leds_device);
; [' F( D1 e; E8 S3 |$ Y
% Z+ W+ N* S) T% q6 [: X3 }! {2 E        printk(KERN_INFO "LED unregister!\n");
1 _" o; l3 u. U* n. p}
2 C0 J4 ]) U! T4 p, r1 }4 ?0 {: ]# j* H8 L, d
module_init(led_platform_init);  b3 E8 i' k8 X7 L8 x+ p
module_exit(led_platform_exit);
1 Y5 T* G; p9 L" ?( t
) J# V& {4 B& v$ v4 W. eMODULE_DESCRIPTION("Led platform driver");
% r" Q. e6 z7 NMODULE_AUTHOR("Tronlong");7 y2 }( P  v5 A, L4 B4 Q
MODULE_LICENSE("GPL");2 q+ C$ y; J/ Q; Q( a& ], p

+ Y) f9 t: N2 {  R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-6 14:08 , Processed in 0.040142 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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