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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 `# O- |# J7 o/ \) c) ?1 p#include <linux/init.h>
" W" m7 G+ l$ {4 J% Y#include <linux/module.h>$ q( G) J/ [/ ^6 @; ^
#include <linux/kernel.h>; U' T; `$ [: o# I3 |$ M% d
#include <linux/types.h>
: o7 f- T" P0 U#include <linux/gpio.h>8 x, [$ W2 Q% G
#include <linux/leds.h>2 T3 @2 c+ {+ A8 W2 C% n$ i
#include <linux/platform_device.h>6 j. f% Z  p# M" P

8 e4 b8 r3 `1 R9 O. E+ I6 H#include <asm/mach-types.h>
# }5 }& N; I3 A#include <asm/mach/arch.h>* @) K" J; R/ w. b
#include <mach/da8xx.h>4 N: W( Z/ l/ p4 H2 v. b8 N- X" `
#include <mach/mux.h>" U( C" e3 U5 X1 M; V6 r4 y5 S

* r# S' S( t7 O9 e- U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) o( {" _; n: Q+ W8 f! s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  c( A! Z: ]7 r
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) o+ p' l# k% r" i3 Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. `3 o! J* X- x0 X% U9 R% |$ P% `0 B: H0 X* Q. j
/* assign the tl som board LED-GPIOs*// {  ]8 q: z8 M. r. L6 L
static const short da850_evm_tl_user_led_pins[] = {# T: }$ R$ I' d
        /* These pins are definition at <mach/mux.h> file */
. I4 J! D) w2 E1 o& o& k        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) P% ~' H! ]4 A; n        -1
  X/ t  w# W! J};
! l* o0 h5 o  b
3 U+ f+ @( q! h3 I$ g. Q1 O7 Bstatic struct gpio_led da850_evm_tl_leds[] = {3 U( ?, ]7 W, ^, @
        {
' m: w$ H) _/ C# O                .active_low = 0,' T( T, j0 H% H" I2 Y* y, y
                .gpio = DA850_USER_LED0,
7 M( V0 N) F* a                .name = "user_led0",* h4 k. v3 w( w
                .default_trigger = "default-on",
1 k  O) l1 h/ e9 q6 _& F& M        },+ {+ k4 i5 f# R3 y
        {: L0 F+ q6 c; O- k% F7 {6 }$ N
                .active_low = 0,8 V$ Z2 d# a) K. k. W; m) o
                .gpio = DA850_USER_LED1,
0 |  |" Z) I. V; O: r                .name = "user_led1",
% ^7 n* T# W3 n3 _+ y8 C+ k% R, z                .default_trigger = "default-on",% L$ K; V, t6 {( s
        },2 B6 u2 t, U! P1 E
        {' w) ]4 R: O, a" `/ w- v
                .active_low = 0,2 L  t" ~" S$ a4 x
                .gpio = DA850_USER_LED2,
4 v$ c* c3 s" h1 ]% s                .name = "user_led2",
4 `7 W; ~" w, S+ S, a0 g+ O                .default_trigger = "default-on",- C* Q! L2 r1 Z6 b* l
        },# ^. D0 N2 A5 o/ h' D5 F
        {  H% \2 \* F( h1 e& B
                .active_low = 0,! ?' O6 L# |0 R2 h; [0 S
                .gpio = DA850_USER_LED3,0 A7 u5 q2 y2 L6 f
                .name = "user_led3",/ E! J1 e/ G, ]
                .default_trigger = "default-on",
. M3 o1 G6 `' u8 O        },
8 [" {5 K+ \, O0 N+ G};
( c9 P9 @! t, ?4 n! G3 l9 h
" r4 n, w& z' Q. o! E) u: I+ \/ N1 Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* d4 }3 G6 i, C. A; n$ K0 a+ u4 s        .leds = da850_evm_tl_leds,* x! q' W" V7 f8 }. Y" r6 _* _5 q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," `+ ^% I* A' x% v5 d
};
5 B# M+ Z0 O8 m+ i8 f$ @) e- B- A  a$ G4 g
static void led_dev_release(struct device *dev)1 U5 |  }7 F) |4 g  Y( O7 D
{
0 P& l  S+ q  u# a3 N" g) K* F};
. {0 C% ^8 o% U2 o2 x+ Z
; z, h% a& r6 F& ]4 e; E" Q4 ?- j4 jstatic struct platform_device da850_evm_tl_leds_device = {' v% I. j% V' K5 @% r; Y
        .name                = "leds-gpio",
. e, e/ I, ~0 g, C3 s0 I) ]1 ]. w        .id                = 1,5 @+ m! p/ @2 q9 l" V
        .dev = {
$ J# D/ f- V9 v, ~8 s                .platform_data = &da850_evm_tl_leds_pdata,
, T2 {6 S; n! {/ U# f                .release = led_dev_release,  E2 \! V& p* l9 c' o7 Y. c
        }, Y/ r4 ~( w2 f+ x
};; }8 T2 D. C' W) ]8 A8 ]7 H
* B8 v7 n7 m% v. d2 h$ i
static int __init led_platform_init(void)5 }, j0 z8 z4 p$ X( u' d( N! ]
{2 m+ y$ J# g: ~: i  j; B3 C
        int ret;2 p5 `. h( w) z. g
#if 0$ R5 h6 Q5 K0 d1 j' _' t8 V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ k0 D. Z6 m% n
        if (ret)
3 A- y7 G0 p5 B9 }                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% A  Z$ N! Y: c: t( K
                                "%d\n", ret);# ~2 j6 L* X7 c5 s# ~
#endif2 A8 W# Y  u9 c" }$ Z
        ret = platform_device_register(&da850_evm_tl_leds_device);
) Y6 H. t; y3 C8 M        if (ret)
* Y6 y( g& ?8 X# t                pr_warning("Could not register som GPIO expander LEDS");3 K0 {7 E3 Q+ n, B
        else
) E( {% [# j  Z1 C2 p                printk(KERN_INFO "LED register sucessful!\n");
: [+ m; T0 r; N7 e2 A# r1 P7 ^) m) n8 u. t
        return ret;
6 v( t, @9 g6 Q; K4 l. }}
; I+ J" ^% {* L) S# v. S" ^
, Z# F  Y6 g; c( J. @0 X* mstatic void __exit led_platform_exit(void)
7 y/ P- ?' F+ t" G, j- R{
0 {' V0 ?$ M+ L7 h; q        platform_device_unregister(&da850_evm_tl_leds_device);* j: p; ^! w/ i+ X: k: A4 y4 M

) E$ w. t9 @. i- N4 B3 ]3 S        printk(KERN_INFO "LED unregister!\n");0 m+ R) t8 X; H3 _' p
}
2 u) M: e5 @" e% _2 }. p7 U+ [' Z& M4 z  A* i" o0 ]& Y- F! {7 I
module_init(led_platform_init);
8 Q. j4 d  ~9 [" \# Gmodule_exit(led_platform_exit);
) o) G# d( X$ w9 }, d0 u" K! Z9 N& `7 B# i# u
MODULE_DESCRIPTION("Led platform driver");
) H9 T  n3 L, |7 V$ MMODULE_AUTHOR("Tronlong");
' A* M. k( H( Z/ Z( e/ eMODULE_LICENSE("GPL");7 Z; X' w) c. F* C
& e1 a2 u8 v+ b7 o* o) R. J  Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 15:27 , Processed in 0.036362 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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