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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; a% @0 }3 h9 b! Y4 }4 b7 c
#include <linux/init.h>. u( z% `* s" q1 T. }/ k( {/ ]
#include <linux/module.h>
5 Y0 f2 c4 Q) X- y1 L: {# Q6 b#include <linux/kernel.h>9 b8 j. J$ n- e8 K+ X5 j6 t
#include <linux/types.h>* B& y; R5 N) O9 N" M
#include <linux/gpio.h>  T3 d. Y& k9 K
#include <linux/leds.h>
2 ~+ L& `0 f! A" A9 Y) y#include <linux/platform_device.h>+ G' q7 R0 v* H7 l+ Q
: B$ j; t* l& ~) e: ~8 E3 ]
#include <asm/mach-types.h>) F1 R6 P+ A  R; j1 r; k7 h
#include <asm/mach/arch.h>( J5 j; \* N( V; y0 t0 s! N7 S) F1 U
#include <mach/da8xx.h>& `4 v' S% H6 `8 d) n. G
#include <mach/mux.h>  T. r+ C: e8 A
) G, Y' n# \- J9 l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- N! G) _" k+ c  I* ]2 B9 j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: w: O/ g# v) n4 R4 M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( X" Z" O1 R+ H- t# L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ u& g3 j' j* B* B8 x) _! U6 x  d
) {; l- q( e; n2 v2 z
/* assign the tl som board LED-GPIOs*/
" j* q' n, u* l; F1 u$ {static const short da850_evm_tl_user_led_pins[] = {. c; I6 p7 a' R3 @4 B; W
        /* These pins are definition at <mach/mux.h> file */
+ n7 K+ S# L4 S, S) `& r+ g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; `' @# G0 B* ?        -14 j4 e4 `4 O& g2 y9 x; s" _
};
4 V1 w0 U: _$ D; w$ F# y  |
7 }9 s% g: ^2 V# u+ z) vstatic struct gpio_led da850_evm_tl_leds[] = {' l5 W* c/ H: \9 i, Z' b
        {
. @+ @: S9 q) K5 ^' c                .active_low = 0,
) T0 N4 _( \6 i                .gpio = DA850_USER_LED0,7 ?$ o& o5 H) M' k5 E5 i; ~
                .name = "user_led0",
4 U1 z7 i% t; E0 P4 {                .default_trigger = "default-on",/ c0 f7 @9 `0 t
        },
: H9 e# t) A4 A% F! C0 o& |        {
* ]# i' y( u$ ^3 F: w0 z$ h+ C) I                .active_low = 0,5 _+ }+ \+ E2 }6 {% l' B
                .gpio = DA850_USER_LED1,
8 f- c/ S" e; I                .name = "user_led1",# I: _! d( V" n3 o7 B# X
                .default_trigger = "default-on",
. A0 j' \: h; O7 U) n2 C% }        },
# i" y: |8 c$ K) A- \        {$ l; S; S7 @" L+ @& b  n* p. e
                .active_low = 0,. n6 c2 `  F  v; W
                .gpio = DA850_USER_LED2,
: W0 {  Y+ l/ R* N# I/ Y0 F                .name = "user_led2",
& V: k* p, L/ r                .default_trigger = "default-on",6 M) E0 |: W' o! G* `* g
        },2 l9 e4 T  @, L% T8 z
        {. l/ ?8 K. {) E# U' P: I
                .active_low = 0,, \9 W# N9 {, u8 N. M+ O/ y
                .gpio = DA850_USER_LED3,4 W7 v" g$ i9 u& ~. @: ]$ L
                .name = "user_led3",
0 u+ n/ R2 B) H% e7 E2 p- V- U3 G                .default_trigger = "default-on",
1 j( P' G/ |- u0 J5 {: X" g; [        },
5 }) {- d& X+ j6 _! u$ f: s};
+ h: m; ]7 }$ @. d- C' ?3 H2 U( h* l) W- ^3 l7 w# `3 P! e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! v- W1 o$ Y% G
        .leds = da850_evm_tl_leds,2 g; d3 H: C$ l* a* y' Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  n2 ^9 V. ]% C  ~3 [- E( _
};
7 k2 l3 e" S: @- [. W
2 ]+ j* N1 l6 T2 l5 y3 [7 ?" Gstatic void led_dev_release(struct device *dev)( F# L* p6 l- N! m+ N3 d. e
{
7 e' h3 o( u. D};6 |8 {) z! q. O. ?; v9 T7 U* e. q
; Q$ F! f) ^& \% J) i. Q
static struct platform_device da850_evm_tl_leds_device = {% U  u9 k  l: g; D
        .name                = "leds-gpio",
; W7 J5 l" @# D5 \9 O        .id                = 1,6 G. ]/ T# w3 W
        .dev = {
2 z5 w. a0 w0 @! }$ j+ E9 e                .platform_data = &da850_evm_tl_leds_pdata,
: C7 {5 z+ k1 p# y( a1 E. F) G                .release = led_dev_release,  y2 D8 [% N# O5 X) |# R% I
        }* t  g/ G+ v& a0 R/ R, r
};1 U6 _2 G) T( c1 _  H5 A
2 i. |9 i3 i/ o
static int __init led_platform_init(void)9 {% L6 u9 ]1 }6 }: F
{
4 ]: \/ C1 m& t        int ret;- D" f4 K! _% b
#if 0
* v  H3 O3 d2 d4 m* E; J9 q$ A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( V+ F; F% |2 H$ s9 e' R) z
        if (ret)) l1 }: o6 K- S. v8 q! R; C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% X* Y* S. f  V; O0 B% u/ c                                "%d\n", ret);
4 }  H, t# J3 S0 x. O4 E#endif- y7 A- C0 e0 x1 r
        ret = platform_device_register(&da850_evm_tl_leds_device);5 x% v" c% S. ^" m: t
        if (ret)3 i/ r+ K  o# R& a2 A
                pr_warning("Could not register som GPIO expander LEDS");
  ^2 A9 ?3 S4 `& L" t1 q! x- P        else
- l" E- b5 ^; I4 h! @                printk(KERN_INFO "LED register sucessful!\n");/ h; x7 m) p4 X& v. O+ C) V+ U& j
; ?5 ~1 B6 w1 [' c3 l
        return ret;4 s( x' o: Z' f' Z& N8 b
}
/ O# u6 j( Y& T1 y3 x) N1 r; e
5 y+ b5 I3 ^- I" k+ h2 `/ z# X; y3 k" @) }static void __exit led_platform_exit(void)
, ?1 h% U3 T7 ]8 u0 Q( p{
- L8 ?% ?, \$ o* t0 T        platform_device_unregister(&da850_evm_tl_leds_device);. H' j  R9 p3 q7 M# _

2 x8 m3 _+ I- {        printk(KERN_INFO "LED unregister!\n");
$ y5 D: c0 t7 X6 ~7 N0 o7 P( X}
; K) D/ v0 a3 H- w7 Y2 l! m: }6 m0 q# r, {) d$ e6 h+ V
module_init(led_platform_init);8 k, N" J' o5 W& Z: a- O
module_exit(led_platform_exit);2 }0 j% S: u0 P' U3 N: o
# E. |, S. l  o2 s$ N% r# K6 L- D; r1 }
MODULE_DESCRIPTION("Led platform driver");
2 a9 t+ B. f" @( D6 U0 zMODULE_AUTHOR("Tronlong");2 f$ p& l: ~" k' j
MODULE_LICENSE("GPL");
* V$ v4 Q; \+ I; c, \! O/ `9 {4 P
) C6 t7 O* D, }0 A4 C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-5 13:08 , Processed in 0.038316 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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