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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! h' O5 A- }( ~#include <linux/init.h>
+ {4 J/ v) _7 |' i& C3 W, ~#include <linux/module.h>
" v9 g' G2 S5 N4 X#include <linux/kernel.h>
, f' S; Z4 u; {6 s3 E9 k% v#include <linux/types.h>; f7 B( u: b# e0 u
#include <linux/gpio.h>3 J$ B) Y' l* E: n% z2 I/ e2 n/ b$ i
#include <linux/leds.h>
0 Z* c! H$ z  k- U% P, k' G#include <linux/platform_device.h>
, `+ w8 z4 v9 B: p" X# B9 n3 J2 G$ M
#include <asm/mach-types.h>( U; t. p1 X4 w' m% O
#include <asm/mach/arch.h>
- l7 T2 F0 K# C#include <mach/da8xx.h>
4 }' }* v$ L! g3 Y$ I: m, W#include <mach/mux.h>% ]/ _8 @- n/ B$ W9 Q( B

' S6 U1 N1 n/ _5 M5 J; J#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 _3 S1 Y$ }) o3 Y$ `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# }5 v+ z( B) R% P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 Y+ D3 L* {* m  R& {0 y+ `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ J/ T. N  C1 z: p

$ [+ H. K' H5 a/* assign the tl som board LED-GPIOs*/( J! y: A3 f! `
static const short da850_evm_tl_user_led_pins[] = {
( Y) J4 o! K8 F        /* These pins are definition at <mach/mux.h> file */
3 d' s  R$ K* V- R2 w3 D        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 g2 t& Z; o% e8 c" p  q
        -1$ V2 x' [2 H% m1 \" E/ ?% F
};; i$ U7 G- |& F3 v

& j- I7 S) e1 }1 w  ?& F+ ostatic struct gpio_led da850_evm_tl_leds[] = {& c8 x0 S7 C7 t# P! Q5 T( Q
        {
) m+ Z. n- n  v* J  t+ i1 F  `                .active_low = 0,
% Z! t' a! T- P3 }5 A7 E                .gpio = DA850_USER_LED0,0 H/ |; I9 P& t/ J0 X
                .name = "user_led0",& P7 Z* p; ~; J( h; [
                .default_trigger = "default-on",* U% ^) t6 q1 O9 t7 A: \6 G' P- Q
        },
" ]  t+ h/ O! u; l$ P        {6 x8 W. N! ^6 s9 r. Z, p! K8 y( a
                .active_low = 0,
7 y( K* k0 W7 c! a                .gpio = DA850_USER_LED1,% ~" J  T7 `9 w; U; s" N. G1 c9 b
                .name = "user_led1",
! c5 q, }* {- P4 r' N                .default_trigger = "default-on",5 Z" n$ \7 n: [5 ]0 _6 r
        },( }4 u5 B8 k5 u/ h
        {
2 D. c7 e! q' l/ V: A9 o' ]1 L                .active_low = 0,
6 [+ F9 W( ~' u( U4 e                .gpio = DA850_USER_LED2,& p# M% z# H: ?; r/ {4 G) }
                .name = "user_led2",( O2 X; H% N4 I% ]  F  a
                .default_trigger = "default-on",. i" t  ^9 G) T& X
        },/ _5 r. E( ]  H- v
        {$ K! P9 G2 g4 Y1 y0 C/ `6 E0 o
                .active_low = 0,
& v0 T( q9 [* L& C2 j0 N                .gpio = DA850_USER_LED3,
. O! Q) P" }( x# k8 [6 }                .name = "user_led3",$ {, r2 X" Z. M; v- V, B2 v
                .default_trigger = "default-on",
8 E# h3 J, M* W+ f' g/ `        },9 z7 N6 N+ m* F( K& L
};
* S' U3 y* }  y" J6 c! z8 k6 R5 i
1 b( \: U( }: m9 K' d5 Y9 w& h/ xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: n; `9 t# p# H: f7 D
        .leds = da850_evm_tl_leds,
. f$ W2 N# k8 t8 i+ n8 Y6 [7 N        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" y3 ?, i- k" S};
9 d! q. D: m. I  M$ A6 J9 T  `+ I% R2 G
static void led_dev_release(struct device *dev)) ?0 j1 l( l/ T7 N+ k7 i7 ^' T5 P  H
{# z6 C" g6 x5 C! ]7 R9 _
};& r: T: W# C" O& Q7 p8 R. V
. A; g* N: o: F
static struct platform_device da850_evm_tl_leds_device = {! O/ ^8 M4 }: T
        .name                = "leds-gpio",
2 L' [  w1 I6 W, R& `        .id                = 1,- b2 i$ C6 s$ e- u& h( X
        .dev = {; `5 o7 ^  g4 @' b/ t8 \
                .platform_data = &da850_evm_tl_leds_pdata,
) U- m. n) F9 A1 u" I4 Q  y                .release = led_dev_release,
# S6 ^+ s. [9 X+ q# J* P        }* c7 O$ K- O3 \  s6 M( B/ q( w
};
4 @! g: Y; {, R" C1 Q. }8 S
' A6 L5 f8 b# U6 @$ J, R4 S$ kstatic int __init led_platform_init(void)6 |$ @( A5 s6 A  z
{* S" a2 \$ h$ Q( r: z$ b$ s* R# T
        int ret;+ |5 i! l6 [" u' r
#if 0  a# a6 l. u/ i2 g) h+ J/ K
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ n4 d4 x) j  J        if (ret)4 y2 Y8 i- _+ C5 i, x  t& `% O
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 @# Z+ M  a* r7 _& _                                "%d\n", ret);
9 l$ Q. V1 P0 K0 Z' m: K#endif3 f2 O2 ?  B2 W1 X4 \
        ret = platform_device_register(&da850_evm_tl_leds_device);  p5 I8 F' {  k) a" z) q8 k* v
        if (ret)3 r. n/ q+ v4 Q- d# B9 }& z
                pr_warning("Could not register som GPIO expander LEDS");% U( {4 ^! K& k
        else0 [* W+ A& R9 J: B
                printk(KERN_INFO "LED register sucessful!\n");7 r) _: l7 P( I7 D- B

9 r7 X6 U( f. [! W4 u7 C8 t        return ret;
! Z# Y3 S, ]4 c8 |& M3 d: ]  ^& w' u}1 f/ ^7 e! t: n+ D" z- U7 ^

/ q" m6 ]$ i$ b* Ustatic void __exit led_platform_exit(void)5 [& K  }  W! [$ P% w' {
{
1 K8 l3 j2 K% f- S        platform_device_unregister(&da850_evm_tl_leds_device);
- g6 ^/ ]# \$ T& q$ h
3 [7 \/ R6 W/ M8 F$ g- N1 \        printk(KERN_INFO "LED unregister!\n");
6 C5 p2 G9 ^2 r6 N}* X1 I- H$ C, S8 I. r/ ?  Y

# m0 i. [& I, }module_init(led_platform_init);
' V! h1 R$ |( k! G! X% I/ Smodule_exit(led_platform_exit);
' R9 i8 e5 |: F& \8 L9 d
6 g7 W) e" s* \MODULE_DESCRIPTION("Led platform driver");/ \, g. j) b; i9 B" x$ q2 Q
MODULE_AUTHOR("Tronlong");8 C/ D! v' l" X5 p' B
MODULE_LICENSE("GPL");+ H2 r# `2 _# r$ Z

1 _* X; L! _- }* Q- O/ B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-10 22:40 , Processed in 0.041807 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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