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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: `; W* Z) |! Q7 b  T$ u+ y8 M
#include <linux/init.h>* X' v! ?8 ~8 U+ M
#include <linux/module.h>" R" a' y* r6 d$ P$ r8 \
#include <linux/kernel.h>, H2 K3 z) Y, b
#include <linux/types.h>/ d  d7 ^) p: ^4 `" H8 k
#include <linux/gpio.h>
8 S  B# Q5 L# E, A#include <linux/leds.h>. o& u& Z2 b6 q0 \- q
#include <linux/platform_device.h>7 j: \% P/ b* y( [2 N
4 O/ ^' w/ r3 ?4 C* y  E
#include <asm/mach-types.h>
, l7 m, U! W; A0 o8 T3 ]9 I#include <asm/mach/arch.h>
) O8 t7 A7 v. u- S! P! h7 G#include <mach/da8xx.h>
8 j, `8 G2 F; t7 a5 I" L: H) z#include <mach/mux.h>
: ~. F. E/ R7 d" Z, v7 L6 N# ?) P$ _/ e; N( n0 {
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% I9 N" I# w2 Z2 a2 X3 a+ t#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ F* T: d2 g% O! O4 d, [8 g
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 u3 Q1 I/ T9 j2 J  H. N7 d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 h; n' X/ N- A1 ^
1 o, R3 m0 N5 l; M
/* assign the tl som board LED-GPIOs*/# f- N5 w2 W3 `/ M/ O2 H
static const short da850_evm_tl_user_led_pins[] = {8 \, S' `: w. _8 f. K7 F6 l
        /* These pins are definition at <mach/mux.h> file */
- D3 P& a) ~: T4 K; M  ?        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' I% M. U8 _/ a1 t% T! r        -1
8 o, ]2 q. }" U( Z& _};
& u; G) e5 R5 e! e3 ^' g( N: I/ l# \$ L9 D9 w/ \
static struct gpio_led da850_evm_tl_leds[] = {8 v* y# i7 M1 _6 Y$ \
        {1 Q- i2 }, ~% }' x$ H3 w
                .active_low = 0,
* o7 V$ r  q% T' c0 H  F; s                .gpio = DA850_USER_LED0,
8 \) s3 y# n  O                .name = "user_led0",
: i! l6 I0 ^, j& W9 d                .default_trigger = "default-on",
1 m8 T3 ~! q7 ]0 H+ v6 O# V3 r        },. k' x- n+ h8 P+ U5 J# h# a" v7 R0 S
        {# v. m. K' H' v& x! j) ]( G
                .active_low = 0,
; U1 I* A$ o1 {6 \+ z                .gpio = DA850_USER_LED1,
1 f' a' W3 B$ u+ ]* U                .name = "user_led1",) n. C  F4 Y! n, _) C# o( R
                .default_trigger = "default-on",
* [$ R$ o* R: n        },
' J: Y7 X% `& z& O2 }        {
9 c9 t9 G! A$ L, g& @                .active_low = 0,1 I1 g8 y/ ~% |, E* g" g% ~3 n. a
                .gpio = DA850_USER_LED2,
- G& u! V  j, U. F$ J                .name = "user_led2",
6 R' t( x- M& I/ \  ]- C                .default_trigger = "default-on",# j  v) ~7 c! }! B) W" c
        },+ }* j0 ^4 @5 J7 {3 ^
        {
  \: R8 M: w& n0 a) e1 t                .active_low = 0,
+ m" i5 b* W5 u, x6 q                .gpio = DA850_USER_LED3,
0 X, f0 H4 V# Q                .name = "user_led3",
" h, u$ _0 H, I; J1 X4 X6 _                .default_trigger = "default-on"," l* t. V/ J/ C9 N2 Z
        },
+ w* b7 z( D4 R( h6 ~! C$ v" ^7 r3 A/ a};
% Q' e2 T1 ]6 x* [- t1 h5 n2 e. a5 H2 s$ }2 S  }8 N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  \5 Z/ Q2 M) S$ h6 c6 A" \5 {        .leds = da850_evm_tl_leds,
3 u" Q+ _7 f' g7 I' ]0 s( z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 ]! C9 d- j1 F) W) z
};
$ A1 e6 T# ^  p3 w) x+ N; C: r: B  U
4 ?3 W- P( ]% L1 gstatic void led_dev_release(struct device *dev)
2 n( r9 l) t( K5 Z  T% p6 ], R{
! f' B9 ^% e' x7 y3 \' u$ W};
, m! }7 {7 H: n
: H. k# P  s4 e  }  Q8 |static struct platform_device da850_evm_tl_leds_device = {4 \3 o* g% G+ H2 @3 P; L
        .name                = "leds-gpio",, J! p' c$ N7 `  S1 k2 z. \
        .id                = 1,
! S, |. t4 O9 j0 T        .dev = {
" f3 O9 {. ^0 I# v' z                .platform_data = &da850_evm_tl_leds_pdata,
% F" Z# K+ f! X( ^8 B) i+ I                .release = led_dev_release,
4 M" `' d" j- h; @7 }        }: Y8 X' J# `3 d) u
};3 e% F# H9 k' @2 c& ~8 X- U, U: K$ w% r
5 H" k0 U" b7 O
static int __init led_platform_init(void)$ P! C% {' H3 T6 \- [; s, z* |
{
* I: z6 ?6 |) j' a$ [' y2 |8 i        int ret;, `6 F& v! @: T! D4 G! Z( }
#if 0
+ }4 v8 q& P& Q2 E  b- T% {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- z( h; j9 e) r( m, v1 u        if (ret)0 Q# ]7 X; z9 M
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ ~( [. Y4 G7 c+ h: w# Z) c% ~                                "%d\n", ret);) w: K/ z6 |" p0 X; R, m& d
#endif/ p) P. `1 V2 Y$ }  A. Y) O; G6 r
        ret = platform_device_register(&da850_evm_tl_leds_device);/ n) s2 x! B* I' N+ i
        if (ret)
4 K7 H' D$ B4 `                pr_warning("Could not register som GPIO expander LEDS");
0 v; Y4 n# k3 ~6 I' R' q        else9 h) N$ j+ y9 X1 \7 J
                printk(KERN_INFO "LED register sucessful!\n");
1 j* \' w6 _' n: ^/ P( t0 d: T
& C; ^6 _( y1 c        return ret;7 a( M% u( ]+ V" H
}0 E. l5 J6 W& e  O' k1 C7 i7 u) t

7 v5 i6 F( K/ U+ d0 E- B+ }static void __exit led_platform_exit(void)- U7 w+ D# b: p$ p) O
{: X8 i7 n! v3 d# T
        platform_device_unregister(&da850_evm_tl_leds_device);0 `5 A8 U9 A. A6 H1 u9 R* e6 }: n
0 c8 y3 p3 T) u  f- c0 v  p
        printk(KERN_INFO "LED unregister!\n");
8 h8 |) Q2 s% N}
% O8 i9 _3 R- u4 p9 `5 W  H" x6 i* C  _% s  l# p9 I; `
module_init(led_platform_init);; ?' L* c9 a# w. ?, k# J& M, w7 i
module_exit(led_platform_exit);' Y7 m) V% s8 J4 B/ Y" d  U3 x: o
. T- g- |2 C3 n% t6 V
MODULE_DESCRIPTION("Led platform driver");
) G8 |' k  T7 t9 ]7 Z5 {MODULE_AUTHOR("Tronlong");* D* X' T  K4 E0 ?
MODULE_LICENSE("GPL");. _+ }2 E% b5 ?* ~
+ D& v2 L% j+ A- t9 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-26 23:21 , Processed in 0.039146 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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