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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 V0 W: q1 D5 h. a#include <linux/init.h>
" K( o, S3 V  n5 F#include <linux/module.h>
$ \5 M7 ^& V, Y7 c  V0 A#include <linux/kernel.h>5 p( m5 R% J# j
#include <linux/types.h>4 ?5 x) k+ j( z9 }
#include <linux/gpio.h>! v6 z; a1 z# X5 V4 V
#include <linux/leds.h>% x' ?& Q$ P" L, G2 L' u6 a
#include <linux/platform_device.h>4 P7 B$ q. L1 w. m

4 O7 J5 e) `8 A  D4 M. e. X  v#include <asm/mach-types.h>+ [- y! P7 i1 \/ l
#include <asm/mach/arch.h>
" e1 `  z5 ^* P) d* G6 r. _#include <mach/da8xx.h>
$ R; K4 t- w5 ?#include <mach/mux.h>
# J. [3 Z" \6 ^4 |9 F4 Y
$ v0 |# o# C; Q* l#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( h0 H. [) g$ d2 f* j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 c3 m/ E4 _' f$ Y& F#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 z( B5 F) }- n; F) x. j9 f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, Y/ Z7 O# c3 x" {) Q% |( w4 X6 o( J. _( u
/* assign the tl som board LED-GPIOs*/
% u! Q, i3 Z8 U8 x6 Dstatic const short da850_evm_tl_user_led_pins[] = {
8 w+ H! I, }1 \9 k0 b% M        /* These pins are definition at <mach/mux.h> file */' m5 |2 Y0 Z. N" ^
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 ^% e8 a: @: V
        -1
+ ]7 E" k% [7 N% t) L* h; `5 R};/ _+ q4 e3 u/ L$ g# Q2 D" W

/ }' y5 C, g7 ^static struct gpio_led da850_evm_tl_leds[] = {/ e5 A& l% F  y7 u" g; H$ a7 w$ w2 v
        {
2 O# Z) C0 u; \6 ~, A* H. x7 z                .active_low = 0,3 \+ s7 O1 z9 q
                .gpio = DA850_USER_LED0,
, A  g8 _$ @0 H( O                .name = "user_led0",7 G) o& f+ V1 J
                .default_trigger = "default-on",
2 S9 o. Q9 m* e9 {% B0 ~- T0 I        },
4 W  Y, W7 M5 ?8 W) a0 n        {
) \' i0 \& S% ^+ H                .active_low = 0,
0 R) }# s) k4 J2 `7 [( Z                .gpio = DA850_USER_LED1,) Y" z0 \6 A, A6 \
                .name = "user_led1",7 ?1 t2 b! L! E( L* r- c9 |
                .default_trigger = "default-on",/ H/ \4 _+ M# c8 [5 d) O8 y
        },5 R# \+ ^; [3 w" t+ B
        {
' `8 [' m  ~( l0 p% @                .active_low = 0,1 x7 q* L6 R( e7 ~2 }) H* ]3 w: F, w
                .gpio = DA850_USER_LED2,. O0 f, c+ q! W+ m2 E# ]5 F
                .name = "user_led2"," p1 K3 s. [0 e8 D& V# A% e
                .default_trigger = "default-on",6 o1 O& z7 w& A2 f$ r- E
        },
$ T+ M' k0 c/ U1 M* e        {
7 P' Q6 Q% j- l1 M2 T& ?+ Y5 }+ A                .active_low = 0,) U, o, _. C( i: Y$ y0 i
                .gpio = DA850_USER_LED3,1 Z; W1 y2 v9 L& B/ a$ \; ?& Z. j
                .name = "user_led3",
0 g' h; V" t" v9 U/ z4 h                .default_trigger = "default-on",- f2 k* X% }+ J! r% x
        },/ P( B7 ^: C+ d. {
};# M7 {+ h. ^$ E# ~
3 W( P/ w$ v0 F( y. e6 [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 u8 T* U$ ]9 t
        .leds = da850_evm_tl_leds,
8 b1 H/ x( H  A        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 \$ W2 P1 a% T; M% Y};  Q4 g9 H8 M0 L$ d. w- m$ c7 t' v

! e2 r2 F, p- Ustatic void led_dev_release(struct device *dev)8 h* M  E* ~! l
{( I' m) j1 e- l3 H+ r4 C# V! v2 S
};
6 O; S& Y# P2 `* p1 d/ r4 j3 c
0 ?9 ]/ o6 {% k, u! Wstatic struct platform_device da850_evm_tl_leds_device = {
. k( \% B* f( C+ @; [; o" Z        .name                = "leds-gpio",9 ]9 K" g, i0 f6 W4 ^: s& R* D
        .id                = 1,5 e) ^4 b7 ?9 q! ]0 R& S: N" o
        .dev = {0 d$ }; J+ n9 v! H
                .platform_data = &da850_evm_tl_leds_pdata,
4 N+ C; w5 y8 D( T0 o0 ]* N                .release = led_dev_release,
, e/ U$ ^2 }, N1 P/ w4 }        }
2 h9 E/ {, i4 v5 u3 }# f4 C! N6 @1 u};
/ r1 V) Z8 P2 f, t5 F2 @( B
. T' r8 p5 W+ x' \- [. g# ^static int __init led_platform_init(void)" k/ r& S' X4 D
{
1 b" ~1 {! M) d) G# l% A8 N        int ret;
5 J7 e/ [. d1 G0 P#if 0
) H1 k6 U$ ~+ A7 G+ L! \& d        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 |# O2 w8 _+ l% ^0 t* S        if (ret); e2 m: q9 |2 X, m
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: d# c1 w) k( W& I9 H                                "%d\n", ret);5 P* B3 h6 ^: J: n# |
#endif
' A& T% {7 Y% G- q        ret = platform_device_register(&da850_evm_tl_leds_device);
* d; o! _. K. y- |, A1 B        if (ret)7 u- k' ]& i# s  {0 W
                pr_warning("Could not register som GPIO expander LEDS");
6 T1 |+ X# z; j5 ^        else; {' a, }, r, T6 {. e% l  @& e
                printk(KERN_INFO "LED register sucessful!\n");
) I0 ^! |4 F3 \1 u
+ R0 }3 E9 L4 h" i, x        return ret;) w1 e  ?+ _4 Z
}
9 B: y# L# P% W/ K1 R1 F! v% z' b1 j6 a  W$ x3 y% c6 [
static void __exit led_platform_exit(void)
+ x2 R) \! T7 s( l) Z{
; O& f+ r0 e8 O0 E        platform_device_unregister(&da850_evm_tl_leds_device);2 n. K- \" y7 N: H
7 Z: O4 w! x# M7 a/ G
        printk(KERN_INFO "LED unregister!\n");- x" o# A5 H$ Q6 O
}% P+ v3 d, B( G9 q

$ L" A& o$ e/ o# `  [8 r1 {module_init(led_platform_init);
/ }) B) C( _! Emodule_exit(led_platform_exit);' G5 T0 h& S) B* e" \. e' c! r2 n" Y
" f5 A( E" s' X5 r( j: Y
MODULE_DESCRIPTION("Led platform driver");/ C* i. ^2 r: T7 c" K7 o
MODULE_AUTHOR("Tronlong");
7 U- p( F% D& i" o; zMODULE_LICENSE("GPL");, ]& B% I3 [$ f6 A, L7 b0 u
& S. n( Y+ A' s9 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-19 20:33 , Processed in 0.041252 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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