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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 S3 T, k4 W+ v) W7 d/ a#include <linux/init.h>
  g# N$ ?2 h! ?1 V7 a#include <linux/module.h>  q& P  Q4 Y# A- n
#include <linux/kernel.h>+ J0 ]& J! w. h/ x( A! y
#include <linux/types.h>
$ U% |0 i# R6 s9 q#include <linux/gpio.h>/ r* h4 D' M6 G+ i- B
#include <linux/leds.h>3 P1 H* T. \! l0 R! d4 }9 o6 c
#include <linux/platform_device.h>
+ \+ a, h; \/ |2 ]& }# Q
. E/ r8 H7 x; Y# _) o3 p- ]. C#include <asm/mach-types.h>3 k' q$ I4 }' H: B0 m) g* Z- Q9 }
#include <asm/mach/arch.h>
$ f$ z* }9 \. Z- n- f#include <mach/da8xx.h>5 A+ t% I0 z" u: _6 @1 I) D
#include <mach/mux.h>  p7 [' o9 H, M0 m  U* V

/ @& A5 Z* Q% A. P: ~1 Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) I# o  u1 j/ e" c# ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), O' K1 k8 K( p7 F+ M- {$ ^& R8 ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& i( j$ k& T( u) u% Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 c. F6 K$ n, J, r
& [  Z' z% J7 A) _! z* F; F/* assign the tl som board LED-GPIOs*/! F* O1 I+ |' c0 g
static const short da850_evm_tl_user_led_pins[] = {& m3 F! |, T* f) [/ O
        /* These pins are definition at <mach/mux.h> file */
3 ~* E- p% ^9 c5 Q8 k        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 h/ d, X6 o8 _) e# }: S        -1
4 A, u+ w. I) d0 }: a};7 X' n4 N% j& j* H5 G/ ^: N

3 u( o' f9 u3 E8 sstatic struct gpio_led da850_evm_tl_leds[] = {1 t) Q# b7 U3 l5 X4 w
        {
; J7 S/ B0 j/ ^3 m: Z6 E1 R2 m6 ?                .active_low = 0,
* S2 C; j6 D; I. _4 C( v                .gpio = DA850_USER_LED0,4 L) L0 S+ |) |% p( T
                .name = "user_led0",8 S, J0 v, }9 |
                .default_trigger = "default-on",
& n; B3 G* ?' L( O2 k: i        },
/ _; a1 W2 z; J1 _. E        {. y" w3 u% g+ j+ h5 D, n' K* H
                .active_low = 0,
( b+ C7 Y7 j4 y0 W  n7 k2 |                .gpio = DA850_USER_LED1,* E$ L) i- R9 B' I9 b
                .name = "user_led1",4 ?; p' s; m; B' A& N. T" O5 x
                .default_trigger = "default-on",
& m- ^5 j9 T6 G- Z7 n6 b/ v        },  @) w( w" ~8 W' I; d" S
        {
. Q( i& p) h2 k; X3 q' A# f" {2 K                .active_low = 0,  Q4 }# A" b7 H$ q+ o  s7 e
                .gpio = DA850_USER_LED2,
3 m! I0 V4 }  y3 v! M                .name = "user_led2",
) [1 z  J  z: `, |                .default_trigger = "default-on",
/ W6 c* _% T+ r" Z' N        },0 s; `0 ?2 A! y; B2 j6 O
        {( z' H) ^) b  y; d! X8 t
                .active_low = 0,
$ `9 @9 n+ X0 d% e2 H4 m                .gpio = DA850_USER_LED3,2 x9 v+ P( E; S6 O7 q
                .name = "user_led3",) ~1 R' v: q( U2 x8 m
                .default_trigger = "default-on"," o# ]7 [4 R8 [' y' X/ m' e
        },
# K( \8 E3 E, S8 K. ^};5 }7 H1 p  j$ N6 d- [

& [5 O. S# i8 |+ h3 q  Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& S! F1 G" j8 ]8 k7 a- w: y        .leds = da850_evm_tl_leds," z5 |) R1 V* M" x0 f& H$ w, j- o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 g4 y8 g$ p; L; N3 H- G
};
; U* z# l% Y' Y( a( B. `( W$ @# a9 \* T3 Y( \# t6 ]9 }4 J
static void led_dev_release(struct device *dev)
2 X1 x: A6 |  X7 P4 z{
1 I$ m9 G& w! w, A& u+ ~};; ?* s; D2 P( @. G: J6 E
- f" f7 w, g& I. ^/ k
static struct platform_device da850_evm_tl_leds_device = {$ ]; U/ W; }2 B4 |
        .name                = "leds-gpio",1 L4 S8 y2 c$ G1 P$ _+ X
        .id                = 1,
! j' K3 Y& J9 L5 |        .dev = {, T3 c' m1 D! l! |' Y: H
                .platform_data = &da850_evm_tl_leds_pdata,5 i" e$ {2 d# T) U8 ~
                .release = led_dev_release,
2 h; W, f. d, z1 r9 G1 P        }
) [' M) a# O1 {1 `/ h1 f- X& E};
& X& @& U3 V% g& w' u$ n' [5 N  L9 \! F* P9 Z
static int __init led_platform_init(void)
+ a! v& \; v$ w9 ~9 z  m1 C) \. ~{3 _: S- x, A/ I9 z6 k
        int ret;
  D% W' h9 d2 y7 I1 q/ a#if 0) |# i! x3 N+ P+ C7 r/ D9 Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 e% b; E/ z( ~8 v9 d
        if (ret)5 l/ i* h+ J6 w( B9 g
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 Y7 Z8 t) i: ?& u1 m
                                "%d\n", ret);
% D6 n7 S- z. f! s" W#endif$ ]8 X1 L# F/ D& V
        ret = platform_device_register(&da850_evm_tl_leds_device);4 m" F( [8 r, Q. Z
        if (ret)
) g0 ]! S" r' r3 x/ Y( a+ r8 G                pr_warning("Could not register som GPIO expander LEDS");2 e1 N/ a, M2 q4 `1 G
        else
+ L- d- Q: X0 [9 i; q                printk(KERN_INFO "LED register sucessful!\n");
# G! Q  N( B6 B$ j
4 C3 Z! e2 c9 d        return ret;: M" p! P# {- w) c% H
}. ?# }! {8 n9 A* Y, H

$ n# @8 }0 z: G# P; w6 F7 S3 S+ w7 ostatic void __exit led_platform_exit(void)4 x; i" L8 }0 x+ ^  F9 Z5 j/ z8 `
{) z, }+ Z5 t' T& ?7 _  p
        platform_device_unregister(&da850_evm_tl_leds_device);
1 v0 o# h: a/ k- W. C& T6 L" @) f7 o
        printk(KERN_INFO "LED unregister!\n");3 p0 @# c1 W0 [+ F: \* c9 Y
}
1 t& [$ S6 o9 M/ N) d
! j1 ~5 R6 R4 w5 ~  n+ _/ lmodule_init(led_platform_init);
) @- f9 m! Y+ B* Z# Kmodule_exit(led_platform_exit);
5 W5 T. ?2 _/ |* X" t3 L( y) R
6 _) U0 L7 H( O; I; k  b" bMODULE_DESCRIPTION("Led platform driver");* `4 H$ L! X1 d+ S4 x
MODULE_AUTHOR("Tronlong");
( A* {& Y( B( p6 kMODULE_LICENSE("GPL");
( i, A" ]' }4 O2 P8 b( j8 r# ^( \0 n  l( T) y) E* x; U$ d: u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 00:02 , Processed in 0.038976 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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