程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; x: `; `5 y! I) A) M. q# Q
#include <linux/init.h>
. k& r; U9 u' V% Q' I( T#include <linux/module.h>
/ b$ I- l+ q9 ^( ^- C#include <linux/kernel.h>
( E' `* m4 F4 h( w5 K' z& X7 O#include <linux/types.h>: T; k4 A% l) y) A$ ]0 t  @- s: ~
#include <linux/gpio.h>3 e! R" L( B% ^0 l
#include <linux/leds.h>
% i4 J  C* ~3 r# X#include <linux/platform_device.h>- ^2 Y' ~! V( s$ p! ?
/ V) \" C9 I6 _: B9 c) ~
#include <asm/mach-types.h>' p2 `4 F0 B7 R. q
#include <asm/mach/arch.h>9 v/ F  V8 F8 U+ a3 T' c- `
#include <mach/da8xx.h>; R3 s2 @, `2 U+ b/ u
#include <mach/mux.h>" h7 h& a. k. b0 m& `, o

. e& E4 U( N. G" f% G* I#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ D0 i9 a% }* Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* T& b, c5 f' w8 J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' B: ?1 p2 {, V/ u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) i1 v2 d$ P& [4 N

$ p7 Y3 H' X! e, U: ?/* assign the tl som board LED-GPIOs*/& I3 o* {' a8 j( R9 f
static const short da850_evm_tl_user_led_pins[] = {4 v6 u1 s  X. L3 o3 @
        /* These pins are definition at <mach/mux.h> file */; M9 L' |- b( k0 J+ R6 _4 ]
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 K$ ~. {! l: b
        -1/ l  ^! i& w( t6 Y
};' P! F; p- w0 R, C4 i3 x6 s' t
4 k6 c$ E( w  o( K: S9 i6 O4 t
static struct gpio_led da850_evm_tl_leds[] = {: G: T# Y! V+ x5 [4 @& k- e
        {& a  g1 w4 _( B4 t0 p8 `
                .active_low = 0,
4 I3 d& j: a) ~' C                .gpio = DA850_USER_LED0,$ d: x+ S( ^; o: J
                .name = "user_led0",
5 j  X# X4 z1 s5 z0 N                .default_trigger = "default-on",
/ U# M2 e# R6 N# E  w        },' h" V7 x6 I8 @. x/ z: J$ P0 F% m# T
        {( H6 ?" H* f* u9 K- J" w3 s2 z
                .active_low = 0,
2 M* S4 v4 n2 v                .gpio = DA850_USER_LED1,, v9 n. W; a3 e! F" ]( b; a8 v
                .name = "user_led1",
% m+ V5 M4 s# O( j! ?# \0 v% z6 j$ w                .default_trigger = "default-on",
1 K. D9 L! k' ~/ G        },
& c* _! G9 T! a3 p! e        {2 k2 p7 p- s+ R+ A
                .active_low = 0,
% H; @9 X6 @/ h0 m  \                .gpio = DA850_USER_LED2,
0 Y4 C: K9 T7 r* _- {$ u- K                .name = "user_led2",
( n7 Q8 T8 h; z! `0 }# s: S                .default_trigger = "default-on",0 u# ]5 O3 m2 m) ^! Q. K
        },
8 f! z+ L" |/ P9 a$ c8 T0 b        {
4 n+ Y7 V: e8 t" m/ r* y                .active_low = 0,; R* M, c. _" t
                .gpio = DA850_USER_LED3,) Q+ c" h5 q! G4 V
                .name = "user_led3",
! g( }! s# v( B8 Z, G                .default_trigger = "default-on",
# s+ N% R3 C) ?8 ?$ ^% f( D        },
$ q  q. S0 I" t3 Q};4 y) o% i: j7 D$ v# I

, A$ n- t( D- S* o( kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ |( r8 I% T- h) Q. E        .leds = da850_evm_tl_leds,) M3 V! F* s+ d' S0 R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 P$ b+ ]* E8 e4 V0 x0 H
};; Z& O9 y: J' n, G( ~2 \8 q0 a! a

9 ^" v- u* J( c) M  ~7 V% W& c4 Dstatic void led_dev_release(struct device *dev)
" t7 }4 D. C' H9 {) M( \/ H, B' E{/ J6 M. ~. `8 n; H# v
};9 c  m  B" R, V% ]& \' p/ Q
( C4 }# g: S& d: `; ?
static struct platform_device da850_evm_tl_leds_device = {
2 w9 v, o/ ]8 d# L; v& j7 C, b+ G( G4 Q3 |        .name                = "leds-gpio",
) B  j3 B( Z8 P$ f0 N        .id                = 1,; k- N/ _3 k0 y: K. p
        .dev = {3 g6 C& c& Q) y3 |
                .platform_data = &da850_evm_tl_leds_pdata,0 d! K+ e; A, {9 V' A8 }2 ]: O
                .release = led_dev_release,. r0 Q7 {* T8 ~6 }
        }5 u4 ~4 s5 g/ C5 k, o
};( }& h7 v- K% `6 C

7 U( E. X/ t5 c6 w4 G9 ustatic int __init led_platform_init(void)
6 T: U. ]( ]. g3 f4 X; Y/ ]{
" v7 \6 _; b& p& q3 P        int ret;
$ P9 \$ T+ J" y+ `3 z#if 0$ q* j) x2 f, i+ a6 F  C0 f! S+ a; }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- B1 y2 w# }# A( Q
        if (ret)8 T7 _5 h: }+ `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ l" y) r  y4 o- M                                "%d\n", ret);
( A9 ]6 `% O! u* B" s1 Z#endif
! B4 b3 L' d' Y2 _8 ^. K3 G8 o        ret = platform_device_register(&da850_evm_tl_leds_device);
3 q) L' r( k$ W' v: ^+ G2 g. y        if (ret)
/ [- u! b# r$ V/ ~. u% K                pr_warning("Could not register som GPIO expander LEDS");
9 I; n$ w: H. L( w1 v" ^  a9 O4 B        else
1 h1 `; a- Z  H; `/ x$ a' {                printk(KERN_INFO "LED register sucessful!\n");
! M8 t4 y0 W% p" l9 U1 j+ \4 [" e! I& @6 ?9 L  w
        return ret;
! D' k/ d1 K5 T) R7 O- ^}& I8 Z: T# v6 d0 |/ e/ J

, y) ?, q7 G, `  _. Cstatic void __exit led_platform_exit(void)( F- ~7 b  B& O- o) z) H
{" {. f: M: x/ `5 r: F6 y; ]
        platform_device_unregister(&da850_evm_tl_leds_device);8 R+ X' D7 `/ y

3 _$ `) w. o8 q+ A) c        printk(KERN_INFO "LED unregister!\n");4 ~7 W. C0 t5 O8 R: J: K3 l6 X
}( k( w/ B& }" w% |0 @
5 v" t$ P% u, X0 ?: k
module_init(led_platform_init);7 B4 k2 W; ]9 H7 i. {6 r' y
module_exit(led_platform_exit);
2 G) V2 W1 @8 k! z$ w" S5 G$ j! q. l' I( k, i
MODULE_DESCRIPTION("Led platform driver");
* d4 N" `% @8 @" CMODULE_AUTHOR("Tronlong");# ?. `2 n& [/ E$ j( k! K" V  x
MODULE_LICENSE("GPL");
2 v+ v7 }* z  x" H$ H( j
( C1 ?4 p  Y. E7 Q, L. j( L( R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 08:00 , Processed in 0.036436 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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