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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. i. a8 U: n5 \0 E$ P' @% ^: o
#include <linux/init.h>
  ^7 y% f5 p# y3 N# y#include <linux/module.h>
# [- v* C: _  o$ ]. }1 e8 {#include <linux/kernel.h>5 q  U6 v! S4 W' v
#include <linux/types.h>& T7 U2 c% Q- u7 F' X1 A2 y
#include <linux/gpio.h>3 }8 I8 i: h* H! ?( h
#include <linux/leds.h>
& }$ F9 p+ ~. P. E5 R3 d$ z  w#include <linux/platform_device.h>, p( e3 P* W0 J5 G# J

, @0 |6 L& Q- P) m' ^3 Y# T#include <asm/mach-types.h>' i$ Q- v2 q( K1 _3 H( _6 O% R1 N
#include <asm/mach/arch.h>
" b, @  G7 F& w) o#include <mach/da8xx.h>
; p, B6 w9 x" r. x#include <mach/mux.h>
  F9 i! G2 X3 v% Z$ E, V+ T2 E9 W; [* P- x+ V- ]; z5 k
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: J% X7 ]" ?+ F) C5 v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  G6 P" R0 I3 R4 w# P7 T5 C% i#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* c0 L7 x( M6 v3 A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 J% o, A5 s2 B4 r: }0 X! Z- C- X) d% b& O
/* assign the tl som board LED-GPIOs*/& ^$ A" ^% h* c
static const short da850_evm_tl_user_led_pins[] = {
9 b* B9 H; v) k! G        /* These pins are definition at <mach/mux.h> file */3 e: S" c- a9 X7 f* d% A$ v3 s6 c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) O3 h/ ]* N0 Y  e! N
        -15 Z8 o% a& z3 r* g! P
};
* P6 p! c- V* h6 k
- m) W: ], H5 l' E2 j* J6 s+ Bstatic struct gpio_led da850_evm_tl_leds[] = {* y8 ]8 U7 f$ G
        {% G5 |7 [3 S" K7 p: E/ A
                .active_low = 0,9 r8 X8 O, `, ?. M) X4 X0 n% g; O
                .gpio = DA850_USER_LED0,
7 i4 X( s% |$ ^& p, G                .name = "user_led0",
/ Z$ P# a! W; ~5 U! [" [                .default_trigger = "default-on",5 L8 Q! c' \9 Q5 w$ \' }# h7 j
        },
  H7 }7 E# }& s4 r. \: ?2 d        {" Z! p, v1 P4 m7 @2 J
                .active_low = 0,5 A# m7 u; }5 |- l
                .gpio = DA850_USER_LED1,( v6 I4 f2 [4 x/ T, c1 W' U
                .name = "user_led1",' k- f0 N4 [- m& f6 u) d1 ~' H) `
                .default_trigger = "default-on",0 v/ q5 ~) y6 K& T! x' C! ~
        },' h% r" P' w( Z1 B( i- k
        {
$ z0 i+ D' {9 ?1 G* J                .active_low = 0,
& k  k- |8 Y5 H* C1 t                .gpio = DA850_USER_LED2,# B7 ]" ?5 R8 h9 s9 f8 I* v
                .name = "user_led2",
8 D( j& V( V  Z- m4 q9 H! {                .default_trigger = "default-on",1 r6 Z* N( [6 h) k, n; r9 @: h
        },
, Y2 x! C- [2 l( O3 f) n/ S) v        {
) _4 q- k5 x, J                .active_low = 0,3 u2 r( x/ J, E8 G3 W, l) p3 U
                .gpio = DA850_USER_LED3,7 }0 o( A7 ~' G& Q
                .name = "user_led3",
* q) Y# y$ F' S- D- {0 c( ~                .default_trigger = "default-on",& R. k% R3 ^; y( ]
        },4 M& c; i' n* r
};  Y& C, u" K- k* v4 Q# p

& _" J/ Y/ ]0 Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% O9 b# W3 q7 }# I  ~5 I0 @: W
        .leds = da850_evm_tl_leds,
$ f3 Z, F2 D+ G        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& l( M/ y+ _# L& }) a3 r: c: G$ x};- F- y3 r, v" `) T

4 k* A% C; a9 V, s# x* Ustatic void led_dev_release(struct device *dev)9 o6 C  g. T3 O3 u$ k: e4 A1 e5 B1 t
{6 f. ~5 d4 r2 ]
};
6 q5 ?6 n( x) i" _- _
9 O" z+ R' Q: v& lstatic struct platform_device da850_evm_tl_leds_device = {
* N3 W' I6 g" i1 N. G8 h, o        .name                = "leds-gpio",# p1 `  y( ^7 ^/ F9 `- J& z4 D* s
        .id                = 1,
/ z2 v3 o8 I' X. I1 A5 {+ B9 A+ H  f        .dev = {- C. e  w/ M( T
                .platform_data = &da850_evm_tl_leds_pdata,+ D  U& N1 J8 _0 }( |
                .release = led_dev_release,
* {1 s; L1 n7 h  a. d: E7 D        }1 ~& T' D1 ~" N7 k7 b
};$ H0 x; E9 h/ p/ u% r: q- `/ {3 ~
- i, h0 {' C& V. N/ X% F
static int __init led_platform_init(void)
  v& s9 W6 H. m' V, t$ v{& l( v! t+ @6 T" X
        int ret;
$ k' t  J/ L( s3 Z#if 03 [' j8 v1 T5 u# t% Z# F0 K) @
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 \+ U! O% r, w, a" X
        if (ret)/ z: O' K' I/ z" k' u8 ^
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 f) U6 G- ?3 a8 C1 J; Y
                                "%d\n", ret);, v5 A2 _- N; a: g% v
#endif
0 y, f9 a/ Q' z( J$ W" {$ D6 I5 K        ret = platform_device_register(&da850_evm_tl_leds_device);
4 q& j# M8 `+ j/ ~* P5 Z; s        if (ret)" y/ M* a7 h( h9 H: _
                pr_warning("Could not register som GPIO expander LEDS");6 P5 A& q) H& E/ P" n' B# e( D) Q6 ^! R
        else8 D9 K- [% T3 ?
                printk(KERN_INFO "LED register sucessful!\n");2 V. P* `2 H; {4 v% x' U# G
6 M& [9 A% g& S9 a4 d
        return ret;! `  l$ H# [. g3 }& G
}# k* k- F4 a' m: d

* W+ v/ x" k/ |3 e6 c2 t8 R1 wstatic void __exit led_platform_exit(void)# @; h" k( H' }6 _2 C
{% [$ n# r  y( o1 D; O
        platform_device_unregister(&da850_evm_tl_leds_device);! j  L) V' h  {# ?3 P, L
& V# B- {7 k" s6 X. a
        printk(KERN_INFO "LED unregister!\n");+ D! d& v1 f1 i6 W5 u% ]& G
}; @5 M/ z2 s* o* u% ~% V4 b
; l3 R) u! r) _* i% B
module_init(led_platform_init);3 b% ]" v- ]3 e5 _' V; \) ?+ c& t
module_exit(led_platform_exit);. L) D  v5 L7 D9 t+ e3 Q

& \' I: |  |& O4 r6 K; QMODULE_DESCRIPTION("Led platform driver");$ t/ T3 k: i' Z9 Y/ @7 n1 n
MODULE_AUTHOR("Tronlong");$ w, ~* D: K$ p0 R% S
MODULE_LICENSE("GPL");, g0 x* A+ [# ]9 N" |5 h8 J; G- I
% |* Q' C8 Y: t7 \) U; r6 C' {& O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-15 01:05 , Processed in 0.041509 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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