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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 P" b4 _* f. {8 d
#include <linux/init.h>9 @' z6 L6 n- {; u! |* _5 G
#include <linux/module.h>
- G3 m1 z4 T- r: ^$ R#include <linux/kernel.h>7 U0 q* v& ]$ b/ |# N
#include <linux/types.h>3 A8 M* f2 A* d/ u
#include <linux/gpio.h>. \& @( _8 l" p9 f# m
#include <linux/leds.h>
; k" S( D+ h4 N- x#include <linux/platform_device.h>* b& i% A( M) r2 D7 y' Q. k8 V

( |, J5 S: \/ |; e; K#include <asm/mach-types.h>. B* R& s1 I7 w
#include <asm/mach/arch.h>( [6 o1 O! K, |% m
#include <mach/da8xx.h>+ @0 E% V% _. n# T- w& |4 E
#include <mach/mux.h>
0 k1 `" @  F. n: Y7 `9 ?0 h' ?: Y0 Z! k4 ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). |' J* E( N+ A' y/ b3 V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ E2 ]0 ]8 R: `7 X! ^, b+ }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 }; j& m* M0 Y9 a$ p#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 Y6 d$ ?* }- `- h" `; `3 b
; e' d, Q4 J0 h5 x' W  N# d  w/* assign the tl som board LED-GPIOs*/
  _# Z- ?; x* T% M9 ^3 Pstatic const short da850_evm_tl_user_led_pins[] = {0 T, ^& @) z! s& I- G
        /* These pins are definition at <mach/mux.h> file */8 k5 M* `+ n$ ~8 s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 N! U( H0 a0 t        -1; c. w: @6 }3 M( N" U
};( n8 J' A: o6 |
: X9 s. Z3 U6 p8 w' N" e
static struct gpio_led da850_evm_tl_leds[] = {
$ R) {3 x& p: x, S) n" W        {. E. h' w$ _6 O% ^* E3 D
                .active_low = 0,
* P4 h: c) a$ r* X                .gpio = DA850_USER_LED0,
2 }; I( Y/ N; s& {                .name = "user_led0",, k+ G8 @( J$ F- ?
                .default_trigger = "default-on",1 T; g3 f+ u5 E
        },6 A" h1 |2 G: v' \7 w
        {" |& u! g( ^0 N9 _6 t, Q) R" H
                .active_low = 0,7 y; x# \7 c+ `
                .gpio = DA850_USER_LED1,
6 g+ g2 T, X( \                .name = "user_led1",& _; {! ~" H* R! N7 B
                .default_trigger = "default-on",
# Y, K7 L# {; K. i+ {  {3 J8 ]% e        },
& g- ?1 G4 O1 S  q) N        {: k$ X/ u1 G. ^( r  `
                .active_low = 0,
1 x) Y' i: F# S5 _5 z. C                .gpio = DA850_USER_LED2,6 U5 M, `/ n0 A- m
                .name = "user_led2",
5 X  |$ W1 V& x# L                .default_trigger = "default-on",7 C1 W! H" V6 n% r: f
        },9 Q+ q. K& l* N! S: f$ q' y& v
        {: T3 t' r8 F. C: @9 R
                .active_low = 0,2 G* p% p6 D$ [3 g0 Y* i
                .gpio = DA850_USER_LED3,
0 D! T2 k8 k4 w, M- U1 f                .name = "user_led3",* O9 d0 O+ C1 {# ^2 _
                .default_trigger = "default-on",
# V& H% ^3 O$ {$ a6 t) |        },
' q5 P3 e) s0 k};7 O6 s& e6 f. c, f9 g/ v

. a: S1 [% Y' X, bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' Y7 i+ Z' I8 e% O6 b8 p0 r; x        .leds = da850_evm_tl_leds,6 G" g+ r; q  g5 ~& _
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- p5 r# F1 z1 p/ M* d9 J9 U: L: r};
. E# B* [6 e+ _7 e0 |! e2 }  z! C! m3 n
static void led_dev_release(struct device *dev)
9 U8 [. j' K) ]7 z) V. f% ^{& f" o: [& n% [; C
};
1 o: `6 Q8 v0 s" A
, G- o" ~3 H/ o3 O& m! Jstatic struct platform_device da850_evm_tl_leds_device = {0 z$ {# O0 j/ T5 ?, {% j. M
        .name                = "leds-gpio",
  D1 U/ k+ Y% Y  }& j# g        .id                = 1,
# G% k1 D7 x' W1 [+ x        .dev = {
( z0 i! a8 [  w& J& {                .platform_data = &da850_evm_tl_leds_pdata,( `( J* X( E# L6 Q2 a5 n" Z
                .release = led_dev_release,- p* v+ H# [3 q/ ]7 v# d
        }! ~. k+ o, J* ]9 T' k& m2 I, N6 s
};! |! v- `8 x) K$ u, o

3 @: P8 M5 `7 X" ]; J* p# ^static int __init led_platform_init(void)
! H2 |3 ~" U: @( R{$ J8 B6 G3 |. c, a
        int ret;- O+ P3 d0 b3 Z* y
#if 0( K- r! `7 j( `% k* v/ `! e5 j! u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% i2 i9 O6 N" Z6 n* i
        if (ret)$ Q+ G9 ~5 D2 J' d8 R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 m6 D2 \0 B% R4 T                                "%d\n", ret);
: t& U; I7 H( z* _#endif! i% `( Z. V) q. q  j, u$ Z5 K( M0 T
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 e1 _: d" h6 _8 w8 v8 ^        if (ret)
& Q; \3 X) l6 r: a                pr_warning("Could not register som GPIO expander LEDS");- y5 N( S. J6 D! P2 l8 ]5 u
        else7 m* l9 G: [( j2 G7 t' q
                printk(KERN_INFO "LED register sucessful!\n");
8 _* w, X1 b2 m: q3 l9 T* \
9 ]! r. a  I6 \5 K5 j& J        return ret;
5 L1 G* N6 G$ M( N}
: w8 H/ I; F: S4 h) ?
5 D8 f+ Z* v( X7 ^& |static void __exit led_platform_exit(void)3 n' |8 s8 [0 l8 j& t( c# S
{
$ J! u4 j0 }- W* D; Z( r        platform_device_unregister(&da850_evm_tl_leds_device);
: p+ A8 ]2 H9 x' r% Z
3 y% a; E3 v" \% @6 D1 g8 F/ Q) z        printk(KERN_INFO "LED unregister!\n");" B6 t0 `8 l- ^* h3 \' l; T
}
% Y9 P- i7 N+ U2 K; m0 Z9 f( j9 i* K' W. K* ~, o2 v* n# I5 A
module_init(led_platform_init);2 w- N' r/ l( E
module_exit(led_platform_exit);2 a# l. a% K* {' h, ]* O9 A; d
2 X9 y# T4 q& E1 v( M  Y
MODULE_DESCRIPTION("Led platform driver");
; P+ M, l3 D  k& d6 p: w* v- |MODULE_AUTHOR("Tronlong");4 d- p! l' t* v* ]/ l1 I$ G
MODULE_LICENSE("GPL");2 P* L$ I0 G$ E1 R6 w3 c% y

( m9 C) b6 r$ C; Y. ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 00:27 , Processed in 0.041509 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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