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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& y' U% w( q# x( j3 ~. z+ r6 i1 l
#include <linux/init.h>
1 o' O- X" K6 j, l# k3 P#include <linux/module.h>
  _0 N! P" F  @- Q! k6 C+ z! O#include <linux/kernel.h>$ a  R3 q8 H( V' G4 L* X5 @
#include <linux/types.h>; m5 h' G3 J' \: V& n5 W
#include <linux/gpio.h>
& \. {) ?& p9 w#include <linux/leds.h>& I3 r, s  n& X( t
#include <linux/platform_device.h>) Y( S  p0 p$ v/ U0 P

. y8 o" M1 W5 ]! }- q#include <asm/mach-types.h>
. C5 m% ^9 p$ S& V0 l1 q+ j#include <asm/mach/arch.h>
6 k" C& Z, U) b#include <mach/da8xx.h>
, H( y5 D2 ?7 x9 Z#include <mach/mux.h>; L& {5 g% B% r# B: D  p, F) h" d+ `

* P* y8 n) n0 F4 T0 L% \#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  x, \# G, j7 R1 Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 n7 k  Y2 c+ H#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; H# Y" b8 M+ u5 T( V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- f- M& E3 G1 B& M- i3 ?! Y6 U6 F" g: d$ r
/* assign the tl som board LED-GPIOs*/  j9 ]4 S4 q/ ?% r) w! z# x6 @
static const short da850_evm_tl_user_led_pins[] = {3 Z- D, |+ \4 D3 b7 I" ^
        /* These pins are definition at <mach/mux.h> file */
- V' x! D/ i. a' z1 H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- p" H/ _  B. Y" \  K
        -1! r+ L/ T! L& Y0 p" q
};
& z* C; y; e. b% v' E& B
3 d  K) z/ b7 m/ N+ Z+ G. Zstatic struct gpio_led da850_evm_tl_leds[] = {% d6 L, C+ e% G0 v0 ^
        {! ^% b/ i$ h  s% `+ x
                .active_low = 0,
% |& G+ C& `$ H                .gpio = DA850_USER_LED0,( F& @: j6 r. I; l
                .name = "user_led0",
/ y7 P1 N" {/ V+ E                .default_trigger = "default-on",
6 o: t5 b: z. ]2 V6 x' j6 k/ T        },' C" W/ o  g9 z6 k
        {
7 m& G: T  Q( n# h+ V2 l                .active_low = 0,
8 A9 k- N6 n" G. Z( g                .gpio = DA850_USER_LED1,
( R  I' o  N9 m. c- ~' u9 C+ q; r                .name = "user_led1",% ~. B) [( H$ |9 u( b
                .default_trigger = "default-on",
! a8 x* m8 P2 f$ S; E; u; q5 e        },, y' C% i4 b  E  V
        {# L. K' N- m' z/ }
                .active_low = 0,
4 K# d& H7 n9 p. _! \' ]' N" u8 v                .gpio = DA850_USER_LED2,, M' ?; d8 y' u/ [. T" j
                .name = "user_led2",: o! }; B" S% {- ^4 v- k
                .default_trigger = "default-on",
- S. O* m  v: ?1 l        },
1 n7 I4 e" N2 q" _  }7 E2 D: M        {; l: W) P! K! |; ?( @( S
                .active_low = 0,6 g( |: B. ?: x  |3 p" M+ z
                .gpio = DA850_USER_LED3,
( Q+ @6 X3 W7 L# n                .name = "user_led3",
' G/ u$ Y) \! v3 e: Y3 N4 q8 I* Y                .default_trigger = "default-on",8 C# E$ x6 X6 L
        },
" z* Z8 q3 y' Z, D' @' T# A4 X};
0 Z* \# D; x( x  z* \( X% k0 p& `3 b  M' W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 |' b0 y! m2 B3 J4 |8 Z
        .leds = da850_evm_tl_leds,
1 @7 A+ q3 O% Y; q) Y. D        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! }  n# G8 |; A* I% m2 O
};2 {+ r: q7 e/ c- x6 k
& H- q2 R, |# u4 C
static void led_dev_release(struct device *dev)
" w0 R0 d6 Q/ s( `, C' K9 D! `3 v{, q3 B0 ]( R4 S3 E( [+ f
};% N1 K) W1 ^* W
  u, {: J( ?  d" {( ]& X, A
static struct platform_device da850_evm_tl_leds_device = {" _; d1 c( I! f* E9 _) g
        .name                = "leds-gpio",( ?3 R! D  G! S0 s, d& N1 [9 o
        .id                = 1,
8 k8 C; c9 |' N5 o$ l: R        .dev = {
  Z# v6 m1 _, v) T                .platform_data = &da850_evm_tl_leds_pdata,+ h9 R$ ~( W. P% P7 w8 T" q4 k$ M
                .release = led_dev_release,$ z/ n0 ~. q2 \1 s& \
        }4 w7 W7 S" Z& Z/ P/ v; d4 c
};
( ]0 I& \: `0 i: Q5 H, P' m$ u1 K) E$ H( H; Q" d( n4 \
static int __init led_platform_init(void)
/ U* H* D4 d2 ^# q! N6 k3 E1 S{$ J7 `9 a- P4 q' b7 J
        int ret;2 p: u# H  h" ?
#if 0
1 f7 v, O% D; _, E  m/ }0 O+ p        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ F3 r( M* N. u1 E# k. q. ~
        if (ret)% W( D8 S) e& B0 a: G9 j8 Q) X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ z' O. t5 @* @( B, S) R
                                "%d\n", ret);
( @1 ?6 m. f: N& b#endif3 d0 q- ]' L: Y9 A4 i
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 @$ F; D# g. x0 |* {        if (ret)
; i/ |0 O; \# s                pr_warning("Could not register som GPIO expander LEDS");; ~! O0 X6 _# V% ~* @  B3 [7 y
        else. K4 F5 O7 w7 ?& J& ?# o
                printk(KERN_INFO "LED register sucessful!\n");  e- E3 @6 a1 o1 B! I# \6 D
9 G$ B. H* o; C3 @( I0 f
        return ret;
& q# t  X! y' R- b1 V5 M}
& H0 m7 Q$ T2 P( u/ v7 w+ G7 E
/ Y" D8 \% {9 V/ }+ Istatic void __exit led_platform_exit(void)! C7 w6 \& }# u/ p$ C" X+ S2 n
{" M. ^/ U. M" `1 M
        platform_device_unregister(&da850_evm_tl_leds_device);! ~% r& m5 ?3 s6 F) W* E
2 [/ R3 H. U, y
        printk(KERN_INFO "LED unregister!\n");
, l9 @0 o* ^" i}7 l1 E+ Z5 b$ g* s1 n1 a* s3 w
5 B% Q) k4 [8 g( {1 i$ V
module_init(led_platform_init);# ~9 v4 \4 x6 I! h2 W6 s$ t" m! C% {2 _
module_exit(led_platform_exit);2 \6 P' ^* l/ l2 P/ s" o/ V/ R
, |- b2 I2 P3 F2 x2 C7 u( Q7 G
MODULE_DESCRIPTION("Led platform driver");( A  A# e5 L2 b% e8 \' L
MODULE_AUTHOR("Tronlong");: ~7 j. ?! \& c5 B, f9 \% Y# f
MODULE_LICENSE("GPL");
4 N0 Y/ }9 D! L7 E# J+ {
" v% t) x( N; x# V0 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-5 02:27 , Processed in 0.038664 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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