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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ G% k- R+ P$ \% n0 g#include <linux/init.h>
. l6 u) c* g, [8 x9 [! t' s/ w7 ^#include <linux/module.h>: p: J) w' M/ ^! F, v
#include <linux/kernel.h>
4 A+ q" k* O( b9 `( J) k% N6 e* \#include <linux/types.h>
2 ^5 L' `! P* j& G( D#include <linux/gpio.h>% p# p0 P9 B7 F
#include <linux/leds.h>8 `$ @1 W, S% ?  ^, w+ ~0 _6 ~
#include <linux/platform_device.h>
' p- M4 V7 O% c$ `7 Q' ?" J3 ?# x( M( |8 v
#include <asm/mach-types.h>
! W# c' x8 m% n- W, G#include <asm/mach/arch.h>* S' j8 ~4 D9 V7 b- J2 @
#include <mach/da8xx.h>
; M" S4 ?% K. f! b  U% \#include <mach/mux.h>( z2 p( F* ]! R' M4 ]& f! ~1 W

# b9 X' u; A9 \8 R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 v) d! }( p/ @. o4 N) {! F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 i4 Z0 h- b+ O, l! @) A$ k9 a6 r% d2 K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 c0 U; c1 A5 Z" ?' E- V8 B" f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# g9 _7 {: T" e+ ?$ F# T0 v1 ]' r. o- ^
/* assign the tl som board LED-GPIOs*/
; }4 Y3 r& @- wstatic const short da850_evm_tl_user_led_pins[] = {
0 d9 z- ~, N) K( G* {6 g        /* These pins are definition at <mach/mux.h> file */1 i8 I4 {$ ~. w6 M9 w: a$ c4 j$ M
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 T0 X8 }' M5 B2 P' q' J# p
        -1' ^* z' V$ g6 F- f* W( T' X: F& U
};3 G9 N8 }7 j# X  o1 E& ^1 e+ c4 B

/ o% a. j) a  l5 D1 I* Zstatic struct gpio_led da850_evm_tl_leds[] = {: X, C7 X4 A. D7 L/ i
        {' ]. G9 X/ }& p8 ]) L1 [: p
                .active_low = 0,1 n0 z( Z1 F8 d+ W0 O1 o4 K: |
                .gpio = DA850_USER_LED0,
* [5 \# x$ m3 f                .name = "user_led0",
+ S- S$ k+ ?1 |) @+ d                .default_trigger = "default-on",
  T6 N/ w$ \/ G        },' J7 a* @6 m! F8 ]0 L" A4 C
        {
& S0 M) C& P' U; E" o. p# Q7 w                .active_low = 0,- ?# r) k2 h/ w: C0 x9 B
                .gpio = DA850_USER_LED1,
2 Y  i- ?9 X' m" |# l6 H                .name = "user_led1",' s- A7 g' \. j, [+ t
                .default_trigger = "default-on",* L+ @5 I& _8 z( A- q$ z6 F1 \
        },
! J+ A2 A) g1 y2 V7 V# H* l1 h        {
2 _) _" D9 a! \" D' c                .active_low = 0,
, w; M* ]; h- ~. l7 s                .gpio = DA850_USER_LED2,' n% z+ V9 P! |
                .name = "user_led2",
0 ~8 k3 d; W7 X$ x& ~6 l& {7 u                .default_trigger = "default-on",
9 a, H& g5 a' j4 X        },. T0 p0 ?5 `6 ^0 {0 O
        {% L4 |/ _! q2 d9 p6 ~
                .active_low = 0,4 J1 f6 r0 V5 V. u# R3 [' Z
                .gpio = DA850_USER_LED3,3 J( k. A) ?+ q5 \( C
                .name = "user_led3",
6 T% F8 M5 B. ^+ Y' ?& N                .default_trigger = "default-on",
0 ?$ ?! P% |2 M0 t        },+ D" b7 v, f! j
};( r! G0 A6 u6 y$ ~' e

2 \: Y3 }% s" e8 ?5 v- j) N- xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: l2 X& ]! e+ M
        .leds = da850_evm_tl_leds,7 ~; M! H) ?, o/ J( P9 _. Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ j- D4 N& N, b% v! G; s3 U' }};+ t+ {: w/ x2 q9 x* H: |
7 y" l- j7 j3 X% L- j% R" k, c
static void led_dev_release(struct device *dev); @4 h3 l/ y$ Q+ D' _
{
7 t$ c2 m2 ?8 Z) C2 ]. j};
' C" V6 P' K+ \: i9 E2 Z) u$ ?4 z1 v- ]: i; Q7 V. F0 t( Z0 ]
static struct platform_device da850_evm_tl_leds_device = {, g  c6 k% b' V; j# d3 U  `! ~
        .name                = "leds-gpio",
' ^0 K( f, I* _  h6 t        .id                = 1,
/ Y% ]8 |" W* a4 V& E" S        .dev = {  E+ k! q! |9 ^
                .platform_data = &da850_evm_tl_leds_pdata,) q0 w' x% T" @0 v
                .release = led_dev_release,. y. V9 b9 L. U+ P& N
        }
' q. Q  N6 j- M+ I. Y- _};
& V5 k, ~# q2 D1 A) ^% Z1 q/ h  z7 n; L% P9 u
static int __init led_platform_init(void), H+ W; f0 M5 z  @- A
{& c  T; o+ h* S  \2 Q) W
        int ret;6 k7 d/ \4 O1 X
#if 02 m4 g7 V/ C% c) ^7 ^8 ^5 S  x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 o2 _( k! ~, z! `' A
        if (ret)
& C0 n/ X+ a* l2 g8 j( |+ F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% x: m. O9 V3 }5 w5 V
                                "%d\n", ret);/ d+ j; d* p2 L! T  i. Z1 g
#endif2 A/ c# d$ `  n! c( r6 ]5 C8 Y
        ret = platform_device_register(&da850_evm_tl_leds_device);( N, ?3 n& L8 N8 M2 S( [3 o
        if (ret)5 v& z) u* x% e4 A( ]/ H( J
                pr_warning("Could not register som GPIO expander LEDS");
# e& O% y8 W( h$ c        else- u3 ^, O2 E0 @- `; P- u! h  I; {& T
                printk(KERN_INFO "LED register sucessful!\n");
" G* N; {4 C6 ?3 Y4 h; J: J
; l' L3 t1 d$ l1 j3 r        return ret;
5 m) f# c. X& A: C; G4 L& g6 B/ t}
" h4 R! p$ d# v+ S6 B8 P1 x) A" H: C- d" C7 }  V2 _( ^9 M
static void __exit led_platform_exit(void)
' i- C0 E' H  A7 `/ e+ H# ]  l2 L{* D4 t) N$ B- O* `* R
        platform_device_unregister(&da850_evm_tl_leds_device);
, Z' P7 N% p3 I" Q
# s+ d3 R- W% u( [$ O        printk(KERN_INFO "LED unregister!\n");6 R" c( o" C2 `4 v6 o( J
}
8 r3 o$ I8 L4 r$ P# L0 r9 }! v
% W5 G7 {; T4 _# f8 d1 Nmodule_init(led_platform_init);
+ {7 H+ h  N3 @1 H" I3 omodule_exit(led_platform_exit);$ K7 X, S7 h- @; t8 e2 p  V8 U" X

2 h- r5 [9 I, f7 ]0 V$ y) |MODULE_DESCRIPTION("Led platform driver");
* Z! J5 a6 ]& Q  gMODULE_AUTHOR("Tronlong");) s$ Q% V% ?$ H' t8 b. f' f% A
MODULE_LICENSE("GPL");
& ~/ R( V! o3 i4 _. l0 `- @: T" q6 {/ D4 {1 {1 r) |+ p3 D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 14:58 , Processed in 0.037510 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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