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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ `- U! R, V  |4 _- K#include <linux/init.h>
3 N/ Q" ?2 H% A#include <linux/module.h>
9 A# e% p% |0 q: m$ X#include <linux/kernel.h>
! b4 P4 E5 @0 ^9 K- h( k#include <linux/types.h>/ J+ b4 S8 @7 m, J5 I
#include <linux/gpio.h>2 H; ^, ~' s  S$ I
#include <linux/leds.h>
1 [. c. j' u& Y1 p" j/ H#include <linux/platform_device.h>
5 S2 @9 g: k# b8 m* {
$ v  m& T1 o, Z2 _#include <asm/mach-types.h>1 ~+ I6 [$ G# T; h! R! h
#include <asm/mach/arch.h>; K  U1 q/ s& n, Z* @- {
#include <mach/da8xx.h>
) X% E8 H# G4 g$ f#include <mach/mux.h>
- E3 Z0 O  E9 C& R4 D+ B3 M
) ?  t' f: z- n#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 ?1 m3 D' T0 [0 \; `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: s" U3 R0 H" {- r1 S#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( k7 r$ \- i% W8 B4 _1 f5 t% B, K" z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 v3 c. D' M7 s8 u# s

2 I4 `& a0 u' ]3 K9 A+ o- X9 g( l9 |/* assign the tl som board LED-GPIOs*/
7 L# h1 `" S3 I1 [. i; ]static const short da850_evm_tl_user_led_pins[] = {4 t# |9 r6 B) q* ?
        /* These pins are definition at <mach/mux.h> file */$ d5 l- M6 S- M, M, `0 Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 h' j( V3 L5 m* A4 f6 j" U0 k! F        -1
  J- Y8 F: V1 f0 V; l: p1 v};
; S; z. V6 e5 Y0 {' ]- H  V
  K* w8 s# G! F4 j7 d2 s0 ~" zstatic struct gpio_led da850_evm_tl_leds[] = {* Y' ~$ O. J2 j2 o, P% W
        {- W# H+ g$ u" h0 W" x* c- E
                .active_low = 0,+ M8 J6 n; B5 W3 ]
                .gpio = DA850_USER_LED0,
$ e+ r+ b! J9 m1 u+ J/ Z7 r                .name = "user_led0",  D! x8 }8 t. y- C. D2 F* A
                .default_trigger = "default-on",
/ [: |* b8 Z1 Z; r% W" r        },: k8 h  @/ E) ?0 h! n
        {
, L$ P+ D3 [7 u. {( A                .active_low = 0,
& e8 j" n4 I8 L! a! s- \0 m                .gpio = DA850_USER_LED1,
) V" k1 J6 W. g+ |- N                .name = "user_led1",# J  |* h6 L% ~
                .default_trigger = "default-on",
) T& k% K% ~+ {# P: Q$ ^/ I& }        },$ w! n8 d$ F7 M8 Q9 J4 d, C
        {! M4 _6 m" m# U) C, K' x
                .active_low = 0,
/ o8 \3 S2 G# E$ z                .gpio = DA850_USER_LED2,3 U2 P- I  [) T9 ~- w3 V
                .name = "user_led2",
% I" c" h$ }2 J3 Y! \                .default_trigger = "default-on",
$ K& I( |: T  F% ?        },
3 V3 n1 e# v* Y& {" m2 ]; F        {
# M: |$ E, V5 X3 n& X- b                .active_low = 0,
( a6 g8 ^! m" y5 K. L# B4 m" Y# S                .gpio = DA850_USER_LED3,
6 ^1 e# O! w6 n) L1 Y: a                .name = "user_led3",3 }8 R0 @& i! w( [( z7 n2 O
                .default_trigger = "default-on",$ a- w! C6 h1 _% w
        },
. y6 L# q' `' e% @) R% E};3 ~) ?5 ]+ @! z

" w) b/ ?: l+ C# u$ S7 @0 wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 V- O8 m; C2 k. Z  d. @
        .leds = da850_evm_tl_leds,' h6 y$ j4 L1 d+ Q$ c' ?- M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ ?, b2 g! _( r) E" O2 }
};$ q9 M; S6 i) Z5 x2 w) g/ j

6 s4 g6 o& ^+ \7 m( s" P- D: Ostatic void led_dev_release(struct device *dev)
- s9 I  x8 c* N) i+ W  F9 t{4 |8 w5 P1 Q. ~' t* D
};7 L) ?9 x/ Z$ M' I' C5 q
, {. Q7 G' n% v$ `" S
static struct platform_device da850_evm_tl_leds_device = {
5 e! R% a. k1 P# v        .name                = "leds-gpio",* p: m3 K/ {9 u, ]- G
        .id                = 1,7 {# X) ]! X8 h" u6 b% _
        .dev = {7 x2 q- \8 Z. I7 g. h4 ]
                .platform_data = &da850_evm_tl_leds_pdata,
* e" Q' _. `0 K# r                .release = led_dev_release,
/ x% o& h0 |7 @8 F& Y' e, {& d        }
5 h2 |+ Z" I9 H- a. }, a1 V};
4 t0 p* x% {7 d; e
0 z0 V, H- ^; J. B' Pstatic int __init led_platform_init(void)
  S: D  X- F+ ~8 M{' t8 d6 O9 [6 ~
        int ret;: D. s; A$ [" A7 B" h$ V5 x
#if 0
# E( @& V1 c$ B: E5 `        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 A* o; o) E; Y# X8 K+ ]  V, V
        if (ret), T! J  |1 \' @: X( U4 F, g
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ F% e5 r+ \* w
                                "%d\n", ret);3 A8 @: K3 C# N) G  N. ^6 m
#endif
. P1 c4 z. w9 P+ w# Q9 |& K        ret = platform_device_register(&da850_evm_tl_leds_device);- T3 Z1 k0 e3 \* V' A
        if (ret), N+ }$ G2 U8 N; _5 |( E
                pr_warning("Could not register som GPIO expander LEDS");0 ?1 [( t0 i" T  n
        else
* Z( h# J  ~4 P& Y                printk(KERN_INFO "LED register sucessful!\n");
$ m. u# z) n3 V: N" L" S7 R/ S: L3 h. {! {* p
        return ret;
% G5 k, D1 b9 u}1 i' N1 `# k2 ^3 [) }

/ ?$ O. N1 u3 S" D; }static void __exit led_platform_exit(void)
9 a: u% E; _$ W& a, q{
( D1 [4 d- C9 s$ a. p$ C' Q        platform_device_unregister(&da850_evm_tl_leds_device);
! m+ }' R, J) V8 z* Z# A* R6 t% ^" E2 a+ P( h
        printk(KERN_INFO "LED unregister!\n");6 t/ G. g/ W  ^
}- e* r) i6 t" [. V( B

9 z  Y( q0 F, g, Hmodule_init(led_platform_init);- t# O+ ?, y8 ~3 v2 E
module_exit(led_platform_exit);
9 f8 h7 r/ j2 j7 T0 \6 W( _0 y+ R/ C: q1 v
MODULE_DESCRIPTION("Led platform driver");" P; O* t$ E; m+ f: n
MODULE_AUTHOR("Tronlong");7 V" ~9 G- Q+ ^! c/ B) e
MODULE_LICENSE("GPL");7 j0 ]5 E1 I+ [) `+ h$ n' P
' R+ [" D: p* f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-14 03:16 , Processed in 0.045379 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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