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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ a- l1 H4 A' M6 e( C#include <linux/init.h>
  m. l5 }' M3 ^5 S/ @# `#include <linux/module.h>8 @; d; {/ Y) b* G/ E% ~
#include <linux/kernel.h>9 ^" o8 P7 y: e* t1 ~" t" H- E
#include <linux/types.h>
  B5 I; t- o. i8 {( C: l9 C#include <linux/gpio.h>
# X+ C/ B3 {6 N#include <linux/leds.h>" z6 \* J3 q9 f) v+ f+ G
#include <linux/platform_device.h>9 f, c4 r0 `% [

$ N* x( p% J. L8 P#include <asm/mach-types.h>% p" c. f* L9 v: b1 c
#include <asm/mach/arch.h>) W5 _2 s: B7 o' I# V" Y8 b
#include <mach/da8xx.h>
8 l- O( N/ x& R4 e; r, B#include <mach/mux.h>
% M! ^& R4 v* {* G
5 f& m( \( u3 W6 g#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ k8 Y9 k% C9 ^1 o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  C; h1 V8 i, I" d; [. d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 l9 W4 Z; J, N2 ]#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( t+ p# Y! M* I1 c, q. G
; f: M, Y6 L6 A# z$ `3 N/ k
/* assign the tl som board LED-GPIOs*/
9 @4 b, P' _! d" Jstatic const short da850_evm_tl_user_led_pins[] = {
0 V" _: Q2 D. `& X" A        /* These pins are definition at <mach/mux.h> file */* C: X% }' h2 m7 Y4 z: S: x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' r, r8 Q. _" }) W        -1/ n& J& |' b  _( Y  N6 A) I, ]( X
};( S: t# l" f8 b

8 T' b8 I6 |4 u$ ^static struct gpio_led da850_evm_tl_leds[] = {
$ R. t: j2 z8 _3 m& D; ?4 u$ W        {
/ e, s0 L. T6 c, S2 y                .active_low = 0,
) i+ z: W$ f8 N. a/ A7 m                .gpio = DA850_USER_LED0,
4 s  d% A- @4 |7 s" t                .name = "user_led0",
" Y: `3 p" `; i, P# q6 Y/ j; o                .default_trigger = "default-on",
- H% i) C+ e2 a/ J+ B3 w        },
0 B/ t; S# @$ |- p# l5 J( u        {
$ J/ j" Q# ^* V                .active_low = 0,
: s; {7 G) D% P                .gpio = DA850_USER_LED1,
- F& \8 K  X0 T0 w5 S: P' [                .name = "user_led1",$ I; d. X( Z9 q* q. @1 H6 r
                .default_trigger = "default-on",* V; ]6 \9 |7 x6 [  I
        },
: n& _  r9 G, L" S" l3 [; C        {
) I7 R# R; V, M$ M3 J                .active_low = 0,
) m+ s/ r0 `1 P8 x; _& M, l# v                .gpio = DA850_USER_LED2,5 o- r8 R; R8 t! U  E$ M
                .name = "user_led2",
" a$ d9 L9 E2 H7 a$ ~2 ~( f6 y                .default_trigger = "default-on",- [8 }8 H7 Y* {5 J0 k2 C# H
        },% U. z5 c3 {) D+ o  C. o+ Z- R& K
        {) n7 Q9 ]" g+ ?) B
                .active_low = 0,
' N" k# B/ I; L                .gpio = DA850_USER_LED3," y5 M4 z0 W) W) L/ q/ T& A2 v
                .name = "user_led3"," F, d; V6 @# _. Y! ^3 L, h  v0 p2 m
                .default_trigger = "default-on",
7 Q" J  t  G/ q1 A& |        },
3 i* c' m; ]4 |# }6 D" z4 ?};7 V. s3 ~; Y, X9 u/ R

: Q' a7 {0 l& l: h5 v/ U5 Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 U" }, u/ c- p% Z+ F
        .leds = da850_evm_tl_leds,# F1 u0 ]6 a  p8 A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: v* W( k0 U% p
};/ |& k- O& j; ~8 ]2 Y2 ^. r
& c( _0 _! d7 W0 B" b3 b
static void led_dev_release(struct device *dev)
! G5 `4 M. Y. w1 l: T6 ~{
% m; Y% B( G% [! Z0 X" Q. y* l4 Z};+ \9 w  b% P# C

  W) _5 k2 ~" b* }static struct platform_device da850_evm_tl_leds_device = {7 J0 B. |# I* W( B, q- B
        .name                = "leds-gpio",& P. l4 p- z1 M5 g
        .id                = 1,+ L; ~6 v1 J; Z+ N, Z' {* M4 u
        .dev = {7 d6 L  U- z2 s, O; i# l, i9 C0 R
                .platform_data = &da850_evm_tl_leds_pdata,
- U& }; z' O" b2 v                .release = led_dev_release,
+ b, O3 M# s& M2 O5 M! Q        }9 b+ [5 j( Y% o& g8 N, o2 o
};' d6 O; U, O! k8 a" ~0 |. j
: g$ F$ t' V3 {- k6 Q- T
static int __init led_platform_init(void). f% s; ~+ b3 {
{
+ P* }1 o* h) V        int ret;) P2 M  \, |+ d& d$ j1 s7 `0 I; l
#if 0) r* l; a: j; z- l/ }; }  C9 b
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& J% l5 e, d) f5 J  O        if (ret)
6 ?  f  w$ K7 o$ v" _, N4 b                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" D5 E4 ]+ }" Y! y' z9 |- s
                                "%d\n", ret);* }; o- c$ Z1 w1 r: s
#endif3 }3 F; a! n- w
        ret = platform_device_register(&da850_evm_tl_leds_device);' O  V, M. l. n4 I% c
        if (ret)+ Z( q% E2 H  F, N! j
                pr_warning("Could not register som GPIO expander LEDS");
/ W$ c5 F1 ?# l& H- T3 P! j! _4 [        else7 i! _3 P% c* b8 |6 k; v
                printk(KERN_INFO "LED register sucessful!\n");8 G+ E* S* ~& K- O$ I. R5 G# S
3 s. o2 N: d0 }) `4 m
        return ret;
7 F" f- `5 V6 P. ~$ e}' \" V$ C  N$ L  p" Y9 m
- F+ R4 \" `$ Q' J" ~
static void __exit led_platform_exit(void)
9 m7 n8 m2 }8 ^" y7 U{! k% k% V2 q- _. N
        platform_device_unregister(&da850_evm_tl_leds_device);4 X( x" _0 ?& B' G% X# [/ o6 D
6 R$ y1 x& h- |. W: B9 m9 q! N; @
        printk(KERN_INFO "LED unregister!\n");& N, F" p# m7 ]# e: M; I9 g
}4 V, X0 |- O* n' b1 t5 J* X

4 u) D. d/ R3 i" E6 {9 F( ymodule_init(led_platform_init);
+ W: x4 p3 J) {1 k, Hmodule_exit(led_platform_exit);
1 l* q, ]5 z  V
# C9 B  d$ \# C1 m/ a# zMODULE_DESCRIPTION("Led platform driver");
  t) Q% a5 o4 K7 jMODULE_AUTHOR("Tronlong");3 x( {8 p. I$ d2 w$ t+ U
MODULE_LICENSE("GPL");
; {2 n% z7 \- g
9 x2 q, v5 P' {/ U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 10:17 , Processed in 0.039919 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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