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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ _  C, f) J+ O- K! G# ?0 y3 o#include <linux/init.h>. q' i% t7 ?+ K7 y  ]% p
#include <linux/module.h>0 s5 n# S5 Y& j- n( M( q0 I
#include <linux/kernel.h>
1 ^- p  C! P2 w/ M8 x4 _, [#include <linux/types.h>) O4 s% T; {! O* j% |
#include <linux/gpio.h>
2 }; e- f8 |1 m6 G; Z; v8 @* X#include <linux/leds.h>* T( D4 i( N! d2 m) q4 t8 U9 ]
#include <linux/platform_device.h>' r$ e9 B! c$ N& ^* l; L1 C0 h
* s% E# |. z7 z5 E% {' _
#include <asm/mach-types.h># S% Y- A3 j: f
#include <asm/mach/arch.h>
* u2 a8 G, ^( N& u7 [+ U4 A#include <mach/da8xx.h>
( A' C2 \& g* W9 h, Q#include <mach/mux.h>; F- H+ [- P/ x/ a; A
6 r" }8 t: Z$ W1 e- R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ H9 l6 U, i1 r  p#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" _: j* Q: W& N, M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): l# D' H* t1 g/ R6 \9 V' ]7 m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' d$ v2 _7 J* {3 C( {: K4 p" b2 r7 c  R
/* assign the tl som board LED-GPIOs*/
( H  l0 a# W( Ostatic const short da850_evm_tl_user_led_pins[] = {
; L. O3 m  Q. w* e, H) U1 p5 k        /* These pins are definition at <mach/mux.h> file */
) m* `) x5 J8 e+ N: H: V) v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 S  e$ A; x/ ?; f
        -1
" B( N8 l9 q0 L4 \, n' H5 z};
6 q9 _5 r$ ~  @
2 ]' ?' H% w; M; K6 Estatic struct gpio_led da850_evm_tl_leds[] = {
9 M3 l) j* U% Z; v        {
2 p3 N( F0 K& w8 X                .active_low = 0,( \/ m+ {5 T1 |- r# a: e' T
                .gpio = DA850_USER_LED0,! Q0 C( i! h# X4 l) B9 d9 R) {5 |8 W
                .name = "user_led0",
. _9 s/ w3 z3 n8 D& X                .default_trigger = "default-on",
5 G' E. G8 q" j& R        },# _. b  d2 `5 N
        {: o6 w9 t, i9 B% U% d0 y$ {6 @
                .active_low = 0,) g; i% C/ c8 c) R
                .gpio = DA850_USER_LED1,
6 V2 z7 y3 H3 c$ Z& K  T6 r                .name = "user_led1",
0 S4 ~# T. w- m6 v+ u7 ]7 Z! O                .default_trigger = "default-on",! x2 G- j+ F6 _* f) z7 x* `
        },8 b$ J1 X# H0 d9 u) w3 o; e
        {
6 }3 y1 t2 x+ V7 H+ O                .active_low = 0,4 x# i0 e! x* z- K+ \9 p2 x
                .gpio = DA850_USER_LED2,, {7 k' O: o) {% R
                .name = "user_led2",! B$ i9 ?" ~# i7 R
                .default_trigger = "default-on",4 m) s" a3 ^+ V1 b* Q" s: W
        },
6 d$ ^3 A/ K6 R        {* u+ t4 R) o4 j; _4 ^
                .active_low = 0,
2 F& b9 e5 M5 H8 u! `                .gpio = DA850_USER_LED3,6 T+ f; |8 z2 G3 j# P
                .name = "user_led3",
% x* E% g0 {4 o1 w; h& y/ o                .default_trigger = "default-on",
$ ?& o; d$ t' `* F0 h        },2 k2 `" A& b, W+ Y$ A+ w( T; l
};/ @  E- H. t% @- a
+ `  r1 z' a- Q/ j1 O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% f) X8 d% v3 q! e! i
        .leds = da850_evm_tl_leds,4 x% e2 W/ V6 T2 K' ?/ B% {) r2 ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' d/ H3 R3 @  L
};
7 }4 v2 w! t, R' W9 x
# h$ U! w5 Q( x5 hstatic void led_dev_release(struct device *dev)
6 l# B" @) _. d; ]1 n{
, a8 |/ ?" H- b8 a9 Y# _4 R};
6 [" }7 b) i. l' t( @0 H
& [; d% V0 |( ~' dstatic struct platform_device da850_evm_tl_leds_device = {
$ l3 K6 n1 ]! P$ ~. {: J- `        .name                = "leds-gpio",% d: p- L7 F8 b$ c, u
        .id                = 1,
' O  G# h3 ]. c8 W2 ^4 _        .dev = {& L1 C/ x! c6 i3 @4 ]+ i
                .platform_data = &da850_evm_tl_leds_pdata,7 K5 ]: W/ ?" X0 J) w' H  M  ?- L6 A) d
                .release = led_dev_release,, G* w- m7 O, \" b
        }
3 n$ {- q* m( u: X' w  C5 H' w( o};% t' \. X: z, q5 L, Q- T/ X

" ^$ \$ J, e0 V( q- q) g; u1 G8 Wstatic int __init led_platform_init(void)
' [0 M& {# Q: e7 M{4 [- R9 ~* s; C3 c
        int ret;
- F2 t" o! T7 [! x+ J#if 0: h- ~  T) J7 c4 o3 B! E( E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% P, T* z; d. O: y! N        if (ret)- I1 Y- k# ^8 M6 n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: s' b8 ?+ g% u0 y                                "%d\n", ret);% ^3 S/ L4 L) @8 t! |
#endif
+ p: B2 k; v7 S4 Q  V; A: \        ret = platform_device_register(&da850_evm_tl_leds_device);" h+ k8 [" y! o3 {- s4 H
        if (ret)/ Q2 R8 F6 L5 o. r7 M% `
                pr_warning("Could not register som GPIO expander LEDS");% ~0 l' @5 l' y1 H  @5 I" T
        else
1 l( P$ ^/ U- m$ b: K                printk(KERN_INFO "LED register sucessful!\n");
3 H( I' ]: B  d! C, a0 X6 M9 d* Z; ?  C& Y- C2 S3 ?
        return ret;. E! F5 }& E9 c' X# q
}- b# X; P4 {5 P
1 _% k; |# }4 O3 D3 T
static void __exit led_platform_exit(void)
# x6 z. h9 n" o" D+ W{8 [* b  g' \4 Y/ ?8 H" j
        platform_device_unregister(&da850_evm_tl_leds_device);
3 _/ M; M2 c6 T8 K- [7 W: p3 e3 a
        printk(KERN_INFO "LED unregister!\n");% b3 N/ A, K( J6 s4 }( l
}
' L( l9 o, q- k% c  ^" I7 x* B& X* N; O
module_init(led_platform_init);
& ?" H& R. B& o) p. o9 Vmodule_exit(led_platform_exit);
4 `  ?6 @  o6 F, y2 _/ L8 R2 Q* Y7 M
MODULE_DESCRIPTION("Led platform driver");* [$ J& `5 o) s
MODULE_AUTHOR("Tronlong");
4 p6 S+ P( h7 RMODULE_LICENSE("GPL");
3 f: d2 s) V- V, I2 o" W. s
: _# q/ T/ z: a0 ^7 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-23 02:57 , Processed in 0.042635 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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