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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 a  _1 f" l- w. F2 n) Y#include <linux/init.h>
% z) T0 \5 e3 [) m#include <linux/module.h>/ M3 ?% N. _1 W- B2 G
#include <linux/kernel.h>; {& R+ o1 ^! s0 Y" a
#include <linux/types.h>
' d0 Y' ]- m% c: ^  W" x#include <linux/gpio.h>' j0 P  d4 |8 v8 M) M
#include <linux/leds.h>
) p! X' x- ^# y7 t0 g#include <linux/platform_device.h>6 X% f6 u% B9 q& g4 t6 c

7 q& o/ Z$ I) t/ h#include <asm/mach-types.h>
" ]: O9 b% X# o' a#include <asm/mach/arch.h>
/ ?3 _$ y  x! g) L/ k0 W) }) }( C#include <mach/da8xx.h>
$ ]7 s0 s) j2 h5 E: j#include <mach/mux.h>- Z" C: ^2 k6 s) R# G( a8 d

& n# v( |0 ~6 b  X3 I; W2 T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ F4 ]0 O: D$ q2 J3 o, S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 h, b" `5 E! Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 V; }; l6 v) D1 b/ a: a# J4 U. k0 I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  m$ c- R4 d! A

; c+ h1 `" y0 A9 I2 [2 w/* assign the tl som board LED-GPIOs*/
, r7 b6 ~# O0 n5 @  }7 P' [% m' Gstatic const short da850_evm_tl_user_led_pins[] = {$ j4 c4 q+ k6 E* Q0 [; |! [
        /* These pins are definition at <mach/mux.h> file */
0 e1 a* {  E) w0 g$ r( i4 l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ S& c1 x3 Y9 A1 ]4 T* J4 B        -1$ Z  e- Y5 B  l& z
};' @3 u: b7 {: z& m, z1 G
7 V) W6 C) R( O; i/ [
static struct gpio_led da850_evm_tl_leds[] = {
8 s$ q2 h% G+ J" W, Q        {9 k& M" c5 |9 g- n$ H7 S  `: _
                .active_low = 0,
9 l9 A: `2 k1 ]  ?" `                .gpio = DA850_USER_LED0,+ A0 h  [6 ^/ n6 y
                .name = "user_led0",
$ F5 |8 u2 x. W, E                .default_trigger = "default-on",
! e/ p' G3 k7 r, w        },
6 ~: D, c$ t) K. @% R        {
' Z* Y8 Y- w4 a3 I                .active_low = 0,
; \5 _) t0 b! l6 A1 `, @- f- ]0 y                .gpio = DA850_USER_LED1,
$ I9 L% |) [+ q+ f                .name = "user_led1",
) i3 M/ D+ @+ C                .default_trigger = "default-on",2 K* X' J2 z% {, ?
        },; `  O0 j- i7 z7 `$ a
        {
) w, M/ J; E! D, v& V                .active_low = 0,
: J; I. W; s  S  n                .gpio = DA850_USER_LED2,
5 _% G# ?9 [/ p+ ^0 Z  K5 I+ m0 r8 F                .name = "user_led2",
8 l9 M9 [: S/ i- M% _$ `$ W6 L                .default_trigger = "default-on",
. Q1 I4 G9 Y4 z7 v3 i        },
- |+ }6 K* _# p  {+ O        {0 E) }" A7 j+ p/ y( S9 }; Q
                .active_low = 0,
6 L) ~! `$ ^8 _                .gpio = DA850_USER_LED3,( S2 i$ j' p& P$ |" O
                .name = "user_led3",  k8 J4 o" Y1 u& E: b, {. W
                .default_trigger = "default-on",
, f9 ]4 d( R: K7 Q/ c: q        },
9 N0 D) }; V1 ?" d5 v& V. U};
8 d' O7 I# Y6 r* N6 g" p& ], M2 g" u. `0 M4 [3 z0 l/ j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 w5 X2 S2 F9 z# z! j" r8 P# I
        .leds = da850_evm_tl_leds,! ~2 x( M( q- {- Z$ O' ^3 }/ x
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 |' v+ }& Q! W! V  p. f0 i};
6 N. |; v7 b& P. Y/ p" o3 V# J$ f3 p( J) ?' o7 g+ c
static void led_dev_release(struct device *dev)$ k* V: N( t8 `
{. r- L& I8 Q$ W3 z7 [" L8 P3 f  N
};; O0 f, o( C& e' j$ O

4 n+ x% i* ?8 Q1 h" h. ^' V0 |% estatic struct platform_device da850_evm_tl_leds_device = {3 A! c0 C6 m& q0 C
        .name                = "leds-gpio",
# D6 }% a7 j/ w3 f3 s        .id                = 1,4 d" V& m/ A' ~
        .dev = {4 q1 U4 I! V) w' x3 T) x; s8 ?
                .platform_data = &da850_evm_tl_leds_pdata,6 O; d% [5 }. W5 g. L: w) j- u
                .release = led_dev_release,
9 _! G$ F0 m4 b4 E        }- R; [& @( C& Y6 P/ n4 u: F( V1 _
};
) E) {: r$ t* U: r
  Z- t* a0 q% a% P5 tstatic int __init led_platform_init(void)
3 U! J- D( m! P. \: l! l{
5 j1 X1 n. W" y        int ret;$ \1 n! G0 O, b' p8 {
#if 0) c2 j/ ^/ |; C& u7 u. Z0 w
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- O4 V& v4 r( y/ T        if (ret)
6 i' a! F9 ~5 X0 S6 k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% d: k7 c$ R7 u                                "%d\n", ret);" W* M3 S$ e1 u- Z7 s! c
#endif
/ O* f, ~. z! [; l. T        ret = platform_device_register(&da850_evm_tl_leds_device);
6 F" j' u; G* S8 x1 g' v& Z        if (ret)
, E) S8 S% R" l1 o5 O3 s- L                pr_warning("Could not register som GPIO expander LEDS");
( v% X4 K% ]5 N( s" }2 k: @        else  l# U# n; {# r4 i* j
                printk(KERN_INFO "LED register sucessful!\n");- ?7 P5 b* [' h0 q" R
0 \! |! O+ t: [8 O$ V% Y# Z0 C
        return ret;
1 ?6 }4 l" T, ^3 S% [4 R" L' q}) [* `+ l; x7 R% N: V6 I+ I

1 P0 H# u* {2 Wstatic void __exit led_platform_exit(void)4 O- K( N& D9 K3 a
{0 W  r7 X& l% \- G7 Y, l7 c- ^, J8 j6 T# f
        platform_device_unregister(&da850_evm_tl_leds_device);
; T7 ]0 F; g8 c0 n! O  c# j- @& x. z) f
        printk(KERN_INFO "LED unregister!\n");; M  y) r1 O4 l! k* y
}3 }: I/ o1 Q- W& U' M) C
+ T3 Q% o8 }' g9 V& `  R4 ~4 t
module_init(led_platform_init);
4 V4 k9 T9 p, p: V' y* Tmodule_exit(led_platform_exit);
+ _/ p8 A0 v" J  u+ }0 P- Y  A5 d0 [. N! `7 Y* Z7 ~
MODULE_DESCRIPTION("Led platform driver");5 A3 |; L8 C; O. G9 ~. M. v
MODULE_AUTHOR("Tronlong");8 Z' G9 g0 f' _" @! I
MODULE_LICENSE("GPL");' v. E- _( k* s+ z% L6 {

! h6 C( t+ `% O, d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-17 19:16 , Processed in 0.038465 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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