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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# @- b, X4 i' B! Q#include <linux/init.h>
  r8 U8 t# Q+ |1 ~" p- U#include <linux/module.h>
9 T$ W* m+ y: i3 [#include <linux/kernel.h>
) d! l/ J3 Y# D3 Q: Y$ B#include <linux/types.h>: O( f- k  {0 P8 A8 H* f
#include <linux/gpio.h>
8 A. `* _& e/ ^1 \#include <linux/leds.h>
' U; ]- A; p* B4 M9 L#include <linux/platform_device.h>
3 i6 b" ~4 H! y
) E0 P. l- @( N& g#include <asm/mach-types.h>* F& ^8 E; m: t  y
#include <asm/mach/arch.h>; G" C8 O1 r5 `
#include <mach/da8xx.h>9 e% M4 E9 d9 l+ |
#include <mach/mux.h>1 i8 p, |3 `& C; w; H% A
# f; c" u2 f  Q/ O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 b6 r+ k1 N+ C) |
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 k  W; n: e9 i
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" p; t. d; }. w% P( _8 h
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 [; ~. Z% w0 j( n0 g

+ v2 Y$ s1 \& D9 G, ]; @/* assign the tl som board LED-GPIOs*/5 @5 F. U( m. j2 {" q
static const short da850_evm_tl_user_led_pins[] = {1 F3 ?  M) D! }
        /* These pins are definition at <mach/mux.h> file */
1 c! n* H$ W# n0 I$ Y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. ~# O/ ^$ E1 W
        -1
4 x1 a. X3 Y/ H  d: \};
1 F" r% i5 O8 v2 S* ?- _" w5 q- F9 H( Z
static struct gpio_led da850_evm_tl_leds[] = {
! j  C' \2 V- K* u& e5 R# h- ]        {$ H' r9 I8 Z7 n2 n
                .active_low = 0,
! V1 s: s0 B9 w0 O1 R                .gpio = DA850_USER_LED0,* t6 C8 \/ {( e: M' V
                .name = "user_led0",* f- L' g; H  ~# J' k" o7 [. T
                .default_trigger = "default-on",) h: ]! Z  q5 O1 G; b0 @1 Y+ m- i+ r
        },* J/ |! D& {: v6 Q1 `2 r, p
        {0 j8 ~* Y$ \0 q) @5 d7 o. N
                .active_low = 0,
% Y, R1 g5 f( f# T) f: ^                .gpio = DA850_USER_LED1,, J2 {$ x7 {1 O* ~; g. z3 J6 Z
                .name = "user_led1",. _/ s- A5 E% r- S, M
                .default_trigger = "default-on",+ }$ Y  O4 Z% I# ^
        },
5 U& G' M. }7 x( k2 O/ O        {" k2 G( D3 s6 Q1 w1 C6 g, k
                .active_low = 0,! ]- y, [" d! t, q
                .gpio = DA850_USER_LED2,  i% k# y/ @. B6 u
                .name = "user_led2",
1 b! [* J6 M6 D5 h7 p- y                .default_trigger = "default-on",- o6 H2 e( \+ [' h# C
        },5 q! m1 L# _: _% I& J1 i
        {
; o- \6 C9 l# B, \4 f: o2 l                .active_low = 0,! q! t) h4 n1 ~. C0 y' y+ s+ n
                .gpio = DA850_USER_LED3,
" h; n: n9 H2 n/ S: Q. X                .name = "user_led3",
0 m5 r# C9 D% f0 @$ _$ D                .default_trigger = "default-on",5 F# d2 r2 A+ f2 V
        },$ L9 J: b; ~3 O
};
& R& z6 h" e. z% a6 Y( b) ^8 d" R- g6 u' u1 l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' i7 T8 B' C9 e4 K4 `
        .leds = da850_evm_tl_leds,
. D4 R" h- s8 ?" N2 K( p        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' o% e) w. O+ ]5 {! j7 V
};
. r' G- y+ m4 \5 L# O) N! V; J! m$ F4 }8 C+ M, m
static void led_dev_release(struct device *dev)
5 \% _+ k8 [. J: D{
( p+ D5 C' W! C! n};
2 ~, g) G; i0 m8 x: V
6 p3 u, j0 Z, o5 u8 R, r5 Pstatic struct platform_device da850_evm_tl_leds_device = {9 k0 x9 q5 \  r  @
        .name                = "leds-gpio",7 t8 w: q4 X- T' z
        .id                = 1,& Y$ r/ ~6 `( ~1 Q" t
        .dev = {
' U# @& I; e# E& K5 M+ t                .platform_data = &da850_evm_tl_leds_pdata,
! I" |  v% y) e" E: {                .release = led_dev_release,
" x  Z/ |9 @$ Y2 @        }
9 g5 ]7 l" r, b3 f0 u};7 {5 @7 ?. z8 M2 @0 j$ U

9 C7 U" K3 }! M* a: O! v9 kstatic int __init led_platform_init(void)
- r' [$ ^8 ]- e{) g+ C" Q  Z5 ^+ k; U% |  X
        int ret;$ k4 W( {4 F: `8 q
#if 0
5 _8 k; l3 h8 q" |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 w% J$ _: o( D, t# M+ ~        if (ret)
. [" @  o5 a1 u$ g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 e6 R0 t0 K# P/ @) F& l1 E
                                "%d\n", ret);% {2 K. u# |/ Y9 w
#endif+ U0 r) Q. L8 i
        ret = platform_device_register(&da850_evm_tl_leds_device);
! A0 j# N  C4 c0 y) {# w        if (ret)! Q8 p' T* W4 k4 k- G" c- o
                pr_warning("Could not register som GPIO expander LEDS");% P3 G* h2 {# c1 Z( O$ C
        else
8 l) q6 R1 f; u                printk(KERN_INFO "LED register sucessful!\n");
- F' \. u  R4 Q6 Z! q3 A# H& m0 O( D) {  e4 t+ j2 |9 ~1 o: L
        return ret;
& b: }4 g" D8 b  A2 F}/ e8 ~( q$ f6 T. N  C

/ v! _& |& c8 Y7 |" c+ }static void __exit led_platform_exit(void)
' r8 K( H" B3 `  ^; _+ ~{" J. q: Z% D1 u
        platform_device_unregister(&da850_evm_tl_leds_device);
! Y8 i4 F7 f7 X8 n( d
/ E9 }2 A- L/ a9 }% q" X/ R        printk(KERN_INFO "LED unregister!\n");. D* F2 D; F& l' |
}
1 ]* }0 w3 Q  [" i- A. T" c# u7 `
8 p! U" ^+ G/ f  s% {: o0 e  E4 fmodule_init(led_platform_init);8 [! G; N; u7 u) d
module_exit(led_platform_exit);
) z* b; m+ W1 a" O2 D* s& ~( s' P
MODULE_DESCRIPTION("Led platform driver");! b' n+ N6 H) T/ V# z
MODULE_AUTHOR("Tronlong");/ ~, E' o. K9 H1 M6 j: K
MODULE_LICENSE("GPL");
2 E. |% B% ?- K! |' C3 c, I$ ?6 Q: p: H, B6 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 16:43 , Processed in 0.037983 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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