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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ l' K7 s+ _' X  N2 V, ]7 D3 h7 X
#include <linux/init.h>* L, d7 g7 [1 t+ @
#include <linux/module.h>
* j' y+ E9 H' ^1 U; R#include <linux/kernel.h>
) K$ s0 d- `- `; W9 \#include <linux/types.h>5 v- ?3 C6 Z- {3 n0 ]) F. E+ V
#include <linux/gpio.h>
2 o7 u1 Z" U1 N. w4 `! k! ]#include <linux/leds.h>
) ]4 Y: E2 h& s; T" v" o6 B# l#include <linux/platform_device.h>
+ m6 _* R2 ^5 o& M  H
  V* P( F3 }7 q! l6 c#include <asm/mach-types.h>+ M: d: S) J/ F2 v( u" Y  A. A4 l
#include <asm/mach/arch.h>4 ^& J5 P% h5 k  h" F* r
#include <mach/da8xx.h>
4 u0 V2 |4 ^& G  R3 ^#include <mach/mux.h>, W. e4 d$ f3 y. W& u/ J
- D. b2 B  r. P7 U: |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 @/ x+ w: J! S
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( ^! ?* D& f- b3 L+ D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- b9 F3 Y* J: ]: O. q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 w1 `* E: b8 _- z( R. t
7 m! I; E* G3 x/* assign the tl som board LED-GPIOs*/7 p3 E" H) U7 I8 ~/ ?# W% L) j
static const short da850_evm_tl_user_led_pins[] = {3 @6 x$ R  `  q+ W
        /* These pins are definition at <mach/mux.h> file */
7 K; O8 B0 o; J0 q6 E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 x) D+ L/ W! z  Q  C. @
        -1! {; I. T" Z) o! [
};; `4 \4 h# G7 B& \  ]9 j- [6 W. i4 B' B

! U) h) A; k  Z# K; ~static struct gpio_led da850_evm_tl_leds[] = {. q3 f8 J4 K; x4 t) r
        {
2 t; W8 _$ c! i+ ?9 p* q                .active_low = 0,' u  a" O# r" G! z$ m1 n, N! G- `
                .gpio = DA850_USER_LED0,9 L' ?& l" j+ ?, @" h1 n
                .name = "user_led0",* V5 V) }2 ^5 k2 [6 f0 ^
                .default_trigger = "default-on",
3 Y( X7 r: ?% }, ^& u7 s# E$ W! A/ T        },& ], R6 |+ O" ]1 s7 g6 n# M' P7 a* G
        {$ K  h- L& l8 ?+ a$ k
                .active_low = 0,3 m% A: ]9 I; K/ {- g) r
                .gpio = DA850_USER_LED1,7 x7 n3 a$ s. b  V7 C6 {& I
                .name = "user_led1",% I5 @& Z4 q, w' H
                .default_trigger = "default-on",
$ `8 M% _( K8 X        },
$ z4 G9 P: W' q1 l; q        {0 J7 i- ^5 K1 w
                .active_low = 0,; F, F* s+ Q! S* e6 T) [% v
                .gpio = DA850_USER_LED2,
' A1 r% b) j2 E. o2 }0 J; E                .name = "user_led2",9 z5 ^5 X. Z: e% f
                .default_trigger = "default-on",7 x5 i  `6 \# _) `, A* U5 Z& ?
        },0 G& f+ I# q/ d# R
        {
4 d3 e+ _3 V; ]1 P8 v                .active_low = 0,
% `! o) ?7 \/ |* u, E                .gpio = DA850_USER_LED3,5 d. s0 L( r* M- Z, {$ F4 a  W+ \
                .name = "user_led3",
% c+ i. ~$ v" \" S# ?                .default_trigger = "default-on",6 P- i2 k! T% o1 v' ]( H2 t3 F
        },
+ F6 c* H4 N8 v};
9 Z; W6 O" Q1 x9 l0 E# s. I# |9 L; N0 T8 I- F& F: }
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 X" n- z2 F/ E1 |2 |
        .leds = da850_evm_tl_leds,
3 ~4 E- Z4 V1 P) T- }  ?; y0 h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. t3 i( J: K  ?) x};
. u2 o8 [# _5 k9 t2 _" I$ w$ H0 I1 \+ j& H: c1 h) Y/ ~
static void led_dev_release(struct device *dev)
$ w$ g, K& V9 ]{9 b# ]4 c3 D& P7 o) }
};
5 m( j( I$ }1 s, l% }+ B) w% G) j! `
static struct platform_device da850_evm_tl_leds_device = {
. Y( L: A* q# m8 H2 q        .name                = "leds-gpio",8 v0 m5 i2 i; K
        .id                = 1,
6 g) _3 X7 O3 p4 ]  k( E        .dev = {+ \1 d( T2 w/ h" l
                .platform_data = &da850_evm_tl_leds_pdata,# B2 B% P0 z+ M& U% B! K
                .release = led_dev_release,
! }6 L/ l# X3 `/ Y, E        }
2 _. I7 v, `( F* R' c' C1 X* y# c};
+ K9 k4 F" z1 [7 |$ ?7 q7 P3 J
3 z) L8 A, d$ a$ n3 I8 sstatic int __init led_platform_init(void)5 `7 @" a6 A# h
{
( @$ V8 {% w7 Z2 r2 ]# e        int ret;" x* b) {- P6 g+ c* w/ U: t1 a1 J
#if 0
9 U$ s/ s# O# c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 ?, E8 X- T, z" I2 l# ?, k        if (ret): ^7 G# r, g+ v/ t  Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: [2 i. x4 R; o# v3 ], N                                "%d\n", ret);
1 k' [1 W3 C( J. f& m$ W$ J#endif6 |, Y, t$ N* C- c; v
        ret = platform_device_register(&da850_evm_tl_leds_device);  G+ U% A/ W/ S1 m" V- v  u
        if (ret)
2 v  F. a: ^4 ^! Q3 ^  U                pr_warning("Could not register som GPIO expander LEDS");$ u) \( ?% `7 i- q
        else
9 z. T) k( T, E: N1 ^: ~- @                printk(KERN_INFO "LED register sucessful!\n");( [5 T7 Z* X( e9 ]0 V0 K  |

& w7 P: E& E4 T' i$ H        return ret;
9 \* F  k" G: \2 D1 ]2 w}% G9 p- t$ [9 k0 C& ]
) c+ s, O# L: h9 N
static void __exit led_platform_exit(void)
) o2 w: X! S) P& S( ^; u& x! w{
$ J% `8 [' V& z2 g$ W& n& T        platform_device_unregister(&da850_evm_tl_leds_device);
% N. o$ H" ^" g  z; v- `
# Z& D  v2 p8 F1 b- t        printk(KERN_INFO "LED unregister!\n");5 G, s! d* T& `/ U& e2 A
}$ J0 q2 {  K' [

$ H# f% ~1 C5 R* i0 [( ]/ @module_init(led_platform_init);
! N9 ^' v* q5 J0 q  z3 Jmodule_exit(led_platform_exit);/ _7 c1 a" C% ?
& c* ~/ G  S  z1 M8 \$ j) `+ t
MODULE_DESCRIPTION("Led platform driver");
% Z5 r+ T0 P& g2 ^' {% G3 ~MODULE_AUTHOR("Tronlong");* ~* \" ?3 Y. w4 l
MODULE_LICENSE("GPL");8 o8 F1 I8 V# [, V1 e

; [9 N% n3 N( M* ]; f; ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-20 04:14 , Processed in 0.036232 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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