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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; d" T7 ?8 [! J) n#include <linux/init.h>8 U! H$ D! l8 e8 E$ r
#include <linux/module.h>& W! {1 z  m" |0 V- x% z
#include <linux/kernel.h>+ {/ ?& ?/ `% M& i4 h+ ?
#include <linux/types.h>2 @! _1 E$ S" F5 S3 m( R  O0 u- m
#include <linux/gpio.h>) d8 P5 L* z7 c. o3 g
#include <linux/leds.h>; ?! F, @. U# ~4 T$ k; v! D9 }
#include <linux/platform_device.h>* ]. A  F. t/ U* ~6 z% |

  k/ n1 t& L+ u2 I4 m#include <asm/mach-types.h>  }- W) b7 z3 @' n9 M9 e; q3 O
#include <asm/mach/arch.h>4 O8 K$ @9 W9 }
#include <mach/da8xx.h>
: Q) g, k0 V9 i& j. b#include <mach/mux.h>; U: r2 B) _% F

: o5 O2 z  I4 W+ t: s. E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* j) M9 y! S0 M6 S+ o# X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- v/ C2 s) y6 C; b9 i2 ?  Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 q0 q, p8 E3 J- B/ Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- j" B. q" \$ E* O
: T& M% d/ y( J7 a/* assign the tl som board LED-GPIOs*/& B9 x$ R6 V5 p+ L5 W/ K; ~; K
static const short da850_evm_tl_user_led_pins[] = {
7 l' k; }9 l+ c& d; @# L8 Y( [        /* These pins are definition at <mach/mux.h> file *// ?% a+ Z2 Y+ T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, R2 j0 \) O' v; U        -1
3 P% j# ]0 J* b' _8 O};
- ~7 q2 F; H; A& G+ Z( R: V( v: W1 ]$ S6 n+ l
static struct gpio_led da850_evm_tl_leds[] = {+ V/ f4 w! Y0 F: o- o
        {7 Y( _4 e4 R7 B$ _& U3 `6 p
                .active_low = 0,* `( q, {! L" i: L* _8 c
                .gpio = DA850_USER_LED0,7 B% D& _- x/ j0 @+ X
                .name = "user_led0",9 X' Y! J' ~* ~( v8 {# ?
                .default_trigger = "default-on"," g( C7 ~' F7 q" U
        },
1 a1 k% b/ \- R        {
% k1 {  R0 q9 `# q1 M% X7 j$ X* y                .active_low = 0,; q% E; k- n. y
                .gpio = DA850_USER_LED1,1 K; B: \# W. ]! c- ^
                .name = "user_led1",5 l2 {% U) T7 R# Q5 t
                .default_trigger = "default-on",3 w' e0 @+ p3 b$ `; |# V
        },
( N8 K" H" N6 R! P/ h        {
6 o$ x# r$ ?) Q2 k1 P                .active_low = 0,
' Q6 e3 v: T7 S  i  L. A5 |; O& c                .gpio = DA850_USER_LED2,
- s+ }7 H1 y+ Y                .name = "user_led2",+ u) L: F5 c4 B+ z  ^9 a% O
                .default_trigger = "default-on",, m# P! f/ v' d4 m' n# m# @% D; j7 {
        },! O' e- P" [' }$ H0 ~4 b- h
        {6 L3 Z. M, d. B2 F  S0 k% H
                .active_low = 0,
! k* K. K1 {6 T+ m, ~, i4 x) X                .gpio = DA850_USER_LED3,, s5 t1 w9 o* p4 j* a
                .name = "user_led3",2 f+ @1 }- a; r, C2 E
                .default_trigger = "default-on",
$ S/ i) s1 E0 r6 ~0 j* {        },& w# S' O+ L/ a" T+ _, l
};
3 F, M/ S2 \" m2 Q& F' R  R4 s  q9 x, O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 \: H% H8 ~8 C" q        .leds = da850_evm_tl_leds,
2 N! k! J* ^) H5 k4 ?        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' _# h( R6 _) O: W1 W$ M) [  I};/ v3 @2 J# @+ F# `# }. |6 S

: S' o: \- U/ ~/ K; W/ Pstatic void led_dev_release(struct device *dev)
" G. I$ Z, x4 q( l! k{2 o9 @8 G+ p; b9 L1 f5 ~
};
3 `0 e; L3 r1 f( ^, J0 C, ^+ M6 `" |4 g4 P8 C. n" [
static struct platform_device da850_evm_tl_leds_device = {6 n1 A; [  \; n) x% F5 j9 B
        .name                = "leds-gpio",
4 f4 h# Y! k+ o% z1 I; j        .id                = 1,
% a7 V& F, G# G+ `2 a        .dev = {$ m. _& @. R! U( _. B
                .platform_data = &da850_evm_tl_leds_pdata,
+ u* g# \, h& A- J+ O* K- P                .release = led_dev_release,# s; w6 F) G$ D4 G+ X+ n( p& n  n
        }  Q4 @/ S* v) M; T* }. ?
};
* |3 D8 r. v2 z- h6 e
# x9 {& y7 m! Y6 M, Cstatic int __init led_platform_init(void)' x/ P  i& s- L8 a
{
. @7 L3 M1 O( s( _( M' @        int ret;
  R) _! V. f6 s) l7 m- r, @#if 0; \$ w9 O8 ?& Q* {5 {" j5 r3 x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! M8 }, F; k. ^% a7 s        if (ret)" X% s: l) J9 E! L2 p! X4 O7 _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 P* k, C3 |. \+ `
                                "%d\n", ret);
& |. O# r5 e& Y: {% F#endif$ T+ ~  s0 D9 h& J4 _
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 v7 o0 L; B$ D0 A. A9 ^        if (ret)
! ~3 e! X7 Q7 D7 h5 v                pr_warning("Could not register som GPIO expander LEDS");
; y# w1 @2 Q4 z' Z        else+ t8 ]* w! V0 f
                printk(KERN_INFO "LED register sucessful!\n");  D/ X0 G9 U) X; k
2 y. m4 `% M7 i$ S( t8 Q
        return ret;) R+ a8 o7 C6 T4 f- Q9 U1 i
}
: o  R+ d, x% P( B8 u: {/ z. |; }% }+ n3 M& t( \2 S
static void __exit led_platform_exit(void)
  R+ B3 a$ e  F: ?{
4 v* m  z+ S+ |2 h; D" e4 G        platform_device_unregister(&da850_evm_tl_leds_device);$ {# ]: U& d* b0 d) V1 y

6 b% N; O! p& L3 _" w        printk(KERN_INFO "LED unregister!\n");
8 E1 ?% C; u2 H" o/ p4 b}" u7 N# w$ M0 k  S

1 n! q. o! ?9 y$ v  g9 W3 [module_init(led_platform_init);; }7 t5 b* D' q1 Z- X: K* ]0 q
module_exit(led_platform_exit);& K; [- s$ H4 M, V- Y; ], D
! ^  h' O, q1 C
MODULE_DESCRIPTION("Led platform driver");: B; F7 O4 @( h' Z; A* P
MODULE_AUTHOR("Tronlong");+ s$ y* g  o3 \( ]6 q% J
MODULE_LICENSE("GPL");) \. L: w+ O4 V
2 f( s5 m1 ]  N( B: }% J- w1 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-3 04:03 , Processed in 0.038360 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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