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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ v2 k1 p& {! d6 k( H
#include <linux/init.h>
2 x9 S7 _/ o0 u% M% P. u! y#include <linux/module.h>
) t% W0 S, c+ {, C1 W  `; J#include <linux/kernel.h>
9 W8 v$ l8 o1 o) I9 x#include <linux/types.h>
2 e* o0 W! V7 J6 h% ?#include <linux/gpio.h>1 r9 A1 N3 K- Q* }3 |& ~
#include <linux/leds.h>% w* E4 t) }0 `- F4 G8 _
#include <linux/platform_device.h>/ B# J0 c3 S( q7 J/ m
4 J7 ]7 ]# l" A2 ~# @
#include <asm/mach-types.h># [0 w7 V& J+ K4 V" x) ]; s
#include <asm/mach/arch.h>2 l2 b, m* D* W6 _
#include <mach/da8xx.h>
- H) L, `4 n3 I/ }& w8 W9 O#include <mach/mux.h>- ?( L. X. N2 b4 i
+ J* X9 Y' M& u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 R, e' k' j! s' Z1 G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( N: r$ m$ u* g& l/ I
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! i- X* r: K" I/ w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! I; t( \" I, a8 u. J8 y

  m0 q2 r# p. c( i: i! ^/ P( H/* assign the tl som board LED-GPIOs*/
8 @5 p2 R/ b9 _$ o; T; g6 Mstatic const short da850_evm_tl_user_led_pins[] = {
$ f* j- |/ a4 h7 V2 x) k        /* These pins are definition at <mach/mux.h> file */$ }6 ?2 Z; _# i, b9 Y5 g) n3 z% D
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" g( c: P/ u+ X* }) m# M: e        -14 a; N9 @) ?" w( t+ f
};4 p  H2 e( x1 n$ K0 T% D6 `9 [; d
6 p& c4 p9 S5 |& _+ m4 b! H& {1 m
static struct gpio_led da850_evm_tl_leds[] = {% I7 Z! ]8 w& ~3 S5 h2 K% d4 l, ~6 y
        {
9 U5 F! }% P) k                .active_low = 0,. e% t( _7 P8 ^
                .gpio = DA850_USER_LED0,
, c  J5 Y( V6 |1 ^/ }7 }. H: Q                .name = "user_led0",3 O$ x3 c$ I) \* }( J
                .default_trigger = "default-on",4 F# T# W( u1 {$ Q, K. R
        },( ~6 ^0 K; M, `! z; X8 N
        {' t% E! j' j  ?% Z8 O# n
                .active_low = 0,
/ h* m" {9 C* [7 o6 M                .gpio = DA850_USER_LED1,* h; T, M6 T& i) a
                .name = "user_led1",5 p; B1 e  F  y
                .default_trigger = "default-on",
: J, ]1 E) r/ V* Z' U        },
1 j( B, V9 r0 \0 @8 ~" T7 D+ E        {/ S1 p) r6 |! O4 e" V; |# D
                .active_low = 0,, W% r5 ?4 z+ [" e4 @
                .gpio = DA850_USER_LED2,
- U0 _% w8 r5 u4 k                .name = "user_led2",
( L4 m5 ~7 s# H' R8 n0 A2 v                .default_trigger = "default-on",3 A3 ^7 x0 U7 g6 ?/ F
        },. R. |( w1 c  ^, d& I
        {8 S7 d& d! m  o( n
                .active_low = 0,
& v9 Q) r  K8 G* P! T                .gpio = DA850_USER_LED3,1 p. y; _7 g# M7 y
                .name = "user_led3",
. [( c" Q* j. k) R: l2 n$ Z                .default_trigger = "default-on",
5 V' J* J7 n1 [+ [* s$ l: p        },
" F4 k& X* ?& G/ ?0 N  j+ _  a9 `+ B};! g0 r. M8 F7 `" x6 x# v
+ z1 _  n! q2 P1 l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 @) j9 T; t! B
        .leds = da850_evm_tl_leds,
7 l) G2 `- j5 Y6 z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, N6 A! B4 O$ M2 z! L% w};
: d9 K  S6 v# H5 F* S+ \& M. ?4 m3 O3 K, m
static void led_dev_release(struct device *dev)
+ ~5 ^- s* W8 n6 R' O{
  ^  R7 r" n8 m1 R5 M2 `* ]" p2 A# G};( L: [) i- Z; Y2 l
5 @# I6 h: b% u2 _: ^  M; i
static struct platform_device da850_evm_tl_leds_device = {
# v0 Y3 F/ D& V" ~+ g7 G+ M' e        .name                = "leds-gpio",7 G, h  Q- o; f
        .id                = 1,
2 K  X: v" l9 I0 O. O        .dev = {0 w+ Z" ?: \* q. o/ i, L$ f
                .platform_data = &da850_evm_tl_leds_pdata,
! P6 \) ~3 A2 a: v9 C+ J                .release = led_dev_release,
6 t9 y7 I9 J, E" ^$ I' N        }+ [/ O- j6 k- T9 o- v1 K5 T
};$ D* k7 G- V; c6 [( x# s% W2 Z* S
" f0 ?' y6 M( c' U; ~" }+ C5 b, i  Z- S
static int __init led_platform_init(void)
3 J' X7 x% h6 G! l2 T6 L3 M{
: G& K: W  {; J# v1 B; X! v        int ret;
4 f8 V" a7 {8 v% X/ J#if 0
7 O0 s9 t% q9 R; t$ b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' p. m! ~3 f) Z/ [- Z4 D! |% u        if (ret)
1 T' N) K  ^. X1 |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- s7 l) G6 g4 g/ K1 a/ k  W; X; X# S                                "%d\n", ret);
5 z/ Y* P6 L/ @2 @. x) g#endif
0 ^1 n2 ^1 S2 ?/ I0 I( _& S        ret = platform_device_register(&da850_evm_tl_leds_device);/ h# _! B% L1 y( v" z$ z7 K% }
        if (ret)# z1 f# P& e0 W' q
                pr_warning("Could not register som GPIO expander LEDS");
& r& n/ t/ {8 n8 G        else; F4 _! f5 D; S) W
                printk(KERN_INFO "LED register sucessful!\n");
; Z4 ]4 G0 i  Q  H3 P) R, p. i' ?! R! d8 M$ _
        return ret;5 F; j9 H2 v8 t
}2 v4 R& ]$ t8 N* Q* A0 X
8 W7 f- d) |3 h! v, L- Q
static void __exit led_platform_exit(void)% S* \2 K% X" A  z
{3 y; V9 P' ?0 S$ d7 t
        platform_device_unregister(&da850_evm_tl_leds_device);8 }) p- s  `4 j, {

. r* R, a6 S  [        printk(KERN_INFO "LED unregister!\n");% J" h4 U0 m5 z
}
6 D) _, {. _) p* \  \7 U# ?# J
- F; _) L( I9 N: \) umodule_init(led_platform_init);; n9 _9 C( b, `3 A
module_exit(led_platform_exit);1 o7 \$ g9 P% S1 c+ B
) w! P8 c* Q, x2 }& b" ^) `6 l
MODULE_DESCRIPTION("Led platform driver");
$ q) B5 F8 `6 {6 p/ z1 @% gMODULE_AUTHOR("Tronlong");
# G" w0 D4 Z. H$ MMODULE_LICENSE("GPL");7 d5 G# n0 E. X0 {, c) D' ?) Z
) ]! w# E/ s* o. A) e; @/ j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 01:37 , Processed in 0.035923 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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