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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 \, H: c5 q" }3 R#include <linux/init.h>8 p) o, Z8 @  s9 k4 u& _0 O  R
#include <linux/module.h>1 S4 e! K4 u9 z1 k: j
#include <linux/kernel.h>; H6 P& @' E  a2 t( z9 t) h# {
#include <linux/types.h>* G: s$ h. E8 z9 Q; {  U
#include <linux/gpio.h>* t5 w3 \7 r. _( J" `
#include <linux/leds.h>
! A% T  {3 Q! O#include <linux/platform_device.h>+ o. S, e6 }0 @8 L( d2 T% ~

2 D+ J8 R3 \4 A8 s4 D7 ]( D#include <asm/mach-types.h>
- h& [5 Q; A8 P# A+ [+ N#include <asm/mach/arch.h>$ j) P: N: O$ w- p% ~8 O7 y
#include <mach/da8xx.h>
! r) ^5 y6 W: B  B#include <mach/mux.h>3 V2 L  z" M  {: r. X% S2 R* t

% a, g0 `% ]( S3 g, D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ D2 o% v  G4 a; ]# x* H
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). ^! L" e* j7 s( _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# i5 R9 \: G: X0 P2 Q) z' |#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ H$ Q' ?" C1 j+ f. C( t
/ }9 P, S) T; e2 l9 ]1 M
/* assign the tl som board LED-GPIOs*/4 Y* U# `; F( ~
static const short da850_evm_tl_user_led_pins[] = {
; D. h8 C: y9 S: O* Y4 |        /* These pins are definition at <mach/mux.h> file */: @: I- K' o9 y$ u" \  W' n9 j# S4 _
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& X4 z* D0 x) E* X" Y) C        -1
. Q: {  j! |! \0 A};
$ d* `% e4 s. ?8 L' a0 O& p0 ~
static struct gpio_led da850_evm_tl_leds[] = {
- ]: \' n2 M( a        {% t# T9 q  ~% |. f# g7 m7 _' H; U
                .active_low = 0,
% Q( z1 o$ T" F1 {( d) M6 A                .gpio = DA850_USER_LED0,
/ u; |- g8 ]1 }5 Z. B                .name = "user_led0",% J/ r* I% g. s
                .default_trigger = "default-on",! d: h! H/ i( k" r! h0 r
        },
5 t2 h% u: Z% `+ F; R" B        {
! C, U0 l7 S& [$ S/ l0 X' G                .active_low = 0,( x% ~$ o- ^0 @$ c
                .gpio = DA850_USER_LED1,# H5 ?8 _. R8 I& U2 x7 G6 t
                .name = "user_led1",& E: V. j7 X/ G- Q, n
                .default_trigger = "default-on",
8 }7 ]" }3 i4 k. f: W5 o- k9 x        },
2 W: v9 W+ I, `/ Z3 Z9 Q        {5 j( V3 Q3 t* Y8 Y/ K2 d& |
                .active_low = 0,
( a* t# I1 r! x' ~; ?1 p                .gpio = DA850_USER_LED2,
1 g) O7 V1 E! H2 @: q  L+ a                .name = "user_led2",
: W6 P2 t- c; K' ~                .default_trigger = "default-on",  K' P% @$ h, Z! f7 ]
        },/ U* w! @9 o. v& P/ Q- Z
        {
7 e$ j4 o+ ]. o$ @- ]: K                .active_low = 0,! C% o* v, x3 ^$ T" u
                .gpio = DA850_USER_LED3,1 s& b( Z) `4 x- Y2 R, j2 \
                .name = "user_led3",
: l5 L6 m; ^1 ]1 P3 a0 Q2 e: w+ I                .default_trigger = "default-on",; H& b$ @8 D) ~7 I- Z! T
        },
7 L: S2 {; ?! b2 z7 Z/ w};" y8 x% D3 m) l: e7 h0 C% Z4 K9 B! a
/ P; E* c7 D" c' \: L  Q; A6 [; V
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( n/ k1 z/ ~9 r) n8 z9 |
        .leds = da850_evm_tl_leds,
: W1 K- y' N+ S8 j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* S  x9 E2 \4 D4 o# c};
/ r8 x$ H* C) m' J/ n
4 t% K8 f" P! p. X5 rstatic void led_dev_release(struct device *dev)) W' K$ {; r  l1 ?
{1 C  j6 v" q+ n  @3 f
};- E% H# g2 d9 ?! S2 a, F( f
/ ?, M2 z5 m5 g$ L; O" [4 ?
static struct platform_device da850_evm_tl_leds_device = {$ L" T; @; u( b5 N! A0 [
        .name                = "leds-gpio",, i  b. [6 Q/ k# Q' O
        .id                = 1,
4 r  X8 T7 ?2 `5 d# z        .dev = {( e( l7 v+ f% B+ u
                .platform_data = &da850_evm_tl_leds_pdata,9 H) F8 S2 T8 t; }1 v
                .release = led_dev_release,0 ~. H% N4 f2 j  ^+ W. z
        }  Q# ^( R- L3 }6 R
};
6 P; c8 p6 n# g* S8 {0 s7 B
3 b& R# W4 y! S5 ]4 K6 Bstatic int __init led_platform_init(void)5 b$ Y  q- Q) }# o5 x  h! L; \
{
. j3 H/ m. ^( u+ U        int ret;
% o$ g+ k/ j+ N9 y$ i#if 0
# c' c8 ?& B: U& Z: v; z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 m+ Y7 `$ y  m7 ^7 v        if (ret)* y& Y$ b% k  {- l+ e
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". d- b: q8 U' S( ^% a+ x3 A
                                "%d\n", ret);/ p, c8 U2 `7 W/ X9 i% O* N
#endif6 X' e" a9 c* r7 j
        ret = platform_device_register(&da850_evm_tl_leds_device);
: [8 h6 s' h# p        if (ret)
. F5 u: O. z' `* x) p                pr_warning("Could not register som GPIO expander LEDS");8 T) o. q6 }; j# Q2 C+ W
        else
5 y* y' I7 ~" S& `                printk(KERN_INFO "LED register sucessful!\n");
! a8 O( b* |% |( X0 x" ]6 G% g& y/ n) Y
        return ret;# [; R& V4 X. [: ]) v  v  O; ~
}1 s/ `8 e8 E4 _) L0 ?
# }1 ]- u$ F1 L, y' {* d
static void __exit led_platform_exit(void)$ Q# s+ k8 ]! p' d$ I/ t# }& o
{% E# L! L9 Z" v/ U2 }& {/ `
        platform_device_unregister(&da850_evm_tl_leds_device);
. i) Q3 d( v5 _8 b- ]9 q  R- L) B& P4 G5 a
        printk(KERN_INFO "LED unregister!\n");
# e$ H: L; ^  K) D" t}: C/ R9 X) V3 `& @$ C

+ Q! [, r$ }3 zmodule_init(led_platform_init);
7 }3 W  F7 `( \5 Xmodule_exit(led_platform_exit);
; T* G8 i# f/ h/ J! m: _" M0 Q3 \% L, L
MODULE_DESCRIPTION("Led platform driver");
6 \( B" y+ |$ m% b6 G0 u$ sMODULE_AUTHOR("Tronlong");; X6 g& V% I2 r' B) O2 A* z
MODULE_LICENSE("GPL");
4 ~2 v+ T6 p- G0 v( y
! \" S0 l' V+ d: a+ }& {. r9 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-22 20:54 , Processed in 0.046025 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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