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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ O: _5 l2 k# }8 j7 v4 ^& f1 m#include <linux/init.h>
" U- ~. C2 l: b8 h#include <linux/module.h>! H* N% V5 ~# X- ?. O9 ]# [( B
#include <linux/kernel.h>* Y  w& g2 ]5 B! i& d  \8 U- g- k
#include <linux/types.h>: y+ D: N* I- Z9 A. \+ _% F
#include <linux/gpio.h>
; T5 W, q5 c5 \6 @#include <linux/leds.h>, b' F% H# g- W, {8 e3 F5 b2 U0 {: J
#include <linux/platform_device.h>4 Q% a' b# n- i% f7 p( P
1 Y% J- S- _- u* t. v: q' M$ Q
#include <asm/mach-types.h>
" `0 ]# s  B" E3 a; z#include <asm/mach/arch.h>
4 C3 O4 ?1 z& [# Y/ c#include <mach/da8xx.h>) n, z6 h2 o+ q9 Q% D
#include <mach/mux.h>
% {$ @# P' F6 i
3 Q! f) W- V2 X! c#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 y( k# k# I- ~! k6 w: q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ |6 ?7 F/ t" P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' g% _# K7 o; D6 q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 K  C3 K* `0 \6 v/ D  s6 g$ S

* r& ]+ p: U9 o0 b( C: H2 [/* assign the tl som board LED-GPIOs*/
: m) \3 Z) Y& B* kstatic const short da850_evm_tl_user_led_pins[] = {) i1 Y* `+ Q  g( A
        /* These pins are definition at <mach/mux.h> file */
9 H$ o  j+ w2 \  `5 E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. g- ]) K: n8 `( |; C# c
        -14 B& d4 K+ t; f/ _- b! I# R3 w) j$ f
};
7 @# Y5 w8 n, H
- U6 j3 ]  z! ~, c( W0 ustatic struct gpio_led da850_evm_tl_leds[] = {
! i6 o. E) @* s        {
6 U! _% j) D4 e: |; a$ M$ ]                .active_low = 0,
7 v6 u; q/ j: M. O/ j4 J. @, {                .gpio = DA850_USER_LED0,
. X. c  ?! C+ }  h3 L% e! t! l                .name = "user_led0",! O% O8 L: n- \, f* Z
                .default_trigger = "default-on",
' p4 z) Y0 g  B+ V$ R        },
8 D# ^$ i7 \* X- W        {* ?* p# A: |2 L9 f& H
                .active_low = 0,
9 ]  q3 q/ ^$ ~( ~0 n; I& D                .gpio = DA850_USER_LED1,
: R4 S: _5 r4 G7 m                .name = "user_led1",
& R/ H: i7 ?' g0 G5 i3 }" F* L                .default_trigger = "default-on",; {& b8 C: w2 Z7 W( O6 F# I
        },0 W8 v+ c# `8 t4 t  u
        {
  H" ]3 v. x+ u                .active_low = 0,8 ?& t. c4 w; M
                .gpio = DA850_USER_LED2,$ m% b: h8 A0 b$ o8 t
                .name = "user_led2",+ S5 Q( }! g* L" `/ z7 E/ T
                .default_trigger = "default-on",
0 C* B9 c- M& X0 E7 @  E  u$ ^        },6 {3 m) J& g" l3 U& Y
        {; [  q5 f- m- _. X
                .active_low = 0,) T/ @) O/ N+ b. ?
                .gpio = DA850_USER_LED3,8 y( ~9 x& `( M. B+ T
                .name = "user_led3",
& O2 U2 @5 |% O) R& H- a                .default_trigger = "default-on",+ A) ]2 x8 F' `+ W. t4 Q5 s
        },  k( R% O4 f; L1 G
};
2 d* q( V4 z' A1 z" A& d2 e4 T  x" o& N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# C7 P( K  A, c! S* m" T
        .leds = da850_evm_tl_leds,# C7 e# V7 o$ d+ R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 d+ ~+ ~" j7 A. y" A6 q! @9 e};
% C8 R6 |& w0 ^8 W& ]+ A1 ?9 h) I! }, m* G. k5 e
static void led_dev_release(struct device *dev)3 X5 [5 [9 u2 X
{
8 {" \/ m; Y3 X+ j};
# B' _4 u& r# r" Y! G! D0 C0 B! `  c6 R) A' @" z, A" Z; {! o
static struct platform_device da850_evm_tl_leds_device = {6 k# f: k. |% h+ s
        .name                = "leds-gpio",' \5 f9 |# b2 M; p* H
        .id                = 1,& u6 {( c) P3 ?1 X+ s$ c# @) d
        .dev = {% p% L7 |4 W4 `8 S4 M. _
                .platform_data = &da850_evm_tl_leds_pdata,
& W2 b6 j! n/ W/ ^$ i( e) V                .release = led_dev_release,
! H* l, l: x1 Z. z& b8 K( a( E7 x- h        }
+ W% z7 N2 ~, k% G};. e8 M+ |. }8 R( l9 }

5 m7 H6 ?  {4 Y9 {! g* a* Fstatic int __init led_platform_init(void)& D: i0 R# c8 ~' }
{
. I; h  v; q8 c4 I# x& Q8 K: T        int ret;* w. j* p5 o1 w' v8 G
#if 01 G# n& U) w) S# D4 p4 W
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 u* N: B( ^. t6 \9 r5 d% X        if (ret)
6 i' _5 q5 [8 l3 I" A0 E/ Y3 M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" m( z8 }4 b/ X4 ~) K- J" t# T                                "%d\n", ret);  L3 R6 I" q+ S1 Y6 Y9 T
#endif: V; I5 `3 D: E7 Q2 }( }. K" f
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ y3 m$ I. K+ s' d+ d+ F, p        if (ret)
1 F& g6 h% o" P! d) [( g$ R% E                pr_warning("Could not register som GPIO expander LEDS");) q$ z" ]; T; v4 ?3 U
        else
, J% B  j" \8 c0 s                printk(KERN_INFO "LED register sucessful!\n");
: v+ @3 ^* g2 R+ @' E0 B
7 r. `! W9 v1 v        return ret;
$ I/ V6 a1 v* K1 C1 M}
# c3 M$ a3 B$ q/ j5 u" j' H4 f8 r6 ]! }! r
static void __exit led_platform_exit(void)
6 _( ^1 s4 s4 ]7 s{7 r' K8 p) l& g8 p3 U: ]
        platform_device_unregister(&da850_evm_tl_leds_device);8 p# i7 w7 t+ [. j
  v* r- ~- l% k* L" M% J% z
        printk(KERN_INFO "LED unregister!\n");, u$ ]" }/ p+ d/ U$ T1 x; x
}5 C$ x& x" [+ J4 u7 l- M& _# y+ `
# r, d6 y( J! F6 c4 N
module_init(led_platform_init);# x9 h* ]4 s9 H8 s2 P
module_exit(led_platform_exit);
8 X2 R9 n. M1 F% z( G) F8 C8 f, m, f! G1 [# H  R2 L
MODULE_DESCRIPTION("Led platform driver");' ?+ m) w0 N8 z$ O  J( c
MODULE_AUTHOR("Tronlong");" G. L3 z- t1 c6 I
MODULE_LICENSE("GPL");' d+ G- e8 O: ^9 f9 X5 t- _

- L$ E) C, \+ H) k0 b5 ]  T/ l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 05:06 , Processed in 0.040402 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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