程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ i$ w% p( t/ x  c1 [
#include <linux/init.h>. w* o& a, b) J- U
#include <linux/module.h>
) }1 z: \7 U; `+ ]3 @#include <linux/kernel.h>) g# Q* Z5 a9 I; o1 ]( y; I. z
#include <linux/types.h>
9 d' t4 B2 U9 {3 D#include <linux/gpio.h>) M% d( L9 _( N+ v  }; M
#include <linux/leds.h>7 E# `6 a7 }* F% ^
#include <linux/platform_device.h>
7 U  I5 l% h" T, l6 `6 ?$ |( X8 Q% |; Y# O# r$ d
#include <asm/mach-types.h>$ ^0 |) i% Q( {/ c" j
#include <asm/mach/arch.h>' S% ~4 l( a, m! H7 k8 a/ h2 Q
#include <mach/da8xx.h>
+ v8 U7 j# ^9 t3 M5 z' L#include <mach/mux.h>, _2 O7 Q1 w: S, w
) p% B; S# ^" j1 @+ u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. k& }" W# P/ \0 z" I1 a6 p' X$ u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 x1 Q( s, i3 h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ l  Y8 l; b! G  p5 [2 }
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 p- Y' F- [! R& P" i, B7 o' l4 a
( Z9 r3 L, ]; t5 f* I
/* assign the tl som board LED-GPIOs*/- p  R- i9 o' e. ~% q
static const short da850_evm_tl_user_led_pins[] = {
. {- J6 `  M/ ~: p4 n        /* These pins are definition at <mach/mux.h> file */
2 A( R' ~  g3 W" v- a4 t% V; Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 @% h. \6 `9 a
        -1
6 c9 e3 u6 h; i$ w; K};- r& P( L& c% I6 \
; m  S0 r5 |9 h5 o& i8 m# o( H
static struct gpio_led da850_evm_tl_leds[] = {
; ~8 j  p) D; M. E5 e2 |! I/ D        {! T. p  m  N3 a  l1 @8 I
                .active_low = 0,
* h0 g5 y) Q4 `9 ^8 P                .gpio = DA850_USER_LED0,% I/ a8 n& U% w
                .name = "user_led0",
% ?) ^. c; S" X: m. }8 K6 h# F                .default_trigger = "default-on",  E; M! v/ _9 a( O
        },
0 {* V9 t/ Z" Z1 Z        {# u# \) w5 ^: B6 @. f! G
                .active_low = 0,
7 ^; z+ i0 X- ?' m! u                .gpio = DA850_USER_LED1,1 x! S2 O5 Y0 D
                .name = "user_led1"," w) t3 B! {4 q0 L$ C& ^
                .default_trigger = "default-on",
" X3 \% j/ o, O1 g" f8 Z        },( V$ }8 o# B) A! T& Y6 `/ M& F: w6 |
        {. J4 I9 p, l# b7 R
                .active_low = 0,3 K7 m( S' U$ Y4 R
                .gpio = DA850_USER_LED2,
; e8 u* H' a. Q+ s% X- Q                .name = "user_led2",% G6 r# c2 |, M4 Q! u1 b
                .default_trigger = "default-on",
2 T$ X5 l6 s& C% ~7 b! Z4 a$ |) Z        },1 ]' ]5 K  S  p  T. ]/ ?0 V
        {1 t* A! X3 r7 @, }) _1 r3 p& ]) f2 L
                .active_low = 0," \1 E- a4 h. {- ^% B
                .gpio = DA850_USER_LED3,
0 H) l  x; S, T0 K3 D+ a                .name = "user_led3",- U) v6 F5 v; _% G. J* }; S9 l
                .default_trigger = "default-on",
+ n+ f3 }- `% N# h' {        },
& X8 @& n0 Z5 v  C: F+ `};
6 Q+ G1 t! f' C* J/ H+ ^* M7 l& S8 f- I6 N, h0 D
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" M5 Z. I5 x/ X1 U8 H
        .leds = da850_evm_tl_leds,
0 J5 Z. v7 I$ H$ P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' X% E$ J# M* i- z
};
5 k! a/ U! R% R) _' E5 |0 r
! I/ G( ~, {' T& s  U3 g9 astatic void led_dev_release(struct device *dev)
2 A5 U, T, z( j5 y5 l4 K% {{
  U1 L2 b" n3 i9 F' S! A( D& Q};
& v1 G1 }! w7 k' j( ~# W+ k# O& D" U5 G
static struct platform_device da850_evm_tl_leds_device = {
7 a9 M% s1 p$ l% V        .name                = "leds-gpio",
5 z4 O: N+ l1 Q6 i3 Q/ l7 m        .id                = 1,+ i! z& B/ D7 U- C; D; j, }
        .dev = {
. @' X/ t4 Y; _% B9 g! l                .platform_data = &da850_evm_tl_leds_pdata,
) e3 q. V  X8 a5 ?6 e" l) t                .release = led_dev_release,
  V; H0 _2 r1 F- P5 w# c# O  o        }. x0 \! b+ x& s$ L, f- L
};
8 Z& @3 U& ^3 T# Q8 F/ N
) T) @& e; H+ x$ @static int __init led_platform_init(void)
( y. B( Y: X1 t1 `{
7 w4 B+ p' }+ H! n: @; E: H        int ret;
8 }5 G2 I& X" M/ B6 O$ z  N, u  l! B% z#if 0" e1 R3 T: P- _6 Y( Y1 r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; u7 r3 ^, k9 f$ y3 q$ L        if (ret)8 l+ t% y9 s4 g) i6 ]6 V3 X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 X7 v# v' n0 o3 M& B, D6 b7 \                                "%d\n", ret);
9 a5 h9 D% e/ B$ [3 e: O8 d) l#endif! n) T5 V1 m  X" Z4 M
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 `. S6 Z) V4 V- W& x" C# I        if (ret)4 Z2 P: u' l) h
                pr_warning("Could not register som GPIO expander LEDS");6 v6 a6 v. }# F7 J4 h7 l
        else- B5 |1 G* j: d, O" [* |0 v
                printk(KERN_INFO "LED register sucessful!\n");# y& z7 c3 z0 v. x8 w/ X7 D7 p
& _& ^1 H6 f. p' H0 p; d6 T, ]2 L
        return ret;" I8 O" B) j. ]- T
}# a3 n% X7 s$ `5 z2 \( Q, Z9 G7 _" K
) p/ Z: J0 N9 m* ]# `8 }4 v- g6 d
static void __exit led_platform_exit(void)
5 }7 g- R, k2 j1 w5 B+ v: J{
6 N0 |3 g4 l% i        platform_device_unregister(&da850_evm_tl_leds_device);& Z7 G* G* t( r

  J! E/ P) K: ^        printk(KERN_INFO "LED unregister!\n");
9 X9 V% \. ]& v3 J1 ~# S) |+ q8 P3 l" b# n}
5 y6 X- n6 J8 S( j) i
1 ^) c3 ~3 q* S" o  }& P. Ymodule_init(led_platform_init);
9 y' [0 B  i: q- h; dmodule_exit(led_platform_exit);2 M. u) K- n3 `
" t. C6 F/ |- n8 v
MODULE_DESCRIPTION("Led platform driver");
' Q& w- a( s4 n, G3 VMODULE_AUTHOR("Tronlong");
6 `3 m4 ^1 B3 j4 L. k) TMODULE_LICENSE("GPL");- F( K8 v1 F. B3 \( V
& Y3 S$ z) R, D" U; h& }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-18 17:38 , Processed in 0.039046 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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