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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- F. L; _$ Q/ H1 f' s#include <linux/init.h>
2 g% Q) @1 C3 z( H* }1 X#include <linux/module.h>* c4 J3 T% O/ P3 x( d: h+ |  R! U
#include <linux/kernel.h>
+ E: g' v0 ?! C5 `5 _' z' m#include <linux/types.h>
2 Y, I% R0 I/ a% Z' Q  o: a" v#include <linux/gpio.h>
& _) u5 s8 \) z9 b0 y% J. o. w6 w#include <linux/leds.h>- s. H: V4 q* }% ^4 Y& ]
#include <linux/platform_device.h>
0 d$ Z# _$ @- L" b8 l/ {7 a' v: Q" m! A& K' ]. |
#include <asm/mach-types.h>
1 |; |  e# I( Z0 K" i  j+ m#include <asm/mach/arch.h>
( l' [% n: S: z#include <mach/da8xx.h>. ~" D3 v; B- O0 p: c
#include <mach/mux.h>
/ a  L$ {4 @9 g* G" j. @5 y* n5 C+ M' X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- E, {8 U5 }3 h) q4 D7 h; Q3 k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 q: k, B. Q. X5 B8 J# U7 L0 h5 u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! g$ i8 G1 n( B( d$ ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), ]# W( R( F3 R" Y+ W* v
' F+ ~3 c* L' l( d
/* assign the tl som board LED-GPIOs*/" {! ]/ W" f# ?
static const short da850_evm_tl_user_led_pins[] = {. V3 A: Q0 p- V6 N6 f
        /* These pins are definition at <mach/mux.h> file */( ^% Y9 {% P+ h' j1 m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  ~* X. a, g5 ]6 Y. Y5 O        -13 ^7 U, p) r2 R+ ~4 L$ B
};
0 H& E& f3 L  y6 d# u. N4 \, R0 C& c2 P
static struct gpio_led da850_evm_tl_leds[] = {; Z  {0 p/ J& V, i" X/ Q
        {
# X7 [& x: v5 D  |8 I% ?7 B                .active_low = 0,& e+ J& Q1 |/ }. K0 a2 D4 Q2 ~
                .gpio = DA850_USER_LED0,# B; S5 a& P9 q9 m  l: r# P0 E' Z. F9 m
                .name = "user_led0",' `, y4 g; J+ a
                .default_trigger = "default-on",* H& Y  \# W& e" [; o# C! Q  N( O
        },
2 r7 ?) D# [( y        {
6 h8 @' X- T$ J8 u2 ?                .active_low = 0,8 R0 R7 n9 D* F& J9 W
                .gpio = DA850_USER_LED1,
- Q# W6 Z* Y! C  h! K                .name = "user_led1"," q9 I6 X% k+ H: R
                .default_trigger = "default-on",3 M6 k4 C  j% N. `/ _* P3 R8 V
        },
' e" R; y! N# |6 o8 g, |/ a& v/ W+ A6 p        {/ Z' x, V7 ^9 e% @" `2 i! l
                .active_low = 0,) c; Q6 X( C" @0 B7 H4 N! y
                .gpio = DA850_USER_LED2,
1 A$ {- b( K: j1 l: _( T' |. E- o                .name = "user_led2",6 f4 y+ K2 |9 x" f
                .default_trigger = "default-on",
0 T! A3 g, v6 i- D2 ~' ^5 e4 x+ N        },; y6 g- Y' U4 d
        {
4 {& d* [, N: q& f% c& w                .active_low = 0,8 a: G( J! N+ J; N
                .gpio = DA850_USER_LED3,
1 ]3 k& N1 y' x5 u$ ]; J                .name = "user_led3",* o8 F0 _# T3 F6 b
                .default_trigger = "default-on",$ n5 I$ W8 a- Z# I5 [
        },3 Z, a% d6 A/ ?0 x
};
0 J$ q. b$ o% K0 F) {+ m8 x& c3 g' n7 r7 Q- O4 k* G7 l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
+ l7 y1 ^  M7 w4 F* R' G        .leds = da850_evm_tl_leds,) Q$ [# k: K4 s( H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, X* l0 f, u! p' ?3 l9 ]};
3 D/ P( M* L0 ~! v. h6 e
# u) j: a5 J0 S# P3 A# {( Ystatic void led_dev_release(struct device *dev)' y- m* L! c, Y) ^- n# ~. P
{
6 u5 Z* _; p* ?$ Q/ d/ p};( c& F, r1 F0 T. `  I& u

& \; p- p6 M/ b3 W, s" I1 ]static struct platform_device da850_evm_tl_leds_device = {2 q, X& G" J0 ~4 \1 z
        .name                = "leds-gpio",8 d' D) F% g: M( ]1 J
        .id                = 1,: |1 ~9 g! G. [4 O  d! w, m
        .dev = {5 T& \/ H! W9 U$ c' g* d
                .platform_data = &da850_evm_tl_leds_pdata,
0 Y- s" C* l  k' _7 d: o4 e) h                .release = led_dev_release,
9 W- g8 |7 |# D1 ~. E$ d        }
8 _& H1 O% H! {; d};
' g/ S& z+ u2 f& _% G: s
" O8 s& x* ?, U: V! E% j2 u! d- F; Gstatic int __init led_platform_init(void)- r  L" U- E/ X  o, ]' l$ y( G6 a
{" W2 K0 ~8 S. ~7 Y/ c8 R/ J1 g
        int ret;
$ O- x5 n) T+ i#if 0
+ B- l, ~. U  g" q/ s! ]( ]5 \        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ y: T9 L% z4 t  X5 K8 I$ d        if (ret)
; l; k/ l; w1 x) _: y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ w1 U( Z; [1 ^' M/ p% }  Y
                                "%d\n", ret);, l% X& j6 @% u' z
#endif7 _+ R' l. Q0 C; X2 ~; U/ U
        ret = platform_device_register(&da850_evm_tl_leds_device);  c, p# g: V$ D" Z5 B
        if (ret)
  A" \' S# k0 ^                pr_warning("Could not register som GPIO expander LEDS");+ I- \7 J  j/ s2 W9 w2 ~: ^+ O6 g
        else9 P/ G( S  t$ v
                printk(KERN_INFO "LED register sucessful!\n");
% b/ Y" n$ C+ Y: W# x
5 L! e5 t# M. C& s        return ret;5 M- }& N8 V& @% `1 n
}8 b4 t: w7 m( h9 ?4 P

2 `9 j8 c4 D+ G! J$ Ostatic void __exit led_platform_exit(void)- Y. Z6 v+ \9 Y. x( l
{
4 M- ]8 Y6 M" M) t6 }6 |2 ^        platform_device_unregister(&da850_evm_tl_leds_device);( ^9 {+ m$ b  h5 H& J' }; o; W

( [$ z% k( M6 T% C" Y& a        printk(KERN_INFO "LED unregister!\n");; }  s1 b( y) @3 A# ~- R* W$ D
}
# d$ j0 u  P$ L, B; q6 ?
8 m/ G" X" q- u8 [. Pmodule_init(led_platform_init);, W7 q( n5 d+ u% D+ s
module_exit(led_platform_exit);
# C" m3 B8 }* U  b' L! y9 e
6 s6 _' p- I6 ~# ]2 @8 q* uMODULE_DESCRIPTION("Led platform driver");
, i+ T: v& ?1 {3 g& G* JMODULE_AUTHOR("Tronlong");7 P( a5 [+ r7 a6 J* {8 K
MODULE_LICENSE("GPL");
3 j+ f/ d" {% k: c! E2 ?1 U1 N+ r8 M5 S+ r: G  `: z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 01:21 , Processed in 0.039137 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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