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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& b2 b/ w5 M- \- P8 `8 O#include <linux/init.h>
/ G$ T: T$ N* f7 B$ z& ~) P#include <linux/module.h>9 _# ^6 @0 W% V+ r3 R  S
#include <linux/kernel.h>
. W" @' v4 }2 l' |# `9 d#include <linux/types.h>
( `! F& I& N, r#include <linux/gpio.h>
5 Z! c" L: }% R) N: {) @#include <linux/leds.h>
: S6 m. A& t% W6 T& k#include <linux/platform_device.h>; q; r1 N1 K9 n) h/ G+ Y
  X' S* Q! p  L2 L3 O5 c( H
#include <asm/mach-types.h>' [+ v: s2 g3 U# b" ?. ~1 o1 k. t
#include <asm/mach/arch.h>' p7 u2 G" `! ~0 A  M
#include <mach/da8xx.h># \% K: m. |; c: _* x
#include <mach/mux.h>; Q/ E0 t, _2 R) R- ]6 v! j
0 o( ^* K$ L2 Q% v) T
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& B# y# h( e& ?% S" h0 {/ M; b0 {$ `) F7 a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ z9 j9 v# D7 q+ T' O  Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% h4 M5 K2 R  H! `( z  O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! M% Z; }3 y" M! c  W5 [

5 `2 u" C% E/ k3 k& \( [/ z/* assign the tl som board LED-GPIOs*/! F/ c" r$ r% n! w# f
static const short da850_evm_tl_user_led_pins[] = {& C+ _- X' u8 n& Y; N/ Z
        /* These pins are definition at <mach/mux.h> file */4 A) |$ e9 s4 W4 ~7 H
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 V8 h0 E8 W' I        -1
/ Y2 Z3 u2 G/ c* O' G& Z! X) K};
/ N# K3 w/ D# p9 T
1 B9 Y0 e. }4 j6 F, |0 z2 N) U# B% pstatic struct gpio_led da850_evm_tl_leds[] = {
4 R/ h; ^. L5 F4 Y        {
! ], N# P0 e: d3 a, @; H; K0 o7 C                .active_low = 0,
# c4 d* ~7 e. j: Z" I( p                .gpio = DA850_USER_LED0,
; g& g) y* F9 q( {                .name = "user_led0",
7 F  J  k1 a; ]$ v2 L9 q8 q                .default_trigger = "default-on",
& ~& V1 v: R) j6 l        },% H5 |, X8 J$ m) w4 E) z
        {
( l+ s  D2 A6 Y% M$ t; Y# k- z                .active_low = 0,
( ^6 _" @" Y- [7 r' C! G9 B                .gpio = DA850_USER_LED1,2 {* Y) ?: m- T9 p7 ]/ s8 u
                .name = "user_led1",
. v5 h) e  D+ C                .default_trigger = "default-on",
  L. j* |6 b- z: \. Y2 }; l7 y; b- B        },
* J+ q1 U- l. H: r        {0 {! O# e# [. ~8 e+ s
                .active_low = 0,
' ]7 Z# {$ C( H% Q- a( a                .gpio = DA850_USER_LED2,4 ~+ f6 F8 M4 ?+ c
                .name = "user_led2",& D; N( z6 f1 }6 ^. @1 Z" c, l
                .default_trigger = "default-on",
: \: T3 N0 R/ N$ `' }        },1 d" P; W6 }3 w8 O' ]
        {+ P! k/ f' Z3 O7 F5 E/ Q
                .active_low = 0,* o+ M# Q% [. a2 P) m& O  h! Y
                .gpio = DA850_USER_LED3,
* y- [/ N! U: ~* o                .name = "user_led3",5 u: Z8 t! P( ~
                .default_trigger = "default-on",$ [) [: y* }4 d
        },
7 ~1 m/ F/ {% U* j& [) z};
; e6 |) r6 ^6 a% i* H
: r+ Y( ]; u( @: Sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ n) ]( D  y* a) E
        .leds = da850_evm_tl_leds,5 V$ |6 ^: O/ K% t. g  F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ A% e3 p$ C/ `/ z0 i. u
};; k8 J& r7 j9 w1 p9 h9 g# j7 d6 I
! \; Q& K' F6 Z
static void led_dev_release(struct device *dev)
# E" {$ ]& F3 T{
1 K7 d1 D, X1 a3 T& d3 H* O& E};5 N( x, ?7 i& L9 c

7 f: D: I, k" k$ \- Lstatic struct platform_device da850_evm_tl_leds_device = {! v% W/ Z% g% d3 C4 ?5 L
        .name                = "leds-gpio",! X' Y' A( v3 J, h- W- o$ p$ b, T, H, {
        .id                = 1,( M. \! O9 h9 k/ I% s, m$ c
        .dev = {1 m& u! B: p3 j
                .platform_data = &da850_evm_tl_leds_pdata,/ u  ^; A2 J* ^. G
                .release = led_dev_release,6 t. _% t+ w) ?, R  S
        }( N$ v* _* o5 }, {5 F' v- |7 s
};9 {; j8 P" K5 D$ v3 P5 B

* H8 M( z: ?, D% H3 `static int __init led_platform_init(void)
" l9 x! R. L$ ?% v{
! j! H2 a5 m: `9 I7 Y4 E        int ret;
2 q) Y; O* Q' m. _/ t* m% e* P#if 0
: Z6 U! M$ D) g0 l. a" [        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! s9 f! D1 ]) h1 x% W) r: g
        if (ret)
- E8 ~, j! a  j7 U- i2 l6 {8 Z6 ?) M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  A; o) c. i! f# ^1 P                                "%d\n", ret);$ u7 ~/ m7 j; n; ^
#endif
3 w! S2 x- j: ^- Z/ v$ ^% _        ret = platform_device_register(&da850_evm_tl_leds_device);/ e  J) ~$ ?/ [9 h5 j* F5 |- u0 m" k
        if (ret)' E. x" m! Q( j( W7 X$ _$ S* f
                pr_warning("Could not register som GPIO expander LEDS");$ v; c, U0 A$ J5 v& Q) k& w
        else3 ~. M" R* X" M) I+ T
                printk(KERN_INFO "LED register sucessful!\n");
. l# e6 p1 r7 p# w3 c& ]! {6 H) G# N% V$ R( ?
        return ret;
" ^- c$ Y% Y  ], K# l}
) p+ u' J" q- P! m: Q9 V  i/ _# j# t( s
static void __exit led_platform_exit(void)
# i9 f/ `, Z5 D0 m& I+ p{! Z7 C8 O/ K  h5 x2 D4 b
        platform_device_unregister(&da850_evm_tl_leds_device);0 z9 W- d+ r( e: U, ]
* g! f% G" T1 q+ p
        printk(KERN_INFO "LED unregister!\n");1 e! G) ]8 h  w9 t3 p
}
0 u3 d% a( o' G
7 I, l, d, Y8 X6 u! v. E$ z4 P8 t" ?module_init(led_platform_init);
4 I1 j+ ^. N: z5 \0 Dmodule_exit(led_platform_exit);& A. z4 h, v! G, Q/ q6 z9 P

8 S2 U, d1 L9 `% Y* H) jMODULE_DESCRIPTION("Led platform driver");# R. ^4 U6 E9 E7 @
MODULE_AUTHOR("Tronlong");
8 g. A, Z+ h0 @& r" S6 o" I  D7 T1 CMODULE_LICENSE("GPL");
4 c1 [2 R3 m3 s5 I
/ P+ p/ J( V( |3 Q2 p$ t7 D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-1 20:57 , Processed in 0.036297 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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