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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 H3 g: g9 Z) ]( T  c2 E) g#include <linux/init.h>/ T: k0 c- b8 y  i  c4 H3 f
#include <linux/module.h>. H! J- p$ N" [4 j
#include <linux/kernel.h>: [6 v! M" b; _! N% W5 j1 s3 L3 _
#include <linux/types.h>
6 X  g9 r% d4 O" ^7 `# V# p' r#include <linux/gpio.h>
3 O# L3 k+ H7 o1 Z; _; c4 q#include <linux/leds.h>4 s" e: T; ]* J$ @
#include <linux/platform_device.h>. x" S  K; Y1 E6 K* u1 n
2 B+ d; `/ ]1 ~8 K, {( q$ T  t* w
#include <asm/mach-types.h>
, p# B9 O1 b+ q& `# w#include <asm/mach/arch.h>
! s8 ?9 |( Z  `3 J& p#include <mach/da8xx.h>) `- X8 z5 m* q& _
#include <mach/mux.h>6 f3 Q$ b+ h& `
: f  q! T+ k$ T% \5 V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 b- w! G$ K' v! j1 \+ |# y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 z7 u, t# }0 l" m
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( o. H2 A4 y# W! F  I- @! w
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 L* y% @  P3 \; o$ E/ C; v1 Z9 @1 R* Y' y0 d5 b+ y6 L
/* assign the tl som board LED-GPIOs*/3 ~: O- S# s+ H" y7 s& o
static const short da850_evm_tl_user_led_pins[] = {
1 F' H) ~- }5 R+ x+ o  b        /* These pins are definition at <mach/mux.h> file */
1 ^( B( E; b7 ?+ B. [        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 M/ c- U1 S* C        -1
) @0 ?. D1 ]/ y  r3 l};
+ S2 o, ]! Z" d; L' U0 V' u
. l" `5 T+ Q$ @  e( O& i) ~2 fstatic struct gpio_led da850_evm_tl_leds[] = {
( ~+ p& y/ H6 M; H        {1 [3 F3 f7 i' r( ?- a0 `
                .active_low = 0,
9 a( o0 O1 C7 \/ {6 o0 _                .gpio = DA850_USER_LED0,
$ S# U$ }0 ]$ Q( d3 k                .name = "user_led0",
9 W/ m. U5 ^5 c% ^+ ^/ `                .default_trigger = "default-on",
' j5 ~& P  N# m6 p        },
% _  X7 N8 k# A5 A7 R! ?1 _) F9 \        {
: X- I) B) @5 X" P& ~                .active_low = 0,. @0 a# ~6 F& a6 v- j
                .gpio = DA850_USER_LED1,
6 |$ d. B+ j  |3 U, ?. _                .name = "user_led1",) ~8 I! |. G6 _" ?1 |' ~; a+ [
                .default_trigger = "default-on",1 n) H' [3 x4 Q3 `
        },- t  L# H# A* [" b
        {+ o) f4 h( j8 m4 S. ?" Y+ @
                .active_low = 0,
/ E, P6 A! x6 Z! b0 P                .gpio = DA850_USER_LED2,( q% i3 a8 H3 R
                .name = "user_led2",
# x& X3 o3 ]: s3 [+ j                .default_trigger = "default-on",
1 v! E3 z. l3 K  p. {/ B) i/ f        },- G% p1 u, z+ `% \$ W- ^, O# }$ s
        {
. h$ v3 w4 z4 G7 |$ ^! q" B) z: G                .active_low = 0,
% D0 p1 V* L5 F; y: S* X" L! l, S                .gpio = DA850_USER_LED3,
- q$ J8 O/ b) z# i                .name = "user_led3",
7 b- x  N" w% z2 K5 u7 _. x) j                .default_trigger = "default-on",
2 Q* S" {* ?/ e8 O/ m        },
% |$ f4 t+ k$ c2 @4 f4 U! U" k# L/ ]};5 G: O# D7 T! E( Q# K
" @5 o: J7 c8 T$ |/ G0 L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! h! z% g6 g  W% ~5 o( Y2 E
        .leds = da850_evm_tl_leds,
' ]$ v* @; W. E        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 A# [. y- H. O# x. ?8 y};9 g' n2 N) c& L

5 y6 `' C) F9 i4 M, g$ x( q) r! Estatic void led_dev_release(struct device *dev)
% r1 e# ]! f# g4 c1 A# r/ S# A{
' ?8 \4 P9 p% ^& I3 N6 Y/ X, W: |};
1 J* f$ s7 q6 H3 U' M8 r0 p" v. I9 b
static struct platform_device da850_evm_tl_leds_device = {
  i. G5 b- X' _) x        .name                = "leds-gpio",6 j7 P0 C1 m- T7 }
        .id                = 1,
; Y6 Z# B; x: O; e        .dev = {# a4 z% S4 B& t5 c# _; o" f+ L
                .platform_data = &da850_evm_tl_leds_pdata,: {+ d& _$ {8 }0 g' e$ k' `
                .release = led_dev_release,; n  l& e7 T: o
        }
8 e3 o8 f: ]+ S6 q, ?- ?& V" J( _3 Q};
  u; I! A* }8 u5 z  B4 r
8 d5 z  g/ i8 }1 Fstatic int __init led_platform_init(void)
# g0 r7 H5 c  p% C! c6 U8 j2 C{8 [! E* m0 H* L* o; c; d/ |( f% i
        int ret;* @4 {" y# x2 q: }( k7 J
#if 0
! C! n9 `1 j2 F1 L5 K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ Z5 u5 |* P% O. |6 T
        if (ret)7 X+ b3 p" D5 a* S; ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- U: Z/ p5 x0 t/ r1 W3 {9 `
                                "%d\n", ret);( n* e' [, X3 i$ ?: j9 e3 A
#endif
* \! i/ S9 U" \' ?9 h        ret = platform_device_register(&da850_evm_tl_leds_device);  q- z, ?* T9 e. e8 a) I+ I3 o
        if (ret)
8 Z& u5 w2 x) Q/ {. k0 V; B% O8 B7 {                pr_warning("Could not register som GPIO expander LEDS");' D2 q  E5 ?9 _7 @( S! f3 u
        else% N" a2 s9 w. a5 g& n
                printk(KERN_INFO "LED register sucessful!\n");
7 K% Z7 {" p7 ^3 A5 Y. p
4 D: i% R8 ?5 Q0 U( w; w        return ret;& v3 o5 m- i4 m5 N: u
}' H$ e  ]4 M7 Y+ J% u8 k
3 b* i/ n8 U7 A/ W
static void __exit led_platform_exit(void)6 [9 X: g, u/ g3 f! P
{3 K7 W5 \' B( j- e2 t
        platform_device_unregister(&da850_evm_tl_leds_device);( o, o. u! B" ]) J& E+ e( C
7 i6 H7 ^' A3 F# W
        printk(KERN_INFO "LED unregister!\n");$ e! V3 }9 N7 @) O0 L& e; }
}' D, U; ?2 c5 H
9 P2 Q3 w9 E9 b% e
module_init(led_platform_init);
9 {4 l- o" y0 e5 g+ v  |module_exit(led_platform_exit);
1 U2 T. S* S) Y* v! H# U' ]
! H! {8 ]1 E' Y/ h) eMODULE_DESCRIPTION("Led platform driver");
+ h: M, t8 K" X+ pMODULE_AUTHOR("Tronlong");7 ^0 L( x, t0 s/ L* i4 B
MODULE_LICENSE("GPL");
5 a) M0 |! z" O" g  y" x+ p- H* k% R0 f9 o6 l5 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 15:15 , Processed in 0.036054 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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