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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 N6 A5 p  A7 n4 u: V! A#include <linux/init.h>
% A& L, U0 x5 e# Z, N$ @) w#include <linux/module.h>- n, o9 `/ G' ?" J  w: V
#include <linux/kernel.h>
$ T9 g9 A9 X0 H4 K#include <linux/types.h>! ]+ [4 f( K3 n# d3 Q; R9 y4 w* p
#include <linux/gpio.h>7 D7 e4 H% {3 s% C. \: K2 ~3 Z* L: t
#include <linux/leds.h>
/ p! n: Q* Y. H% x* w#include <linux/platform_device.h>' O' b, B7 p) D; d' _; @
, G% ^9 Z* }% q! c5 X: F
#include <asm/mach-types.h>2 t3 `* b2 Z5 Y6 F
#include <asm/mach/arch.h>% w% ^) ]! h2 Q+ n! }6 c0 Q1 H9 v
#include <mach/da8xx.h>
# q( ^3 y7 ^3 B  L#include <mach/mux.h>( m2 S( O1 D' r

* U2 k. }5 N. Y- E4 Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 Q5 Q0 b6 l1 d# ]0 l. d; ]" g$ f& a5 k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 u( [( @; `5 S( S) r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ p7 F+ C" n# c5 j9 e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' @; }" I/ f6 Y0 y, B1 `; O& {& M3 f3 ^: m3 J
/* assign the tl som board LED-GPIOs*/) |  A9 R/ u& N
static const short da850_evm_tl_user_led_pins[] = {
  X4 H3 q; G9 l& O& m1 z# ^        /* These pins are definition at <mach/mux.h> file */6 H9 i$ x& M6 |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' \8 o0 |) Z$ t3 `- m& d1 y. C. e        -1, K( Q7 w& F4 \9 f- k- T
};
9 ?+ Z7 A, N7 I2 @, x0 d/ ~& K
* U; B; m% d( ostatic struct gpio_led da850_evm_tl_leds[] = {
3 X* u) M: {+ k' R        {7 Z$ [& e8 w5 X$ |: b8 L- u* Z
                .active_low = 0,
$ k! C+ X1 @7 J, l- ^2 e# n0 K                .gpio = DA850_USER_LED0,
9 ?5 Q4 a' B% L- K; ^7 Q7 i. U                .name = "user_led0",
& S& b" G2 |* S; T3 X                .default_trigger = "default-on",
3 S. U* _3 \  v! M1 }# Q        },3 m# `1 M$ f- O7 T9 ~( n' }6 K7 v
        {- d# s+ G5 {6 O  k3 p
                .active_low = 0,% k% X7 B! j9 e9 {! |
                .gpio = DA850_USER_LED1,: w" d1 g$ @0 j. k! i& n$ [
                .name = "user_led1",
6 W( i0 T6 `) K2 T3 [                .default_trigger = "default-on"," m8 }" p4 J9 w# j
        },
1 y/ A# M) z) r$ Y9 x4 l        {
  n' ?; y- G8 K& s4 o                .active_low = 0,
6 H; l9 b5 j; a1 H8 U; p+ L; I                .gpio = DA850_USER_LED2,0 s3 L8 x' M/ ?) p: N9 m
                .name = "user_led2",2 U" O6 E3 O* ~  [+ D- D
                .default_trigger = "default-on",
4 i6 T2 O2 [  B9 Z        },: p7 Z5 R" \  }/ z8 a( U
        {) w5 B8 ~1 W" I3 t
                .active_low = 0,, j7 l* L+ p9 `, n8 V
                .gpio = DA850_USER_LED3,/ ]- ^6 E, H6 S1 \8 o8 q
                .name = "user_led3",& E  _: ^% r% ~2 g' ?
                .default_trigger = "default-on",
, @; |; y' S  H! _+ z. s5 h        },
5 h  m# x; x, z2 v  b; q$ L};. @3 T9 y  F% x' p" O# ]) I1 S

8 r( N2 f9 Y* b- U! Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ \% p) q3 F# e: \        .leds = da850_evm_tl_leds,- y; U* x$ ?1 D! B$ v  R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. l2 s4 y6 g4 }$ v
};
4 p3 h$ V$ o& o" m3 t; N
/ o8 o4 y2 a9 z; A2 Rstatic void led_dev_release(struct device *dev)
% Q4 A- C2 x! h* u2 L{* a+ I, Z- H0 F
};; ]: Z2 K: q' |9 L

9 f3 D# r+ @1 Y9 S/ |" Cstatic struct platform_device da850_evm_tl_leds_device = {
/ t/ H. [' y# V6 D* V        .name                = "leds-gpio",8 ?# B. P: _! ]3 K1 s" `: t
        .id                = 1,
! Z. a8 b8 b  R: A# R3 Y        .dev = {7 W2 Q( U+ ], q6 e- E- E4 P
                .platform_data = &da850_evm_tl_leds_pdata,. P$ b6 k1 b9 w/ h& C
                .release = led_dev_release,
: U+ }/ Y/ v. t( q# m2 F; u        }
0 I/ `3 A! ~, B3 h  l, \};3 J( h( _% X1 p

, s1 L2 F, \+ [% u4 F& N7 Fstatic int __init led_platform_init(void)2 o9 p0 F% }# |9 U; k, m
{- W$ m5 G6 o# k0 H# _3 h
        int ret;
4 e! p' {- p5 w4 b" F#if 0
/ ?! D8 ^- E9 n( a: t- _9 i: S        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; p5 o$ k8 V! o( B5 S0 R$ s
        if (ret)
" k6 \9 ?+ t$ _& f& Y! n                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% U* I) }6 ~# p) C                                "%d\n", ret);  S, t; g2 g- Z4 a$ a/ k: v
#endif: ?- R( x& n) i% P; u
        ret = platform_device_register(&da850_evm_tl_leds_device);1 r( n9 U% Q" P# R5 ^5 }
        if (ret)- H' q& o5 P- z6 Q
                pr_warning("Could not register som GPIO expander LEDS");+ u" w0 i' y* ^# [) i
        else$ D/ ^  y0 K. u4 H
                printk(KERN_INFO "LED register sucessful!\n");/ ~- F0 p% ~/ G! S& t# w/ X3 c( i

. ^; ~9 g/ r% N4 }        return ret;
. \0 ~1 n, C4 B) Z1 l}
9 z% t: m- Z% h9 m' U8 ]; r+ Z8 }* D: C
static void __exit led_platform_exit(void)
: d  K4 U0 G3 W5 j' V9 C9 w9 Y{6 ~" u+ c# y% Z0 O+ t8 m' i
        platform_device_unregister(&da850_evm_tl_leds_device);
: c. a) k( ]; H
: }8 o: Y9 h! J) ?' U; \( w; a3 u        printk(KERN_INFO "LED unregister!\n");
3 l! v  H" a9 t( Z, _% ^# `}
8 |. N2 V: K! D  v7 O- f- o$ @4 v9 y% ]% R1 L1 p
module_init(led_platform_init);
) N8 F8 Z" _, A1 a% jmodule_exit(led_platform_exit);
, o8 v4 x6 c" i* Z. r# {$ p  I0 |6 l4 l' O5 k: m, F3 v
MODULE_DESCRIPTION("Led platform driver");
" J9 D9 R) p3 u) ]- q" f+ _MODULE_AUTHOR("Tronlong");
8 I/ M) w9 o+ tMODULE_LICENSE("GPL");
0 u3 R5 Z* ?" o% Y- q$ n. f9 P5 [7 B! C3 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-9 10:34 , Processed in 0.044129 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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