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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 L# h7 o4 r8 F- Y7 @9 n#include <linux/init.h>
, K  ~6 D+ C* a# L/ y! U! e6 C6 m1 x  }#include <linux/module.h>1 f( G1 O  L0 F
#include <linux/kernel.h>
6 k* j5 |3 [9 F1 d; p- e7 P3 G4 d#include <linux/types.h>4 ~. s( }1 o- A( u
#include <linux/gpio.h>$ t8 c+ V( k$ |; {! Q$ \/ }# h
#include <linux/leds.h>' I" [8 Z& |$ C5 A* b* M, L: \
#include <linux/platform_device.h>
, ]9 C# z0 b  A) r' \5 l  @, n' O' N: W
#include <asm/mach-types.h>
( G% s2 `* ]/ i3 D#include <asm/mach/arch.h>
. ^5 G! k5 ^1 b5 `#include <mach/da8xx.h>' V% O( j7 Q6 V7 \. j/ f8 H
#include <mach/mux.h>
0 C  O8 b' k0 F7 }* ^; j/ }+ X+ j/ z
  t! r- j: c9 E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), ?! i2 G7 I2 R, [. E" J5 n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 \' X; u) I+ m5 n7 O: C, [
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 h: [0 m+ a' `! J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# r: F1 K) j, W9 D6 n2 S- F4 E* p$ |% s

$ A3 Q8 h( p. @! W* M( [/* assign the tl som board LED-GPIOs*/
4 M4 \& w9 q) y' R7 x" V8 g6 gstatic const short da850_evm_tl_user_led_pins[] = {
: Z8 \9 l9 N9 N4 P+ p# f+ ?        /* These pins are definition at <mach/mux.h> file *// w- _. J; }1 A9 e6 N( u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# X% H) Y; Q7 j1 T: p: v, t2 c        -17 u( x' z9 J1 E' o% u1 K. o
};
. T% ^. W4 s/ A2 p
! M1 H, t' Y! B0 g5 Gstatic struct gpio_led da850_evm_tl_leds[] = {* ]  e6 E3 U4 X# \5 z
        {( H% ]8 ?- E7 R
                .active_low = 0,
5 t( O6 P) G9 b/ v+ s& c                .gpio = DA850_USER_LED0,3 E! }4 s* S$ A6 c. P: S& a
                .name = "user_led0",
. @2 H+ y$ _6 u+ `/ \3 L/ g                .default_trigger = "default-on",+ F8 }1 Q( _# y. K$ N7 `
        },
6 c  L+ x5 z. a* U! x        {
0 D& d: J! w- V" i. E                .active_low = 0,; @6 R+ A/ L+ s  K. e4 u; O  Z
                .gpio = DA850_USER_LED1,+ e) x$ N  N2 W. u+ @/ c
                .name = "user_led1",/ |; l0 {3 U, M2 i0 t$ F0 m' `5 v" m
                .default_trigger = "default-on",6 M5 t4 ]+ E! t  i
        },& E* M7 B) m( h/ h7 n
        {
8 |7 Q5 W% X- M                .active_low = 0,$ e9 e' N1 \. s; l2 j
                .gpio = DA850_USER_LED2,6 I& v. W4 ~8 }. k3 Q9 D
                .name = "user_led2",
0 e! b- v' h% x5 O                .default_trigger = "default-on"," A2 X/ v8 z6 ^6 Q& h9 T) J/ R
        },
2 D, \, l# q6 y0 r        {2 L8 m* n6 p$ o! Y0 Y" a6 a" u1 N
                .active_low = 0,$ e! M1 q& o; k0 L+ e; y% l; @
                .gpio = DA850_USER_LED3,$ g$ A$ a4 P* c( w
                .name = "user_led3",
2 O0 M0 m, C8 t8 a( Z                .default_trigger = "default-on",) S2 X6 q" e3 n7 ]5 J
        },
  V  G3 t0 c3 v3 G; W' ~; C};
4 h. X$ \2 N1 X* X
/ d* ]! ^( I% V% Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. ~* D$ K2 H- x4 P; p* t; ?6 C+ W
        .leds = da850_evm_tl_leds,
7 S3 S% X! B9 P4 V; L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ G- @- Y0 ?. u* ]( }
};
1 G, b+ [' A$ l# F  q+ m. Y$ B
$ I3 i! [0 a0 T0 J% m! W# qstatic void led_dev_release(struct device *dev)  C" `5 {* K4 O2 Z
{1 M7 c+ u2 s! d$ }/ b& E$ b3 n
};
9 L" N3 r- `& U7 c& ^9 u4 D4 a1 D1 ^( G; r- G' I/ [, J
static struct platform_device da850_evm_tl_leds_device = {
6 E) o/ B9 G- P9 w        .name                = "leds-gpio",
' A0 q$ I/ W* d$ k# Q( J        .id                = 1,/ T! H* K& y. ]
        .dev = {
0 F4 j  ^# J9 ~: }5 D0 Y8 S                .platform_data = &da850_evm_tl_leds_pdata,
: b' H; T6 i' J, T8 _( }                .release = led_dev_release,
$ r0 P7 g+ n% |        }
$ `0 @1 o! Q# X' Q6 G};* e, k7 d, ~0 q( B) c% b

) I+ P9 ^' X  ?. V$ E9 A; o$ jstatic int __init led_platform_init(void)
) q7 A- T% G+ w; `3 U8 O# J{
5 o' x$ q6 C+ Y" N% \! X7 c        int ret;
& ?/ b7 p0 [3 b#if 0+ X( }7 x" d8 A( L3 P$ I( s. H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! B+ |! n8 {# u
        if (ret)
. U! B8 s* w( r+ @5 m3 y6 p9 q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 }( c6 E& A: w4 s$ E  W- ]                                "%d\n", ret);; a  m6 I# J( [3 _1 P& P3 V
#endif, o4 b* H- ]4 W9 B! g7 F9 t
        ret = platform_device_register(&da850_evm_tl_leds_device);0 }5 |' M. s9 t' K" _& l
        if (ret)
0 |& y# h! f2 g$ ^" E                pr_warning("Could not register som GPIO expander LEDS");
3 B8 T8 ~6 P  n4 n7 t4 ]% ^% ]        else* G0 a; W* f( |; `5 y& G( a2 `
                printk(KERN_INFO "LED register sucessful!\n");( R' n. g) m) r3 x

  J1 D, y) y7 Z1 `        return ret;. {0 U1 K% M  f
}
, y9 h$ R' `& p* X! i1 c5 j5 M* J# l& M  [( }
static void __exit led_platform_exit(void)0 U+ k% X1 H- F. E  N
{
; M) J# M, c) j        platform_device_unregister(&da850_evm_tl_leds_device);: W2 e  ?8 y, S. I5 l8 `' U2 f

7 N' e2 E1 J+ y! V! g        printk(KERN_INFO "LED unregister!\n");. J: k  H9 n6 J  [" p) N
}! w, O8 X: ^( l: ], Q) n

2 l& w  i% i1 fmodule_init(led_platform_init);2 m. L1 {2 i9 T- W4 l% C6 w# G
module_exit(led_platform_exit);( v: R; o* g$ B5 Z

( T. ^: w! K+ w2 M5 F1 i# s' D( D: qMODULE_DESCRIPTION("Led platform driver");
& y* o( i! `8 k, G. ~MODULE_AUTHOR("Tronlong");9 H: G5 @1 ^9 \2 p9 |
MODULE_LICENSE("GPL");8 q; c4 A2 F1 M5 b

9 C* z3 j+ |: B* Y5 a! o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-12 06:15 , Processed in 0.039650 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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