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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 d( D1 ?3 u, Q! L" q#include <linux/init.h>
# j( T  H: n/ I#include <linux/module.h>
8 _" B4 }+ W& d: w1 u#include <linux/kernel.h>$ E3 X% d7 K) J
#include <linux/types.h>
, s- f0 C$ d0 v#include <linux/gpio.h>" H: A9 D( O( z) A
#include <linux/leds.h>
4 d) R3 ]! d# M2 B#include <linux/platform_device.h>+ A( W% C/ J6 I: o$ }" [6 ^9 z- {
( c+ F1 R% W4 ~
#include <asm/mach-types.h>) r8 H% e# G8 ?$ x' Z
#include <asm/mach/arch.h>$ @( W% |3 Q; ]9 R3 L
#include <mach/da8xx.h>
8 M$ r+ z/ g: X4 h#include <mach/mux.h>1 g% M: y6 r6 y9 k

3 ^% J' `& L& Q$ Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 B  g7 L; j3 z- c  z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 a- c9 X7 o* {. t# Y) N/ E+ f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( U, p$ k% F5 m5 D& [) y/ o+ D
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& I2 u( ?' h4 e0 X6 L6 _8 h$ E
6 @5 o7 _+ v: ~0 j9 t
/* assign the tl som board LED-GPIOs*/
$ E* T. K' b, ^6 r# Ustatic const short da850_evm_tl_user_led_pins[] = {+ {% I% d' d7 Z6 L$ K" ]1 y
        /* These pins are definition at <mach/mux.h> file */
" Q+ s1 R1 ~- Q! q; a: |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* {" }5 f  t6 ^! |2 v8 Q: y        -1
7 o( ?# w- k; v1 a1 @; ~. q* v};
# l% `$ b  o' a  k' A, o8 g7 b0 {, T% x; I. n" [2 R
static struct gpio_led da850_evm_tl_leds[] = {- ^  g4 ]1 @6 O0 i
        {
( M6 R2 c5 L# Y                .active_low = 0,4 t6 ]; ]2 X' K) D* e: f2 Y8 j
                .gpio = DA850_USER_LED0,
" J3 t/ c' [0 R; ^( \! p                .name = "user_led0",
0 P# o7 k' Z1 d( P) }                .default_trigger = "default-on",8 J3 U$ s# \/ R. Y" H
        },
1 x! t' N+ _& N3 a$ v  U- Y        {( z- c8 t7 V1 }& d  d/ \) A! a
                .active_low = 0,( e. m! z- ~! t0 n
                .gpio = DA850_USER_LED1,  R7 c2 ]* p# E, T
                .name = "user_led1",+ t; F5 V6 U1 I- y: _8 q1 J7 D
                .default_trigger = "default-on",
7 s( G$ O3 }$ s        },; `+ y# @/ M$ u/ x1 S- ?% p! w
        {( r0 l2 E+ N7 w+ z  a
                .active_low = 0,0 p, h- K) x2 @3 H/ @4 d& q  i
                .gpio = DA850_USER_LED2,
8 e, m. N, K' H( y! T                .name = "user_led2",
( t5 K* m% o1 X( G                .default_trigger = "default-on",. y# x- z8 ~* |1 v( R3 v
        },4 ~. Z1 |) k) ~/ v, Y4 `
        {
2 d$ H1 ~! ?9 @4 e                .active_low = 0,
" `8 k5 u: L* E/ P0 q9 @+ w                .gpio = DA850_USER_LED3,
% l0 y$ s! G  q$ G. A  g                .name = "user_led3",
7 X3 n8 q% s3 Q# s- Y                .default_trigger = "default-on",: B  Y. b- `2 {" n
        },
" W3 ^* m1 ~. a% S};$ p. w5 J" y! c+ z% |" e) x
/ {2 }2 b- b* ]
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 D6 R8 g- r; O2 s: ^- E        .leds = da850_evm_tl_leds,& B- E5 t* p. [; I& P8 v# @
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; m6 k! N0 x. \, m4 D
};
1 R6 r2 W( A8 h* M* a! q8 ]4 c# N$ [: C  }, n1 q1 H; R
static void led_dev_release(struct device *dev)2 k/ ]) c( n1 [2 B) |1 Q" [
{
  q+ P3 W3 [* l2 C/ m2 N};% x, v1 O! U) R' t4 [, B' t+ l/ ?

$ ^5 v# W7 I6 Mstatic struct platform_device da850_evm_tl_leds_device = {
# D$ I) S3 f- {  L# o$ ]        .name                = "leds-gpio",
- }! M7 L/ O( _; V        .id                = 1,7 |& r* P7 G( G$ O& p
        .dev = {8 b7 R9 T% c  m: X
                .platform_data = &da850_evm_tl_leds_pdata,
6 y3 m. ?! Z9 D- d6 N$ ~6 o+ V                .release = led_dev_release,
$ U  T% @2 ^" q3 ~( r$ I        }
% c$ E* F, n& J};& B. i  z2 N+ `3 T. ]" G, w6 d* C

1 n6 j" B% R3 h$ v3 b: |static int __init led_platform_init(void)
" E0 `# U7 L) [' n; v{
( v  Q' |' Y  z. v# Z        int ret;1 V1 Y7 V: l+ D; \5 Q# K; S+ x
#if 06 V! S' W: v2 Y0 V7 r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; v+ u- o  ]5 X) Q" {+ E0 U        if (ret)
/ A$ c7 O- c8 p: v  O" H; {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", x0 H7 T: f1 ]% ~
                                "%d\n", ret);/ V6 u4 {% C  Q) c7 D$ S9 d
#endif8 n# _1 _9 Q- @: g! j$ D5 O% _
        ret = platform_device_register(&da850_evm_tl_leds_device);' E. ?# |0 j2 I9 Q7 o" Y1 G6 g
        if (ret)
0 A7 m* G1 e& q$ T3 e! u4 c2 V                pr_warning("Could not register som GPIO expander LEDS");
( k, L; U6 r$ d9 Z$ {& [2 A        else& W9 Z8 i. v5 B- X; ?# ?4 p
                printk(KERN_INFO "LED register sucessful!\n");
! G3 |# H! W0 V0 v- a- c) b) h; n( ~" A- F, ?" ?, }
        return ret;3 k7 D1 a7 I# V: i
}
! Z! W1 l( ~. T- D: J6 E" S; J) @+ j6 F0 \- Y
static void __exit led_platform_exit(void)
. p/ j! |2 O" R8 y( i{
$ ?+ d3 F( |5 o+ l        platform_device_unregister(&da850_evm_tl_leds_device);
/ i/ U8 @! V: Y- b4 v' ^) P3 ^" o# b5 c  }* }, g- Q% o7 v
        printk(KERN_INFO "LED unregister!\n");5 u$ T2 A2 z/ S; d) s% K
}
- ~) u3 V, W! L. g# w2 z$ }3 f
1 f- J. W+ H6 r, U* `module_init(led_platform_init);. T8 B! z' g3 t- t7 R: x
module_exit(led_platform_exit);
% A1 r; E' B6 X# l
/ z% U6 [" A9 q$ D6 Z) Q( T! ?MODULE_DESCRIPTION("Led platform driver");
" Y8 q( ~' g: P& v4 d2 NMODULE_AUTHOR("Tronlong");* t+ p/ Q5 e0 |& Q
MODULE_LICENSE("GPL");; {+ R- ^/ q3 i8 H2 J
  B' A& }( _" f) \+ Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-18 15:48 , Processed in 0.035919 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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