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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 F. v" e, X  t8 v( K" z! [& Y
#include <linux/init.h>3 U# S* K3 Q; V/ V' Q5 V
#include <linux/module.h>1 ~! L+ l7 C: J& }
#include <linux/kernel.h>: j  g- G% s; ?4 w
#include <linux/types.h>
# P% k7 F" f8 _; B#include <linux/gpio.h>
* `* D" H& R% A) e- S" |#include <linux/leds.h>  }' O7 [( @( H  H& g
#include <linux/platform_device.h>) x8 T6 q" K1 V: |" `
+ V! P2 _# U1 Y$ h! O, F+ w
#include <asm/mach-types.h>
$ k" h$ s! x0 y+ [/ x" \1 T# S5 S#include <asm/mach/arch.h>
8 `3 t- P1 U% J% `& R& \5 ^9 U& W#include <mach/da8xx.h>( b# f( I: Q' C. J! v+ f8 N, N
#include <mach/mux.h>1 [  R- V" d+ h2 c$ w: |

, d/ P! L2 `* t# R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" Z6 b, T& x# M% g# p5 |$ D7 g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  C: b8 w. |; {& j# M* \& g+ {  d) S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 s0 B: h4 a) @1 D8 l. L- ^
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ w1 T- A$ \- d) b
- p' Z% T4 h+ w' P7 |+ x/* assign the tl som board LED-GPIOs*/
9 _8 \- ^" W  _( |0 Y/ x1 |' Dstatic const short da850_evm_tl_user_led_pins[] = {3 ]- o& s/ S( ?- x2 w4 V% d" i
        /* These pins are definition at <mach/mux.h> file */, x! D0 e, o& C' D& R* t* t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 v4 R( }8 z1 Y3 u. J6 b0 J        -1
5 y' Q; `* }$ W7 N& j};. r2 }( \6 h  t% g
  X3 r, B5 J3 N- A0 Y0 j
static struct gpio_led da850_evm_tl_leds[] = {
, p$ V4 a+ T' ]8 W/ ?3 L) r% `6 X        {
& M$ [8 Q8 w& R0 X1 a. S! _                .active_low = 0,
  [" T8 K7 l7 \' [# e8 ]                .gpio = DA850_USER_LED0,; I3 f( m. Z9 y' M) v4 m. u
                .name = "user_led0",
) V+ |* j. ?0 ?" V% p9 U                .default_trigger = "default-on",$ v3 s) f4 `  v8 [: I. `
        },
# B6 V$ D$ P% T/ k5 B; w        {+ h# O. o7 G8 U
                .active_low = 0,
5 @* V/ B% x$ Z8 S: C' A; v8 A/ H                .gpio = DA850_USER_LED1,0 N7 o# L8 J$ f0 h+ ~& l' j
                .name = "user_led1",& t& \9 t6 q  L+ q7 o
                .default_trigger = "default-on",
5 Z: _$ m" }( `! g8 W* v        },1 ]& R' z& W/ i: C3 x* e
        {) B/ V4 ~# B# h0 c8 L) J
                .active_low = 0,
: y; `- N- X9 o& x                .gpio = DA850_USER_LED2,
5 C) ~5 g9 H7 |: Q8 v7 X9 g, w                .name = "user_led2",
) X2 w5 @9 g5 v' d2 h                .default_trigger = "default-on",2 p, ]0 y1 {9 R" C6 e% e
        },
  B, z! d" v# e; q        {% V: [( ^5 \5 }8 I6 R1 H. i
                .active_low = 0,
- J3 f" O5 F3 Q4 j8 n                .gpio = DA850_USER_LED3,* h; y% d$ s3 F9 |! ~. o3 ]) y: Y; Y
                .name = "user_led3",
( E& L* \5 @1 k1 ^) W5 p                .default_trigger = "default-on",
# E9 w4 f5 t1 x6 m, K0 }* e% O        },$ W8 a4 v4 a6 _+ l; N! A( I/ m0 p
};
, q) i5 |# k5 W1 f& x9 u
3 J7 j% J* J% ~$ v$ T# S" Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 {% K; a) k2 [
        .leds = da850_evm_tl_leds,1 K! o1 Q/ g; E1 q$ H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. w, N/ h" N0 r' q) ^};
2 P+ b. Q# E/ D
) _# a6 i) d+ ]static void led_dev_release(struct device *dev)
6 C3 Q/ o' N& @: ^& x" I{* l. B% A) E+ `
};) K4 e5 |( k" o/ L! C. v
: ~9 W  M  p4 `  S! K' p
static struct platform_device da850_evm_tl_leds_device = {7 o, d2 F( P; T
        .name                = "leds-gpio",
. }4 z' d0 s4 A        .id                = 1,# _4 z5 O/ D+ X& v5 C2 a+ d
        .dev = {
2 n. @$ f9 {, W: ~                .platform_data = &da850_evm_tl_leds_pdata,* J% J' L# G; ~/ K; u; E
                .release = led_dev_release,7 V- z8 ^: V9 _; q: m$ `! ~2 J
        }9 w% d' [& R: r; F3 q
};7 E4 N0 _% j; c" l9 v
4 m3 ?+ t/ b& X# |7 @8 |# h# s
static int __init led_platform_init(void); U% a& H/ c( g; x2 `0 I5 g
{
" b  E* @1 l* B* o        int ret;; {7 n7 K" l- S, u
#if 0, E# c( N; _) M* Y6 ?) u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 r5 u+ j6 a: _% R        if (ret)+ M- H6 a  ?! I8 u& x# f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# {! O4 q- I* e. L% D                                "%d\n", ret);$ k& r  C) |( A2 ]& B; y
#endif* P5 k6 c/ o' y
        ret = platform_device_register(&da850_evm_tl_leds_device);9 q. g! L( i6 ~* q
        if (ret)
5 ]5 T6 ?' A2 c7 D                pr_warning("Could not register som GPIO expander LEDS");
5 X, c  y) ^9 Y. W; t% N        else- }  S; a- d3 r  y
                printk(KERN_INFO "LED register sucessful!\n");
2 y0 |) D. X: J4 T6 g$ h
& f* y( u5 s) w5 Q7 b        return ret;. X' u0 z7 s1 h0 O+ v& |8 b0 d  I
}
  y. l" T9 d; E
( `' V4 s' h: o: b/ H1 m& m, Wstatic void __exit led_platform_exit(void)+ v% S) `3 N/ ]: l  Y( Q* m
{$ }! d. Y' P4 z' ~) p9 \1 ~9 Y
        platform_device_unregister(&da850_evm_tl_leds_device);1 A% W1 I. T* i/ X
* V2 E7 g9 ?1 g6 a7 U3 n: u5 V" N
        printk(KERN_INFO "LED unregister!\n");
/ {' V: i1 {1 W- F; x& F}7 F/ K2 T& j! d; v7 J

. s3 D/ ?/ v( dmodule_init(led_platform_init);2 Q9 ?! e) A; ?; G+ ]
module_exit(led_platform_exit);
3 m6 Z  W' P3 [; {9 |- R6 I3 Q$ R. ~; _2 z& Q
MODULE_DESCRIPTION("Led platform driver");
& K# M8 o- i. o, e7 F: w+ Q' sMODULE_AUTHOR("Tronlong");
8 \: U$ M( H0 M3 P; oMODULE_LICENSE("GPL");0 j( |: K- l  p5 d/ M

: k# J4 S7 M# L! g8 Q* ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-8 01:38 , Processed in 0.040793 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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