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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& T, F& l  G8 ~3 ]#include <linux/init.h>) b3 L' t( A9 e& {" k0 y9 P7 J
#include <linux/module.h>
7 s4 x' X; \3 W# x5 |" a#include <linux/kernel.h>
  n4 C' K9 ?& f: `+ y( n#include <linux/types.h>- ]) s9 o) y; \* C. B  D% A7 s: l
#include <linux/gpio.h>
- Z6 P4 J& X. ]8 H#include <linux/leds.h>
* j) h- r- R& n3 F) y" I$ f4 W#include <linux/platform_device.h>
' V/ O% Z3 z0 k( X& C( i
! L; F$ C' N8 ?$ X' [#include <asm/mach-types.h>
3 a: s/ b9 m* x" J; V4 L- x#include <asm/mach/arch.h>$ ]( n3 `& R" D* A% o& j
#include <mach/da8xx.h>2 Z& H! ^5 W" w6 E. K
#include <mach/mux.h>
9 @6 P% {- [5 F' p* z4 C1 j7 c
; _& N8 k2 t# {# \6 ]1 q5 u#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# x5 K# a0 _4 p# C7 D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), P! [* o- g+ X! |6 N
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): S1 K' F# p# o9 s
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ Y0 S, k9 p6 w3 _& u! x# T
7 d! n. L1 [- s! t& z& s3 B
/* assign the tl som board LED-GPIOs*/; r) E5 R( k4 c; }9 p/ y
static const short da850_evm_tl_user_led_pins[] = {) R- _. e) N, J! t# c. f: @" v
        /* These pins are definition at <mach/mux.h> file */7 ?! o; n6 T+ I) U9 Q; a1 g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 u) r; R9 `* {9 M        -1
( W) `/ z: ]+ Q# i# [9 F! E: f, b7 P};2 a  k$ U4 n- v. r/ G! r
8 I, Y0 _6 ^; k( [. \; F
static struct gpio_led da850_evm_tl_leds[] = {
0 m/ M. [' Y/ A2 B* n2 T        {% Y, x" N# Z! T1 ]6 U. ]
                .active_low = 0,
, I$ A, u$ N8 a3 M) z                .gpio = DA850_USER_LED0,) T( W% B0 C: c0 N+ j7 V- }
                .name = "user_led0",9 w& E7 a. }+ H. I; u, I! T
                .default_trigger = "default-on",7 _, U( O6 [) y0 s8 u/ b1 d
        },% |2 A: I0 @% ?3 [
        {
2 D  V- o+ ~3 l" |# A( l, }5 y                .active_low = 0,! t) n1 T* g4 y+ D$ R' h3 l
                .gpio = DA850_USER_LED1,
3 n" s. ~: J. E. F                .name = "user_led1",
, L. _% t, d, i6 z                .default_trigger = "default-on",
$ ~* l  d9 N' v0 J        },6 `  r; H1 O1 e
        {& S- l, l( o! s- m
                .active_low = 0,: y7 W& I# u% t) T9 A. r
                .gpio = DA850_USER_LED2,
& t. e/ k2 f6 O4 e+ K6 `                .name = "user_led2",% |* ?4 }: x- z2 V8 z) t) }
                .default_trigger = "default-on",( M$ E  b: V7 S) H) G2 n
        },
0 t. z5 R- \! {& @6 M; Z5 \' Q        {! U) C/ _" s1 R0 r, H
                .active_low = 0,
. i3 m3 @$ y9 D, u% [+ Y                .gpio = DA850_USER_LED3,
0 K' E2 h. e/ i6 ]& n6 @9 }                .name = "user_led3"," x9 I2 g3 Q+ E- |' z. t
                .default_trigger = "default-on",) E" O2 y% A" j" u
        },
5 \, H1 x& M! B' ^4 y/ j};9 g# W3 i: f  {2 ]
$ ?+ _2 U  Z6 H, O: K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ b: Q" B! ^5 Z0 J8 `7 e, a        .leds = da850_evm_tl_leds,3 M9 v5 T! s# o7 S
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- w- g4 ^1 k7 w( q. |  O
};6 M1 p* V& J' l' {) }) e. I) L

* y3 d( l5 X. d# f6 [static void led_dev_release(struct device *dev)
5 C+ `+ A5 l2 s! }* U, Q{. z, ~- }' u, g" r3 n
};
8 J8 U( B  {' c  d/ J1 i/ A+ G. X" r  K7 K
static struct platform_device da850_evm_tl_leds_device = {
2 Q: s, F4 q3 f! q- \6 L& w        .name                = "leds-gpio",* E/ }1 \/ V8 j
        .id                = 1,8 `: `  [* e& {# J
        .dev = {
: q6 }' }9 N, a5 g+ c" P6 T                .platform_data = &da850_evm_tl_leds_pdata,
/ Y. }/ l! y# m                .release = led_dev_release,/ g# I8 F7 t" v- x
        }* k+ y" E+ I9 y1 o0 B% j) ]
};8 S+ q7 F4 Z4 H# C: x
. ~  a& T$ m' K7 W; I. ]
static int __init led_platform_init(void)
( K0 J6 U9 X5 H/ v5 `* P{
& D4 |, `* j& D        int ret;% x* m+ R7 q8 s, Q+ p( w. P
#if 0
9 Q1 l, j3 l! V" ]! Y5 t6 G, V        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# O: r% C# V5 \( U3 {
        if (ret)
9 f4 c; v& W5 j$ Y( T5 ]% |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 b0 j4 {6 T' u1 J8 F4 `
                                "%d\n", ret);6 G9 q3 }* N9 M' `: J9 |3 \. w9 m
#endif
" }# w- Q! z" z        ret = platform_device_register(&da850_evm_tl_leds_device);
* T  F! z* H# q7 `        if (ret)
, J, i6 F6 a+ B$ R                pr_warning("Could not register som GPIO expander LEDS");
! x) S  I* y, T        else7 R. M5 O. L4 o" z, U6 A
                printk(KERN_INFO "LED register sucessful!\n");
: o, z5 p% J0 O& n! E, ~( Q6 B4 H  S
        return ret;: O" g" f8 A1 d9 E; ?+ H) y
}3 X# w  P8 I' `% o+ Z% q3 K

# U; Z, c4 x0 T! B# l# X" l& D  ~static void __exit led_platform_exit(void)
+ \3 @- l, w7 |/ _{5 u4 ^7 X7 A7 m* f* ^4 i! J
        platform_device_unregister(&da850_evm_tl_leds_device);
" ^/ B' p2 V  ~5 J$ ?3 B
$ c9 P' E, @. B9 g/ \& E& u        printk(KERN_INFO "LED unregister!\n");
9 Y; G% Q* |6 c1 |2 r/ i8 Z}& y' W! R0 i# F! x
6 o8 j7 Z& M7 v) J
module_init(led_platform_init);
( v/ l$ \- E6 _7 umodule_exit(led_platform_exit);; o2 H) Y- T6 O1 `/ T0 i

1 y8 g% P) Q$ e: mMODULE_DESCRIPTION("Led platform driver");  H2 i. A2 W  f  A  \. {) L) Q& q
MODULE_AUTHOR("Tronlong");
9 t8 R# |5 V  s+ x% VMODULE_LICENSE("GPL");
0 Q$ k' n! Y- X3 m/ v
1 |! u9 H5 m8 a% O1 Q: H9 h1 M  I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 09:40 , Processed in 0.037781 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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