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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. C& i$ W- u/ C" v" L#include <linux/init.h>
3 ~! u6 s9 Y: q7 r, h2 D: x#include <linux/module.h>7 g2 ?* g! u4 k8 i5 M  t
#include <linux/kernel.h>+ ]0 b; D% k7 N# S5 [
#include <linux/types.h>3 a, W, `7 F2 b3 K
#include <linux/gpio.h>
4 w8 Q1 f: _# ~) X: ~1 ]#include <linux/leds.h>% \2 d2 T9 q& j
#include <linux/platform_device.h>3 t. c1 m: W6 i0 n
. L6 p  J% I: A6 ~6 H! k8 @  T
#include <asm/mach-types.h>/ o9 ~" N+ k! u  H/ q6 s4 A
#include <asm/mach/arch.h>
" M& k, U# _0 @) d4 a#include <mach/da8xx.h>
* @* q" @5 H7 t2 V! F# G9 Q3 e#include <mach/mux.h>
! h, G: e! ]  }( n$ v9 ]! h
0 ~6 E8 _  D+ Z; G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! h4 M, s# `8 S9 [8 O
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 A8 K$ Z& L; b$ s. {#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  [$ j; C- c4 B/ p8 K5 N& L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! d1 J3 t& `2 D/ O' z1 m# B
9 P: S2 x# C" o4 l7 P6 q, n
/* assign the tl som board LED-GPIOs*/
9 ~& y' O; C- A1 i! F( p; }. Y, L( j/ Mstatic const short da850_evm_tl_user_led_pins[] = {- `+ m& w0 V  D( R2 K5 @8 W
        /* These pins are definition at <mach/mux.h> file *// c3 H. b4 [( X; c+ {9 I- @. I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& D; D  _' T8 P& }  V' j( `        -1
' o1 ^, `+ D7 R' o) J( Z/ j0 v};
* L6 L* ~* @% g) Y# {: W
' N/ `$ H+ y% ystatic struct gpio_led da850_evm_tl_leds[] = {
& u- G0 _, d: u/ a) I0 l        {. Z& y" d0 s- P, d) K9 C
                .active_low = 0,1 B) n+ U6 H- b
                .gpio = DA850_USER_LED0,/ x! P1 B. f" o; M1 W) @2 c
                .name = "user_led0",
  b- `1 }1 h* x8 }0 l4 p                .default_trigger = "default-on",
( p5 R5 x1 S( w1 V1 O4 m        },
$ ]9 f6 M, i6 m/ X- l        {
) C4 z6 `( p0 ~( m                .active_low = 0,# E' N* X- y2 A  X" l- w7 G1 H
                .gpio = DA850_USER_LED1,4 u5 a# k$ H6 O7 J% r! m
                .name = "user_led1",& `# H1 |8 v4 [6 U/ n" k
                .default_trigger = "default-on",
9 _' M( R4 f0 F% b        },
4 J2 m4 ~. R. s  f- Y        {
3 E( `9 n  Q1 }* V0 o                .active_low = 0,7 M. u  u) M7 K" G, _
                .gpio = DA850_USER_LED2,* f  {) i0 c( i5 B( f, h
                .name = "user_led2",
7 M" j" C9 U! p                .default_trigger = "default-on"," [( B- B* B# l+ t
        },
$ A5 H! o. u) I/ ^, d9 a        {+ I4 g) V/ o. X
                .active_low = 0,, p+ y% D. D; u) V! J( c, M1 G$ D
                .gpio = DA850_USER_LED3,* n) n0 O& s. x
                .name = "user_led3",
. H; N  ?' n' G                .default_trigger = "default-on",
' }- I6 C6 Q# h) }0 g/ v" H        },& f5 e: }8 k9 X* N* P+ Q% @' ^
};+ j# u& s. |" |3 g

' @: V, ~% T4 g8 t& vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! _" ]* [% E1 v! v5 @! J, q/ u        .leds = da850_evm_tl_leds,
6 a/ k; n4 x2 g) n0 M) Z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 H5 ^  I. E* m& V
};
( b' U0 ]/ c; O! u% B4 _2 k2 K. a# y! k* l% }% d3 q! ^/ n' J# ^3 B5 G
static void led_dev_release(struct device *dev): r4 Y9 X" O& ?& @* f
{
* W4 {2 `/ {- D* N4 w};
7 r% o" G9 f9 {  Z
9 B% w: e: X7 j& r: Ostatic struct platform_device da850_evm_tl_leds_device = {
+ \$ k; o) ~7 ~$ g" m& O; s        .name                = "leds-gpio",
" X6 o1 \/ S4 c        .id                = 1,
) S3 [% ^0 q4 _& U        .dev = {
4 l- S/ r1 h, ?, k                .platform_data = &da850_evm_tl_leds_pdata,
' R4 w4 _& T4 L                .release = led_dev_release,
: B$ G# C4 O$ Z0 k' V6 x        }
& |  H) d4 @% i8 }( C};, W2 j$ X$ b5 N
" R" `/ \! n# G& m: h3 o
static int __init led_platform_init(void)) N& k0 V7 |( a& r% M1 r
{
- t- x  Q6 @0 [1 Z+ b6 ]. ?% t        int ret;- Q; h3 @. t2 |* s
#if 0
$ B/ c: y; T! C, @, ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% X- d% |/ t) L. Y        if (ret)/ l0 D/ y- w4 c& D! S' }% z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ o6 t7 j+ a( S" s5 J0 Y* u
                                "%d\n", ret);
+ U7 X: ]- i6 K: {3 F#endif2 y- S  x& k$ M7 B
        ret = platform_device_register(&da850_evm_tl_leds_device);4 \  t; o' V  W' M' B% L5 {
        if (ret)! k& }: {- L8 K. V( e7 a
                pr_warning("Could not register som GPIO expander LEDS");6 A* p" }4 W. ^- H% D
        else1 x+ s3 N( N2 Q+ v( D: v
                printk(KERN_INFO "LED register sucessful!\n");. ]8 |3 U5 e; j8 n5 P
) Z3 z# t+ _2 L0 `
        return ret;2 q; z4 W" P$ ]( G$ m
}3 S$ q  Q) k: a9 z: l6 N

3 \6 o  k+ e+ R5 V6 ?8 r3 ?7 t/ h& vstatic void __exit led_platform_exit(void)2 q) G4 D- W9 O
{) o* d) `* b9 t6 I
        platform_device_unregister(&da850_evm_tl_leds_device);
, a! ?- A4 n  M! D' F  C, i7 K, Q
6 K' O* i8 q/ y  @, c2 z        printk(KERN_INFO "LED unregister!\n");
) k& P( P9 C# W7 ?8 e}. b) N& V8 @$ e9 K5 `- d

8 N* r$ A: O& [* ]2 Wmodule_init(led_platform_init);9 x- v2 V- W5 \2 d1 T0 `3 X3 H
module_exit(led_platform_exit);5 A4 n6 T  z' z/ Q* m' o+ G
% c; @: I- D4 n4 ^' g4 [0 |, X+ {% V
MODULE_DESCRIPTION("Led platform driver");
" S! ]- a1 P; S( h6 |, O' Z( k. \MODULE_AUTHOR("Tronlong");7 X- G0 m: Y  y  S
MODULE_LICENSE("GPL");
' ]# d+ M. Z. c& t
* H0 t# R0 G" d  i! x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-17 00:08 , Processed in 0.037522 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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