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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 \3 B; E. X- _" R) V0 U
#include <linux/init.h>
; q7 ^0 Y2 f; S) t#include <linux/module.h>
. S, T$ \" p' q. O#include <linux/kernel.h>
5 E( K+ V1 J; l  w#include <linux/types.h>
* O! R7 J# f3 A7 E2 A8 l#include <linux/gpio.h>
4 X7 J- k8 `3 \" H2 L5 d1 _#include <linux/leds.h>
( D$ D2 k& a7 R" x) d  N#include <linux/platform_device.h>
5 ]% f' F: }6 D& N+ H. m8 z4 B# n. o
#include <asm/mach-types.h>3 G' S! ^! k# E* _1 [
#include <asm/mach/arch.h>8 j/ d3 {5 I0 a( q2 C1 y# }
#include <mach/da8xx.h>
) v; X0 G9 v4 C2 V+ ^, J: Z#include <mach/mux.h>! e; D4 ?6 g! t$ M  J7 w7 r

9 ?" q, g3 q$ \#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 K2 j- o2 x# y2 \" I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 {7 H0 z. e. P( k& T8 W# \0 e: j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ \6 f' G* O3 d* L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( [$ Z: r+ c+ w3 t; y- ]% I* |% l/ B4 y8 E5 B& ?8 J
/* assign the tl som board LED-GPIOs*/
8 d) W0 @7 g3 M( ]static const short da850_evm_tl_user_led_pins[] = {
* F; J! j8 X1 W1 Q) d# w' T, r        /* These pins are definition at <mach/mux.h> file */
( Y0 T9 Z' x! X1 l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 T# `# w. @4 G: v
        -1; ~1 s" f# L! o- _
};- r% V, n8 s. d1 x- n/ u
) L0 ?( C9 L6 @7 h& u0 k& {
static struct gpio_led da850_evm_tl_leds[] = {, [2 E1 n! D+ m
        {
- a! O4 i3 k5 X                .active_low = 0,
; l8 @1 _5 }# c5 S# P3 O$ W. |                .gpio = DA850_USER_LED0,; u' I- O( ?, i
                .name = "user_led0",7 _  w! p, |- s
                .default_trigger = "default-on",6 g9 `+ F* q' T7 S- [
        },
. ~2 g2 w8 R. L( d& W% R        {
# g; v- S1 T5 w* K                .active_low = 0,
6 E. D4 k* B% |5 b3 f                .gpio = DA850_USER_LED1,
% X4 a# s' X5 g  e! j& N( d1 q6 W                .name = "user_led1",
3 K; b  @8 a2 ~& E% y& g                .default_trigger = "default-on",0 G! o+ k, I3 n) h9 R5 F/ y! Y
        },( K* i9 c8 t/ s. ?# Q& _
        {* r$ I9 F, [# b* B! P5 Q
                .active_low = 0,
4 \! k5 n: V% O& a                .gpio = DA850_USER_LED2,
4 p# M6 t0 t( B/ h5 M/ C+ K                .name = "user_led2",! t/ b3 G* l$ [4 E4 X
                .default_trigger = "default-on",: V, g. T4 A5 ?
        },
1 _- |4 Q' r/ F. x$ e        {3 \3 ?$ W3 }* u' [1 H
                .active_low = 0,
/ s/ l) ^; ~/ W+ U7 p                .gpio = DA850_USER_LED3," J4 [# @+ {/ d* d7 ?
                .name = "user_led3",
8 w2 q/ {! _% L, z                .default_trigger = "default-on",( W) t! D- C! q+ E0 {% f
        },& u, J% c+ i7 ?! `* |
};
' I0 |9 r8 C5 d2 D1 s9 z: K/ W
. }, h( \: z0 J0 |( hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% O8 T5 I9 L& ~1 [8 p! d
        .leds = da850_evm_tl_leds,
3 f# Z" A0 X; I9 _        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& t( k1 O! V; r3 w! ?" U9 x' L};
: z: |7 V6 X% @) E
* j$ Y# l" }! Z% N8 }- bstatic void led_dev_release(struct device *dev)4 b# o' y# i6 }4 a8 J' e
{# S5 T, q, s! L9 q1 o! Q6 b
};
, M8 `4 n5 M- _1 J2 I" C8 J' k: k% |6 a8 J+ P! @- n
static struct platform_device da850_evm_tl_leds_device = {4 z0 Z/ ~  P5 z% B
        .name                = "leds-gpio",
, r7 B+ y; ^  e$ s6 \        .id                = 1,
* a% f/ J0 m$ V2 T: r6 J        .dev = {
. @4 H" f" l# l                .platform_data = &da850_evm_tl_leds_pdata,
, ?( O' Y9 q2 z                .release = led_dev_release,9 W$ L# n# T9 y/ y# D% O8 f
        }) W  b* S$ B/ g% e  s. |* }# z. d$ q
};8 z$ c) ^0 P) v5 J3 X+ a

' F- d7 p2 A4 ?) ^5 {5 Ystatic int __init led_platform_init(void)
. ?" q" a$ C" I/ `2 k9 \{6 F8 H- q1 U. }$ O1 @7 k
        int ret;
6 M1 [6 \6 b+ Y4 t/ v#if 0
% ~$ ^+ ]( u) M6 ~( D9 ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( b, H+ [; |8 q( r7 `: R        if (ret)
) x# s8 V6 H3 [/ G& _8 \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% U, E( u, b* L  R' f8 x                                "%d\n", ret);& M) M/ z/ g7 A* @4 @
#endif
: m/ V. }+ Y, F+ r& ~        ret = platform_device_register(&da850_evm_tl_leds_device);
: h$ C( d' w* G1 }* d        if (ret)
' I- s9 q/ ]4 o8 N                pr_warning("Could not register som GPIO expander LEDS");* c+ }: J; v  N' C% o/ e2 Q/ c8 h
        else
! f  D4 h1 A5 \8 D) n* w                printk(KERN_INFO "LED register sucessful!\n");3 I9 G& L. _0 X
" l2 `( M2 ~$ m4 y+ ~& ]8 \: N$ M
        return ret;* p3 {! ^/ q4 c- w6 J2 _; o2 R
}
1 f8 v* i: I: r, T+ h; Y2 ~# I$ ~1 j: R0 n* h( i- s( v1 v
static void __exit led_platform_exit(void)+ Y6 ?1 N) f7 b0 O4 V  Q& H, G
{
+ \. x$ K* `9 F. Y        platform_device_unregister(&da850_evm_tl_leds_device);/ y: W' n- r; W2 r7 K. _
1 P6 t0 U( r( A
        printk(KERN_INFO "LED unregister!\n");. i2 f7 t' J+ n8 R4 i: I% A
}$ K  w4 O0 L9 k
1 [5 H. y# ]3 i8 X
module_init(led_platform_init);
6 b( t- E: h' k$ H! c! N* Z. |module_exit(led_platform_exit);
" D* [( _1 z- W( T: {8 b8 L. Q4 N: D/ y- g
MODULE_DESCRIPTION("Led platform driver");' _5 m& l, G1 W# C
MODULE_AUTHOR("Tronlong");
+ C( Z1 g; N; K3 ~1 _5 p& ZMODULE_LICENSE("GPL");% H. G& i  N* d: c1 Y. ~. n, h

5 V. i' x$ g7 K7 C) W' m1 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-31 16:06 , Processed in 0.042380 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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