程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ p  q  R; |: |4 v: y
#include <linux/init.h>
, L/ B) X1 {& l0 Y5 t2 s#include <linux/module.h>
5 J6 }# P3 E& n#include <linux/kernel.h>
" @6 x# x$ k3 |# c' B$ e# h  a1 Z#include <linux/types.h>
3 W" U0 I. C5 p; W5 \) k/ c#include <linux/gpio.h>* A6 B6 I" r. f' s4 U) ~9 L
#include <linux/leds.h>
$ k9 ~1 h! Y. u4 N: N* P5 u9 z- L#include <linux/platform_device.h>' T$ x! _3 |& m- q4 v+ @7 b
, h% V3 J  X, |
#include <asm/mach-types.h>
' I/ p2 c$ S+ j9 G#include <asm/mach/arch.h>* w7 u8 u6 e2 r0 H; P5 v6 C3 G
#include <mach/da8xx.h>) P$ {+ S4 n4 ~6 S" I/ ^
#include <mach/mux.h>
. t# b5 E% j+ M1 v
$ |! D  M% [8 I8 e& X#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 t/ _) }) r# v- ]7 a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 t& C6 ?( `& R7 Q  Z, _* V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 l4 w) d# U: y6 E% W/ q7 I% B#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( y7 ^8 S# C9 a4 g& W5 g
3 r0 h, G  F, z9 C) H
/* assign the tl som board LED-GPIOs*/* ]. z+ p; ?5 |: B% d+ j, q
static const short da850_evm_tl_user_led_pins[] = {
! i" r5 y* f  `3 C- g7 S        /* These pins are definition at <mach/mux.h> file */# g& N. S2 a- e! u" U
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 g" e2 t9 [6 [! A  n* g        -1
, T& W" w, a' I5 I9 X};
1 r2 V: m0 i  T* `! z, [% o6 `$ ~* Y+ l& r! o0 \! f
static struct gpio_led da850_evm_tl_leds[] = {- T1 N" ?% p$ b6 ]: N+ d9 n
        {9 V/ V# C& e* _( H) T
                .active_low = 0,( a/ D% G4 y; D8 n. S
                .gpio = DA850_USER_LED0,; F- p' X; L7 R  J( x. x
                .name = "user_led0",
  k( m' t  ?" q$ ^: q                .default_trigger = "default-on",
" x$ I' o8 g! ?+ w9 ^) W        },
% S- F6 a) p) N, G' z* Q8 t        {: ]) R) H6 W. v/ B3 t% Y8 l% N
                .active_low = 0,
! ?% {/ }( a' L                .gpio = DA850_USER_LED1,; N; C& `$ j$ w6 @' a
                .name = "user_led1",
, x% C" U( B  @: Z" H& M6 k                .default_trigger = "default-on",
( g: D" ?* N9 E0 l& \+ g        },
: m$ m# d& m0 a7 p        {
, o8 p2 E, v% C, W                .active_low = 0,' x! g2 N' D! `" E/ t4 L# T
                .gpio = DA850_USER_LED2,8 u) a9 v& t7 X/ k3 B' X$ U, M
                .name = "user_led2",
) M+ Y3 c" w* h: Y, b4 Z' S                .default_trigger = "default-on",( j3 E1 X2 g* G. {# b# A3 M
        },: q3 i3 p7 v* t$ ?9 h! v
        {
! s: z! D# v+ l& O+ u2 n                .active_low = 0,
  h- p0 [. S# Y9 @% V9 V  Z                .gpio = DA850_USER_LED3,
# b) k# h3 v0 |                .name = "user_led3",
6 N" C. a; z: |1 }$ z' n                .default_trigger = "default-on",7 x$ ], r# n3 R& S) g/ n" N
        },
. A& v! J' X, b/ L- n' V" b8 D2 B};
, G* x. o/ G+ W, o6 y
+ T8 Y# z# a" Y+ @/ B( Nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 o' y! }' Q! g9 J
        .leds = da850_evm_tl_leds,/ b6 d3 M% r6 Q, y# [$ D: {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ ?. r$ C3 @) p};
9 {; t5 ^/ e3 {2 g
& Z% ]3 c  y3 c: }8 istatic void led_dev_release(struct device *dev)" W4 p; |1 m6 {! a6 d
{: m. y  _* E: _$ U
};1 m7 S: h7 x2 Q7 ]6 b5 w1 P
* h0 _+ ]) Z2 M! \6 m# K9 n  i9 U$ \
static struct platform_device da850_evm_tl_leds_device = {2 h3 C7 {6 v/ R$ m( P
        .name                = "leds-gpio",
& J3 T3 Z  B6 g. \, Y        .id                = 1,0 ^# P* }3 v' {3 O8 c; b
        .dev = {1 ~# [7 {. U. D! a; k8 q
                .platform_data = &da850_evm_tl_leds_pdata,
) e/ ]0 B3 S. a& V8 W5 j; E  `- f                .release = led_dev_release,% E) r- O* _! I
        }5 E8 t6 y8 j& R/ g- T0 a4 E  ?
};
* R2 S! M) j9 O. x
: v& B. X- v( R2 N  Pstatic int __init led_platform_init(void)
, t2 _. i4 n) `- v0 J{$ Q  ~+ y) @# @2 S1 o3 v
        int ret;0 ~9 s+ O, a/ i2 e9 t
#if 05 \. A' r6 t- h: l* P4 B- a+ x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 Y4 m+ N) d) [# O1 J+ U0 Q" Q
        if (ret)9 m; I! A. k: U9 `" q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% f! |+ E" b8 }& H1 f) y                                "%d\n", ret);$ m" g6 S( f, D, R, s7 J
#endif
/ `! s  U$ V- \- x- w; r  H* C        ret = platform_device_register(&da850_evm_tl_leds_device);
0 L( E) k  C# P8 _) b+ R( ]! c' n        if (ret)' z2 F$ g9 m; k# u
                pr_warning("Could not register som GPIO expander LEDS");
. d1 a2 r9 n2 @' _: A3 ?5 R        else
; a+ D" v- u/ Y) C0 y- C                printk(KERN_INFO "LED register sucessful!\n");4 g7 ~: _( t% k4 B

  m$ h  \& l# M& H7 C7 b- W% J        return ret;9 j. n- h, U* T
}
( e+ n; `0 v' H: w& J! `* F# m
' s( _) X( i9 q9 Bstatic void __exit led_platform_exit(void)0 n& n5 F  n# i9 V/ Q
{3 }* a7 Z0 H3 M8 Y6 K2 b! H; M9 X
        platform_device_unregister(&da850_evm_tl_leds_device);/ G' m2 U( _1 u- x' \  ?5 w
$ d, J0 ?- F9 z0 J) U3 c, r) e  m
        printk(KERN_INFO "LED unregister!\n");
7 j& u8 N- C9 J7 E+ {}+ T/ g" }; p& L) R$ l. P

% ]: D0 E- y; J8 g1 s  Qmodule_init(led_platform_init);
7 i+ }; l2 g7 Y! F5 Kmodule_exit(led_platform_exit);
' ]# P! ]+ ^8 u" u6 X: ?1 k2 J! u! J  A% t+ Q
MODULE_DESCRIPTION("Led platform driver");
5 G: k# D. Y/ \; IMODULE_AUTHOR("Tronlong");8 i9 E7 c" T5 U3 U
MODULE_LICENSE("GPL");! B' r* G  B! e3 a+ {: @: T+ u

" P/ o. M( E* t* ^6 M" b! @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-4-5 21:35 , Processed in 0.041862 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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