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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 p+ l% S* G! P! v) w#include <linux/init.h>! F% L* M+ s* |! B- L; ]
#include <linux/module.h>/ W* n; h) r& O- o* z2 o
#include <linux/kernel.h>
' a# M1 s; ?% B9 Y. L/ p$ w#include <linux/types.h>
3 N3 N( `% `5 R  q- G! E' B- r& {#include <linux/gpio.h>5 n; x8 l: E/ ~7 u# J2 v
#include <linux/leds.h>
* b/ M2 \+ s8 z/ ^8 l% Z$ u6 k, g#include <linux/platform_device.h>- L# m9 S5 c0 p/ v
9 {$ e% Z6 X- Q5 T' @8 W( u
#include <asm/mach-types.h>
3 R+ x1 A* ?9 B9 L( R6 @; @& Q#include <asm/mach/arch.h>+ O; A$ N- m- W4 x( E# M9 O7 s) q" K
#include <mach/da8xx.h>3 q/ g5 |/ l% X! T9 {' ^
#include <mach/mux.h>
/ r/ W. B& x- |! N) n
  j" M. I+ g, I! O+ I7 Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: q: j% S( w+ s: q; z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ o' q% P6 v9 `0 a% c/ P#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* {/ \  W& k- H( s% [0 e' u% L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  U/ ~5 }- X' `  G

( C8 e/ G7 U7 x/* assign the tl som board LED-GPIOs*/
6 k) r( g; c5 t, Qstatic const short da850_evm_tl_user_led_pins[] = {
7 P; B  Z/ [- M; S5 g        /* These pins are definition at <mach/mux.h> file */& f, e4 ?5 P+ r$ a6 C# R/ B0 U
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 c( C4 u8 v/ Z! M* N; K        -1& `3 h! R* p) k6 S/ V
};, c# c$ m. z7 w

7 P! R" d6 @& @) wstatic struct gpio_led da850_evm_tl_leds[] = {
- N5 t  n) }- d+ ]$ p- A        {
5 x2 @. e: ?" q% H                .active_low = 0,7 e+ b( S9 M8 j- b0 A; ^
                .gpio = DA850_USER_LED0,
' d6 e% K' \1 d                .name = "user_led0",' b1 Q- x  K+ T% X0 @$ X3 c
                .default_trigger = "default-on",( V* ^6 g+ N3 P; u* g2 D" S" C
        },
9 ?& M' U! `4 h: k- W5 Q1 k        {( B; x& z, b& x3 M8 I+ q" Y
                .active_low = 0,3 U5 K+ y: M" z6 Z
                .gpio = DA850_USER_LED1,/ \& f4 d; d% P! L0 v
                .name = "user_led1",) x9 l# ]6 p3 i, i9 l2 r
                .default_trigger = "default-on",3 ?2 ]' d/ ~% R- V" a- w
        },
) T$ [" g) B; m' Q9 i4 l        {
$ e( k/ x! B( s. ?: m                .active_low = 0,# t$ J8 j/ V% L" M' h
                .gpio = DA850_USER_LED2,
# G% y' ?5 l# W0 Q% f# T7 C# @                .name = "user_led2",
& S% u" w. @, r  j                .default_trigger = "default-on",( a3 _9 O& B1 m8 J& J
        },8 F) [" E4 o! d4 ?) ^& _% U: T) A
        {2 L8 j7 M  v( Q. R! i
                .active_low = 0,
: [- J& }* k$ D8 |4 {                .gpio = DA850_USER_LED3,, e+ h, j5 S8 w. I
                .name = "user_led3",
$ e$ r* j: ^; z3 X1 g                .default_trigger = "default-on",
- N8 b) K. {$ o# l2 `" W        },: ]& y1 V5 v5 i$ X( t- u
};! M$ f( O- s0 j& R' k$ E
1 b7 k' @& ]2 k3 e4 K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 M: U5 F+ a; c1 T/ P
        .leds = da850_evm_tl_leds,% G0 L4 s  o. b: R; t5 C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) v  P1 m, X/ O' G$ X. i: r};3 S/ @1 c7 Q) K* r

! o" k9 u# _: E% v& astatic void led_dev_release(struct device *dev)
* r; q% G) S8 {( i! c{  w' _( ^7 ]- Q0 E
};
: [" r  ^, j- z/ a
) ~- x# ^& s4 ?3 P8 {# S7 mstatic struct platform_device da850_evm_tl_leds_device = {
. z$ ?, N4 a1 ~+ K' A# P        .name                = "leds-gpio",# S- h9 T/ g; P9 @2 s! X' X) b
        .id                = 1,! l2 U' _1 S# T  `
        .dev = {3 g/ _0 g, H7 I. ^
                .platform_data = &da850_evm_tl_leds_pdata,8 `- i2 i# h0 ]$ y; h
                .release = led_dev_release,
; c4 Q; G/ A1 ?& M) k        }
' ~3 y! Q" `$ _9 L};+ J1 [' v1 K% k/ t  s3 L! ]" r
: j8 R" I$ ]* I/ V: C( [
static int __init led_platform_init(void)& |/ L4 T" K. E; Y) k3 b
{4 R( N" Y8 l) p, T" m
        int ret;
) G5 A  r* r# O" C% Q: q8 q#if 0
9 l6 S# p7 v& G3 n' [8 o" J( A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 }6 b' q4 `8 B; F6 q
        if (ret)( u) ?$ y% O% x2 A- V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ a/ P8 }- a; s  k" ]1 f! w                                "%d\n", ret);
# c5 ]+ S! p  f& Q& u. b! F$ ]#endif
! l1 f( b# P% T+ ~" v2 ?        ret = platform_device_register(&da850_evm_tl_leds_device);
/ F  v. C- k1 t8 n        if (ret)
3 L. Y8 P0 E# G2 N                pr_warning("Could not register som GPIO expander LEDS");
/ Q. b$ F! c- Z. n4 m9 u        else% Y3 E* m( ?* X+ @+ Q2 J
                printk(KERN_INFO "LED register sucessful!\n");
2 l. U" s8 b3 J2 k# E8 a4 \: t! J/ `+ K; s
        return ret;' A2 c7 w$ {6 O0 c
}
2 N- t1 k, |1 F1 s  L0 q' J& h
  w  N* \" t) g9 j. z: ]  Kstatic void __exit led_platform_exit(void)9 ?  ?& M) A) }* u+ |/ ?
{
) o& a+ K- E' f$ Y. W7 H" N! f  j        platform_device_unregister(&da850_evm_tl_leds_device);
6 \2 ]& Y0 a0 p$ {. P2 j: n6 [$ J" f3 a9 {
        printk(KERN_INFO "LED unregister!\n");! f% ?  D. q( \- P8 x. `
}$ l: r* C1 p; i$ c" p' `
. ?7 P+ l+ I+ S5 Y  {8 B
module_init(led_platform_init);* t7 M& I% j, t$ `( B
module_exit(led_platform_exit);5 \' _) G7 }, u  x/ K* Y2 g+ s
* S( c+ O) T. Q
MODULE_DESCRIPTION("Led platform driver");
' Y+ a: C2 P( K+ [) m* g* a3 OMODULE_AUTHOR("Tronlong");
( t9 Z9 V  u  L; IMODULE_LICENSE("GPL");
, R8 F  P6 J  I
6 A3 Q0 r" @7 J3 }7 Z9 Q7 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-18 03:52 , Processed in 0.043592 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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