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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 m$ c( ?: N0 `2 {) p" j; i: e
#include <linux/init.h>  U3 u* X7 d# J( D' h
#include <linux/module.h>
8 h. @* l9 |) a4 `+ h( D/ i9 q#include <linux/kernel.h>1 G) H6 ?) B  M+ ~
#include <linux/types.h>
/ i, h: Q- J0 a- l8 n2 V#include <linux/gpio.h>- t: ^; B( V: m: r  G  W+ ]
#include <linux/leds.h>
, V7 X, l+ s/ c#include <linux/platform_device.h>* _" T) O' P" |+ E  k
+ }6 q' i' b; ]) F) y* v
#include <asm/mach-types.h>- E) U! c$ e" S. T) [
#include <asm/mach/arch.h>6 Z' _5 v# i5 G0 A
#include <mach/da8xx.h>
" s5 j; p- O2 ~/ x#include <mach/mux.h>( B2 D5 C: j. p( c. h
- n0 F' m2 z" j' z7 F; T( G
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- G, O5 I& ?6 s5 S' M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" V; L0 l7 z" A1 ?) V# }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 G( J( ~' u# ]4 _
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 C! X( a: e. D2 b$ H( ?4 ]0 h* [% }" T
/* assign the tl som board LED-GPIOs*/7 [: n2 N5 N) L3 d+ \' O
static const short da850_evm_tl_user_led_pins[] = {! c; s  j! ^5 ^( b
        /* These pins are definition at <mach/mux.h> file */: l& j. e1 U* S( D  g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 A5 U. ]- r/ U7 V        -1
1 [' Q" W6 p7 b3 J7 j};
1 v1 A( d( Q! Z1 p( U
# L0 r  Q7 T5 x9 p! [- T& [static struct gpio_led da850_evm_tl_leds[] = {
; W+ \" k$ J6 s( S/ |7 I, }- V% T9 y        {  G* B; c8 B: U0 A6 `- b
                .active_low = 0,8 D% n+ ^' ]! s- @( _
                .gpio = DA850_USER_LED0,
. F. h; i, {; g! [* v                .name = "user_led0",! z) y$ D2 Z5 x
                .default_trigger = "default-on",
! f8 G8 j6 W% u0 ^2 l, V3 [        },
7 g3 w/ z+ R0 K8 l; T        {3 X" K7 s. y- J1 G3 x
                .active_low = 0,$ L5 z3 X/ Q. W0 D& f
                .gpio = DA850_USER_LED1,4 ]) m! v& D: `7 _6 W1 Z
                .name = "user_led1",
# t4 q7 k) ?) Q* L/ v' ~. M; |6 B                .default_trigger = "default-on",2 b- ~9 ?0 `  E5 q$ @4 l
        },
. H+ Z5 N, p# L  Y  K        {
3 P) U) M( L2 n; `                .active_low = 0,
" N) m$ b8 a9 R: h                .gpio = DA850_USER_LED2,
. W+ P& J7 D' t8 d8 N8 u                .name = "user_led2",2 c2 i  X- q5 \- T
                .default_trigger = "default-on",
, W5 [/ ?: z& ~1 N        },
5 b) j' k! `) Z        {
/ e) e5 H- O. Z                .active_low = 0,: ?/ [' `# y8 F+ e6 j7 Q
                .gpio = DA850_USER_LED3,
0 t4 ^& _# x7 Q                .name = "user_led3",
2 `% i5 ?% J  t! m                .default_trigger = "default-on",& X& B4 j$ X4 P/ A0 J
        },6 h! Z, v3 A1 s8 f) N3 D9 R
};- O% z8 `; _' Z% x! ^

. x6 F0 n3 Q8 s+ I9 ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* I! M* u6 U+ w- H3 L3 l. ^8 _
        .leds = da850_evm_tl_leds,2 A1 @* J$ o5 d& y3 {! B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ w, ^1 b' e& C& I; o  j
};
9 l7 ~  ]. R8 d
' ]5 T( v5 z# z' y) g6 n5 ?static void led_dev_release(struct device *dev)6 c+ O$ ~5 `! m4 `$ Y
{" y0 i7 F  G- }1 S
};3 z, ?9 b7 d! G  v

- b  K: q* m1 T9 z* ]static struct platform_device da850_evm_tl_leds_device = {1 U% R5 J* Y; y6 S, m
        .name                = "leds-gpio",
6 ^# X$ q" S" j% p( c  ~' N1 u7 X        .id                = 1,! e& Y* ?# `  T, l$ Q: L: }  J$ e
        .dev = {
- S6 l: ?* q2 p# X5 Z                .platform_data = &da850_evm_tl_leds_pdata,5 J0 z4 c$ @+ l0 [4 ]
                .release = led_dev_release," L0 K6 I- t4 K. J" H8 a& K
        }
5 M, _' K5 r8 W# F5 J! v* u};
; n0 w3 c) d) x: t- ?4 Z+ K! t0 t- G! h, g
static int __init led_platform_init(void)
% U) s4 G- m! `" j{
" g$ a# n& y2 v/ j: _        int ret;  t4 O6 l9 p) Y3 H, g
#if 0
* t2 x4 ?5 R* ~- Z3 \  E4 H        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# C) A* E( d0 q. c
        if (ret)
# N5 H$ W/ \$ O/ K: v% I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ O1 d% u% D+ |. g) K- T5 P) B- T                                "%d\n", ret);
1 ^) O  K- z2 C) n$ \, g2 C- r#endif
  s9 M7 I; }* u# r9 b- o        ret = platform_device_register(&da850_evm_tl_leds_device);
" K5 T4 d! }& g7 f- ]2 G2 L        if (ret)& m9 l: u( B! [$ i
                pr_warning("Could not register som GPIO expander LEDS");
2 `0 {6 J" r4 ~5 \" I        else; @8 S9 _; r6 @" g
                printk(KERN_INFO "LED register sucessful!\n");
- N1 B6 N" G. @7 O, `6 ^$ @  n' r2 N' B+ w7 l% C
        return ret;
4 w+ v) W) {/ d}
! N6 w( K) m9 E& Q
, i! U$ [7 a" H9 u9 ~static void __exit led_platform_exit(void)
5 ^' W# k% j- N# A: a) H, p{4 j" Q% N8 T; i9 M  y. ^
        platform_device_unregister(&da850_evm_tl_leds_device);
6 x9 }4 {8 F; z5 h& z/ K% V1 l: T* o$ V# W' w
        printk(KERN_INFO "LED unregister!\n");0 V/ I1 I+ o& P$ R" C: a7 [, [2 m
}
/ b# D/ `. y5 @  v; w: ?+ Y. W4 k/ f7 z9 E* m5 D/ S+ c1 I
module_init(led_platform_init);7 w* ~5 S/ }& |
module_exit(led_platform_exit);
& [- Y) {( o; b" O# X( j9 W5 R7 N0 ?! s5 k, R
MODULE_DESCRIPTION("Led platform driver");
9 F* s6 e! T9 \9 u' jMODULE_AUTHOR("Tronlong");3 r# O- d) c. n8 Z
MODULE_LICENSE("GPL");7 D2 {2 Q1 u* x( n% t

8 z1 j/ y8 O6 \% S. R( C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 21:52 , Processed in 0.035551 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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