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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: H3 c. m+ ^, |" ~" u2 G% s" u8 L#include <linux/init.h># N" k) f. \* J  c
#include <linux/module.h>  `8 `% o* L$ O9 q6 I
#include <linux/kernel.h>+ d6 B( y/ F9 k$ v
#include <linux/types.h>& `) s0 X& J4 m) G% o/ d
#include <linux/gpio.h>3 H7 }, \0 ]2 e( d
#include <linux/leds.h>
" I& l" E+ Y& z4 t0 O, F: J#include <linux/platform_device.h>+ k  `' f' f/ k+ v0 ~" G

3 f8 t, p: E; L. H2 R' f#include <asm/mach-types.h>
2 |, X6 n; ]( Z- b/ e5 j8 g#include <asm/mach/arch.h>
' i! v' |& v# B# H2 D#include <mach/da8xx.h>
" M# v( @/ h3 e; U) w#include <mach/mux.h>2 P6 v( x) k7 I/ M& `0 {
7 n! [9 h% h( w: \& E. U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 ~1 e: N2 t) U/ e  `, u1 d6 @) p#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, ]. p; t5 C5 n, C# n4 O' ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; i: c  Z, c- w5 V  ?3 D#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 y7 K2 L% v' j8 O
6 V6 o5 g6 p% U2 G- f% a+ u
/* assign the tl som board LED-GPIOs*/5 z6 p2 J! Y( @
static const short da850_evm_tl_user_led_pins[] = {6 N* N8 n% @  @: k
        /* These pins are definition at <mach/mux.h> file */  u6 q& }" X- F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 j" m5 h9 ~, m' r1 F) Y1 _
        -1
- ~) B1 M& S6 x};$ U7 x2 i4 w) A+ K1 o3 y# j- I* |
1 d" G; _7 w+ O; ^- x
static struct gpio_led da850_evm_tl_leds[] = {
  |6 \4 V; G) \- J        {( U7 X2 u" b* _( Z% g+ {. Y0 d& G
                .active_low = 0,8 z" J) v* Q! R
                .gpio = DA850_USER_LED0,
" I; m& s! b3 y. Q$ g                .name = "user_led0",, K* {* a/ _1 R$ d% z& {4 q+ f% n
                .default_trigger = "default-on",
0 U7 j4 t; U8 c* i4 r        },
9 ?; Y- A+ j0 `" Z0 s; @2 R        {6 h% t  a$ U: i3 X% H
                .active_low = 0,
% y5 ]4 l$ l  L9 ?                .gpio = DA850_USER_LED1,
0 U2 o9 D0 J9 f6 P                .name = "user_led1",8 h% Y$ C( R' X# E) W4 ^
                .default_trigger = "default-on",
: z- s/ Z4 H- T: w% \% l) N        },7 [4 X7 {* S$ _) B
        {
5 u& j) K% N0 E. z* b/ g+ z" H4 C1 I                .active_low = 0,
# `1 @/ T9 @4 ^2 N1 K0 Q                .gpio = DA850_USER_LED2,) _6 x' t8 T. E; _& F& d2 W3 y
                .name = "user_led2",: z/ E; K, _( T0 e( n
                .default_trigger = "default-on",
, Z0 H( a# ]; f: \" B: N        },. U8 i3 P% O- W5 t, v0 F7 n6 U
        {
$ g0 G3 ~0 r: {* x: ~3 J" |5 D) [                .active_low = 0,' H; K) _) c; C: o$ x0 N8 y9 e
                .gpio = DA850_USER_LED3,
' f, z7 P% }8 i1 l                .name = "user_led3",7 x; J) D# M/ j+ |, P
                .default_trigger = "default-on",7 |  j! F" N" J
        },) ^; ]; `, {+ U/ B( q: f, e
};( E; ~! ?* f% C5 z: V' ?
; n) i! G* g, P% ]2 m0 X1 `
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# e8 @( {( s7 Z. x3 Y# B8 k
        .leds = da850_evm_tl_leds,: d  j' ~7 `6 ?/ }
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% N5 T' @* X. {+ z! D2 Q};
$ W0 n& X! V, [# O8 I& L
% y$ ?2 K+ U3 B+ i+ ?static void led_dev_release(struct device *dev)
( H6 g- C5 F/ {5 s- [1 F{
  [2 f8 q1 K" o& E, y0 v: J& \4 Q};; P; B" b: h8 N* J$ {/ j- i

7 M' Y" i2 ~  e8 Y5 D' O4 jstatic struct platform_device da850_evm_tl_leds_device = {3 t0 f% I3 b, P! N( ^
        .name                = "leds-gpio",8 Y+ `: S+ o- |- O& E
        .id                = 1,
' o8 i* y4 d, s        .dev = {
) `0 }. z6 u9 ~8 v. s                .platform_data = &da850_evm_tl_leds_pdata,
( M% E1 B: f7 V/ I- o; L                .release = led_dev_release,  N! O; o: {4 A: ~+ r4 }# V
        }
, U2 I* T5 N/ v) g* z1 I};4 n  J. v0 n; Y: o

( V, u' O% h+ {! k* w; u2 Fstatic int __init led_platform_init(void)
# a+ B2 z# y; J$ k( k( K4 g, o{
& d* f" }* n8 o8 j9 j$ Z- F5 T        int ret;5 O% B+ L* }- m: S5 [/ B
#if 0: J+ c! X5 J" Q, o
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ W5 T' F3 s7 X- X" m3 F/ a1 L! J# q% c
        if (ret)$ m$ |" i4 z- W: G! ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". Y: K1 o! H( k5 p1 x
                                "%d\n", ret);
; r& h6 ^' Q5 K+ W! N% j#endif& T7 T$ S6 M6 K+ \, f
        ret = platform_device_register(&da850_evm_tl_leds_device);9 m+ G; I4 P( y6 d3 u8 C. s" ?
        if (ret)
- R( t  [$ m0 _3 x6 s                pr_warning("Could not register som GPIO expander LEDS");/ H3 X9 o5 {9 C3 m+ V# h
        else; e. O+ {9 x5 S& V: Y/ R
                printk(KERN_INFO "LED register sucessful!\n");
1 e  F0 v$ v' B. g( T3 j. f/ p  c8 R  r7 W8 p1 ~7 K- U
        return ret;& x: T4 ?. H9 B' _
}
: p: d! e3 a. G  f2 ?* u* ~0 C7 d2 n3 k6 E4 Q/ {7 J
static void __exit led_platform_exit(void); [6 A# c& i, h, J6 }- n$ m0 P9 Y
{
6 S0 N# |) A8 }- A+ n, p        platform_device_unregister(&da850_evm_tl_leds_device);
0 ]7 e( |& ]" i8 A/ m$ x9 k: J9 ?
        printk(KERN_INFO "LED unregister!\n");, p7 f% K' M! x. _6 T
}% X0 b' A6 I/ R0 Y# o, z' v$ G
& K  N9 n# d3 s& J5 `5 g; b
module_init(led_platform_init);
) ]# R0 ^" D0 `module_exit(led_platform_exit);" h5 S5 {# f5 b% P( L3 p
$ y, a" `( e- o% y
MODULE_DESCRIPTION("Led platform driver");7 s! n5 d. j9 M6 ~9 p  z
MODULE_AUTHOR("Tronlong");0 ]' \/ d- Y6 D) R; J- `) \+ e. u
MODULE_LICENSE("GPL");
& }7 d4 w' ]. }0 i. [  S5 R) w$ Q5 K8 t7 }& \6 k. [8 A% u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 11:56 , Processed in 0.038398 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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