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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( |7 y; g9 I7 m; T' |0 w5 s4 h; Y
#include <linux/init.h>
7 i3 G" l) p& K8 N/ w8 J, f* h) ?#include <linux/module.h>
/ V* V0 }* @' F8 L! ?3 d$ M#include <linux/kernel.h>' k' F1 F: G: H8 g
#include <linux/types.h>
: y" R( z2 J; E6 M. H  h#include <linux/gpio.h>
& o, B6 m" w/ t" }#include <linux/leds.h>
9 e+ e; G) M6 r+ b! a# n#include <linux/platform_device.h>
+ D* X' A9 Z0 L+ S. ^4 c7 f4 p" O4 e' S+ a5 `5 u" o
#include <asm/mach-types.h>
/ p0 e& k. u% L, J5 N8 `  k2 ^2 U9 e' k& ^#include <asm/mach/arch.h>: X) Z; ^8 m& x; Y9 S- F8 E
#include <mach/da8xx.h>  `9 ^+ ]9 f, B# r$ p  C
#include <mach/mux.h>: a$ P  Y- q9 L0 w3 `

, o+ J/ Y# M1 D9 R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& v" j) p7 Z$ p" M$ S) a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* y2 X% c* z) [# h5 c#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' C$ r# ]2 u3 u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! s7 a# X3 t: H2 Y! Q- o) [, R8 z0 K$ O
/* assign the tl som board LED-GPIOs*/
. h5 f- l, e- G$ d  T) r2 |  t+ ?7 Tstatic const short da850_evm_tl_user_led_pins[] = {
& @7 }# _- f/ P/ V        /* These pins are definition at <mach/mux.h> file */5 s' |' H8 ^, j; p( ~
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! F; R$ T3 A) \* i) n; V: [# p& u        -1
$ q, r/ i9 z1 N6 |};% }" W* O) J9 |

* b5 W& L5 H+ X8 M" wstatic struct gpio_led da850_evm_tl_leds[] = {
2 m' x; x5 Q9 A9 A' X3 ^  ^8 H        {
% h" f6 C" ^  Q: M* r                .active_low = 0,
0 `0 X; w% S3 |+ M2 ?# v$ \; C                .gpio = DA850_USER_LED0,4 ~" }% w2 v7 y6 ]' F0 S( N
                .name = "user_led0",) v/ c. f2 H6 I
                .default_trigger = "default-on",
- L- j8 z; X8 `6 Z2 V& a        },
; E+ K- @- }7 q        {' S/ B5 M' F5 f% ?
                .active_low = 0,  s- Q( [# x' N6 }* F* |" h/ o
                .gpio = DA850_USER_LED1,
- u$ N0 R) Q# P% q! n. i                .name = "user_led1",
- f/ d* O1 X- O2 ^. ^& M: m                .default_trigger = "default-on",
/ w: U4 I" c5 B. X8 `4 k7 r        },5 Z5 F; y) N3 b5 Z& {
        {
" l8 y% b* q) v+ ^. ]" g                .active_low = 0,9 {5 I1 o/ E' M: m
                .gpio = DA850_USER_LED2," z' H& Q" D! C
                .name = "user_led2",' m: f& k5 K. q% J
                .default_trigger = "default-on",
4 F3 Y6 Z, R7 S4 J! P- B% u1 @: G        },
' a/ ?. P* w- K        {/ e$ j' t" N! {* Z% v7 c- m$ A
                .active_low = 0,6 P5 s# d, s5 N4 a$ K
                .gpio = DA850_USER_LED3,
) ~' c) E0 W* D% U$ M& J! [3 Q& u& j                .name = "user_led3",
8 x; U- ~: M, c& H1 P% q                .default_trigger = "default-on",, o8 S1 t" d" v0 T* R7 w
        },( P9 P  e( H% z2 O! r: F% Z! c4 \
};
) o7 Y, V% C9 h6 s+ l. }" S0 b5 b, E) L+ H6 O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" {/ q/ A$ s8 a( j4 n$ Z3 U        .leds = da850_evm_tl_leds,
& F/ `; T8 d8 d8 T" Z0 \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 _# I/ `/ Q" G# B, |$ }6 K4 q& H& G! n
};2 _* k) [; x) B4 a; K

- F6 i4 p+ t! ?4 p  \static void led_dev_release(struct device *dev)
9 w: ?" g) Q3 k" N# y" e- P5 Z{" I! c& Y5 A2 i0 Q
};
: c8 [: S& X6 d( Q: F+ a: g
8 g  R5 G7 c0 x9 bstatic struct platform_device da850_evm_tl_leds_device = {0 X4 J5 N# q% \$ Y* a
        .name                = "leds-gpio",  j2 p, V8 ?+ ?
        .id                = 1,) s8 h4 E: b6 X* I, L8 j
        .dev = {
; m' [/ n$ m/ ~8 ~& W3 Z. k                .platform_data = &da850_evm_tl_leds_pdata,+ U# F( S+ @1 {
                .release = led_dev_release,1 n" t+ D( M8 d- }- Z5 G
        }
7 I2 d: [4 c) ~" Y6 D& p};
! u3 H) u' O! H: {7 |- H$ p0 B( E
3 g) n+ ]/ e" X9 H( T% @4 [$ K( Sstatic int __init led_platform_init(void)
1 L& T8 Q$ W9 R* v{" X# ^: I- D; A, r% o% ?$ Y' y
        int ret;; Y& }8 F- T  @: `( d3 s6 l+ h
#if 0$ V2 h9 D2 e/ s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! q+ P& }, ]' W& H
        if (ret)
# K2 s3 w% ^  G7 B$ O) g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% x' b3 r5 t* e; w+ ^5 ]0 Y( k
                                "%d\n", ret);) M) B$ K5 U4 Q; \5 u% p6 v0 b
#endif
0 d  ^' r' O, v$ R* I) ?9 n# J        ret = platform_device_register(&da850_evm_tl_leds_device);
" F( X- }! x% z" m' A. p- X4 I        if (ret)* v2 U8 N9 T- _' P
                pr_warning("Could not register som GPIO expander LEDS");! Z% v+ g$ h$ h8 v
        else- B6 }# P; j/ O0 @. ?! N" A
                printk(KERN_INFO "LED register sucessful!\n");
* Z: G$ O0 o6 N* i6 G3 M+ j
) R  u* y% B# h6 E- F$ g        return ret;
2 b5 x  J  Y- ?. C}! b8 H, \$ l( u1 A; m
& q+ Y+ K+ V6 E& I' D% h2 ?
static void __exit led_platform_exit(void)
5 \1 \9 U. Q+ \- R6 I8 B  j2 j% @{
' Q. ^9 f( u! X" B# E        platform_device_unregister(&da850_evm_tl_leds_device);9 G9 B; t* I! e# \8 n9 {2 ]
6 U4 G. f5 q" B3 o6 J
        printk(KERN_INFO "LED unregister!\n");
" B/ L% m  M' e" C' `( Z}  b4 {6 ^5 e+ G4 X* I

8 v6 }9 q/ @1 c! h5 Zmodule_init(led_platform_init);5 q2 R, \, x* V+ Y; f2 u
module_exit(led_platform_exit);* |& t, O. |- m" _7 r
: @8 D2 N( c! `; d; S
MODULE_DESCRIPTION("Led platform driver");
6 j* Z5 c5 H% n/ _  mMODULE_AUTHOR("Tronlong");9 N9 H3 D! H6 Q* m" ]$ ?% |/ {* e
MODULE_LICENSE("GPL");& n1 ^. M3 G/ o# X/ p6 J/ b
/ b8 T2 r% X0 Q8 h- r+ K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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