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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% Q+ c3 V. J; \
#include <linux/init.h>3 v+ `1 T) q+ f+ {$ [$ Y5 e7 t
#include <linux/module.h>4 V8 D' d$ ^1 n2 a1 Q  P
#include <linux/kernel.h>/ O+ z( G- s: h5 E2 g2 {1 _
#include <linux/types.h>1 J" {; t8 L/ j5 T$ X
#include <linux/gpio.h>
1 i! E: {' I' A! H! W2 f7 B#include <linux/leds.h>
4 Q% R1 ^/ T/ u#include <linux/platform_device.h>* p& r3 p0 _  ~5 o% |
" P/ Y& `$ q+ Y0 b4 c
#include <asm/mach-types.h>7 N! `9 t6 n. S4 A/ F% k- x
#include <asm/mach/arch.h>6 C8 o5 V- u1 ?& `  ?
#include <mach/da8xx.h>) h9 \- _) }) K
#include <mach/mux.h>
7 J& r2 ]) F! ?/ f' }# c0 t
- n0 ^4 e& J0 S/ x8 D7 z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% \, t! l' x" [0 o) B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ K  a* e! F0 t1 x; [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! i& o6 _5 A9 C  x. p, l/ F4 }# K, i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ v3 o8 q4 p# A. j+ T8 r: G  D4 _. W! y2 U0 k+ U
/* assign the tl som board LED-GPIOs*/! s3 w# H: B8 u
static const short da850_evm_tl_user_led_pins[] = {7 ~+ ^. n3 r% ^& Q3 a8 P* U
        /* These pins are definition at <mach/mux.h> file */
' Z; m$ q* i) u& j9 S  f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," y) r7 e/ ^% x3 j+ C* J* C% K
        -1
& g  l* m9 B& }% v% U: R};
  R' t% t# R8 N1 X7 ]$ P3 P, P1 b/ R- O- w4 p% c
static struct gpio_led da850_evm_tl_leds[] = {( s1 u- {0 N( e) u
        {
, h0 y4 D; t7 j. V# s% u3 y                .active_low = 0,: B+ w; n# Y1 X% E7 L: ^0 y: J7 |* R
                .gpio = DA850_USER_LED0,
% r$ v' F8 b# Q: B$ `% r5 H                .name = "user_led0",
3 F  @8 W# G% z! B                .default_trigger = "default-on",
# U9 b# v" `6 J7 f0 M8 X5 r        },
8 u) O+ _- q" X, s9 S* }/ Y& |        {
/ B; t" t5 U7 M4 m# e) s                .active_low = 0,
. o3 g% _* l* X% C- @0 x  A9 @- }                .gpio = DA850_USER_LED1,* P  h7 Z: c2 l; U: q+ q
                .name = "user_led1",  o6 R$ u' x* |7 h8 X. V
                .default_trigger = "default-on",
/ x$ F( j* m: F2 E9 i: I4 ]        },8 h) h" Y& J6 R
        {# J/ |( u. h, n: C) c! u
                .active_low = 0,7 ^0 o" W- \" b, H0 A
                .gpio = DA850_USER_LED2,4 j! E1 c. h9 S  T/ x, K
                .name = "user_led2",
  A6 t! a7 k0 d2 X; m; W+ R& M                .default_trigger = "default-on",# L8 Q+ h  {/ y1 [; \6 B
        },4 r% Y; T6 @5 M5 [0 ], G
        {
$ `! z* U! R5 a  y# `# }                .active_low = 0,/ ]( M+ Y! B9 n% ?: h; J
                .gpio = DA850_USER_LED3,
; m- J4 S& j& \! {% ]: t5 [( a                .name = "user_led3",
& d, N2 C! s8 B( h+ M                .default_trigger = "default-on",
" x; m9 m6 ^6 G! `. Y        },
# ?9 h* D  t; L/ ?5 Y};+ {1 Z& K4 R  G

% f1 r, ^# ]: R" ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( t7 B! H4 L! L' L- q2 n3 r        .leds = da850_evm_tl_leds,
  `; B( R4 {# g6 V        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," ?# I: c9 ]+ L! o2 i/ Y, l, M
};
, s: m9 j, ~0 ?5 L3 Q) h2 |1 l0 D. R& k
: ]: X) p5 D! I! {' A: Zstatic void led_dev_release(struct device *dev)6 `: e2 J6 [7 x6 o3 j2 @$ T
{: e# L( y0 D! g6 H4 X1 ]. G" ^
};% o0 m1 m+ J# G* @

. @8 d8 m5 Z" H( v; m# D& ^static struct platform_device da850_evm_tl_leds_device = {
, r6 a2 l3 o$ o  \/ h        .name                = "leds-gpio",+ [1 f$ X9 b- q& @5 H8 {3 c
        .id                = 1,
1 |+ ^  d& _4 s7 O% M        .dev = {
9 r0 D0 l% R! I# \5 s  J& y, a                .platform_data = &da850_evm_tl_leds_pdata,
- i% b1 M3 b5 d& o/ [  \                .release = led_dev_release,
! U  V& l& l/ D' _; z0 \        }0 ]  ^, r' l! g( L/ A( M9 o3 n
};
7 H% D9 k; n% D7 `# |% U8 a
" t2 k5 G. m, U0 k% O" Gstatic int __init led_platform_init(void)4 l0 r- K6 }# U6 b  e' m
{
0 `. x# E% i) S& |% G7 M+ f        int ret;2 g1 p9 T3 Z$ m! P: O$ u' M" ~) A
#if 0$ C2 ~1 W, D* Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 Y  k- i9 M# h% u  N2 d
        if (ret)% g/ d$ V3 _+ {& V, A- e  N/ L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ e: p1 o! v% x6 N( h
                                "%d\n", ret);
! W6 L9 |! O% c: r% y3 R#endif0 L0 H$ r/ L4 F& \8 M
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 e7 X+ E9 W# m; o        if (ret)
2 e* U3 |1 T2 G/ F& T: N8 G$ g6 i                pr_warning("Could not register som GPIO expander LEDS");/ @1 d2 C, L3 F7 k$ r
        else
# M3 w8 Z! h8 }                printk(KERN_INFO "LED register sucessful!\n");
& |. [8 Q# y2 m) N$ K/ a+ ~1 {2 e: B  v, ?. O
        return ret;
9 m: N- r. i4 k( ^7 Z}7 C  H4 R. T' \( e( X, L: b

0 E, E9 E- J2 G& @7 s6 W1 W" tstatic void __exit led_platform_exit(void)
9 j& C' G. P7 n' Q{- B6 m( y8 r. r* o
        platform_device_unregister(&da850_evm_tl_leds_device);
. A% D6 B1 \2 H+ O# N# C7 ]
; E9 @/ g3 U% [, M7 i        printk(KERN_INFO "LED unregister!\n");7 v: S) N' L& W3 h; P8 e( c' }6 C
}
1 i1 @& }" U2 ~) ], O" q: q4 K* ^
" b* `6 I0 U4 L1 ?3 z$ l' O1 i5 Cmodule_init(led_platform_init);
! q+ r# M! g* W6 h# fmodule_exit(led_platform_exit);
# n* _, O. F5 @, B- I2 g
, o) U$ M. v$ r: G. ZMODULE_DESCRIPTION("Led platform driver");4 ?+ d6 s8 I% W1 D: B
MODULE_AUTHOR("Tronlong");
% s. F& `/ Y9 ^. sMODULE_LICENSE("GPL");# [. S: m9 I/ J. `9 }
1 x, b& x: M7 Z5 r; c& T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-22 02:42 , Processed in 0.043230 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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