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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 E& f: H; Q* y% c4 F3 V# q
#include <linux/init.h>
  N2 p: s& y' Y! q/ t#include <linux/module.h>0 s6 b3 q2 Z* ]: f8 j
#include <linux/kernel.h>( ~0 h2 B+ u6 z+ l2 ]' ]
#include <linux/types.h>
) l3 O4 Y6 Q" {# T! |#include <linux/gpio.h>
: J# }+ O' B  N#include <linux/leds.h>" h) ^$ j# }" H
#include <linux/platform_device.h>4 V: n$ f8 l0 z
; }. A3 K2 g4 t/ b/ v$ ~0 p
#include <asm/mach-types.h>
0 C6 o' B9 h. w- P3 }#include <asm/mach/arch.h>
0 V- _5 q9 f0 L& C' M: G6 A0 r#include <mach/da8xx.h>; m; Y! Z; |" |! F; W4 _
#include <mach/mux.h>8 L% L2 {  d! }0 E0 S/ H$ m( {1 ?3 Z
8 \$ |% X  i& J9 `3 z: v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ c/ P. M2 |- A) ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 L2 f1 G  e0 @) v! L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& V, M) _6 ]/ F/ y2 m$ s% T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' z3 |: d& n% o2 i4 i# K
* W( P7 p7 y0 h2 X& q( u$ F; |/* assign the tl som board LED-GPIOs*/
! `! s2 ^& [+ L# B1 K. Estatic const short da850_evm_tl_user_led_pins[] = {
1 z; l1 y/ o' i  _        /* These pins are definition at <mach/mux.h> file */
. m3 Y5 u# n( k, b1 J6 T( z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 _6 H7 P- G9 D        -1
4 ]$ Q  Y3 d+ j- d) [7 U; [  Z};
, w  v8 Y9 ?- _3 j" w( q  }# E) Q4 n! }0 ~$ t# u5 K- y
static struct gpio_led da850_evm_tl_leds[] = {
! U: B/ |) E( ~% ]' K3 m        {& i+ f2 D7 _. N! Y
                .active_low = 0,: W" f! \; p. }; U7 l
                .gpio = DA850_USER_LED0,/ S  I3 m: v2 o4 ?; U0 ~: T1 x, _0 h
                .name = "user_led0",
$ X& V4 p2 \  V0 i! [: P8 s/ l                .default_trigger = "default-on",
( Y" f0 p; n* C/ k% G1 H        },. s* v. E8 ]$ T0 l
        {
" O+ l; b$ |, F* ?( O6 V: W' z                .active_low = 0,
# @9 s) s: o+ A                .gpio = DA850_USER_LED1,
4 j; R% J4 e8 n, s9 K. x                .name = "user_led1",
1 ]6 l' h$ p- N- P& V                .default_trigger = "default-on",5 ?/ Y& K. q4 a) C! V  p
        },5 {( Y4 f/ c4 D7 W# c/ ^7 v$ ^: X3 r
        {
" h9 Q" }6 E# B# V. }: b0 X& @                .active_low = 0,& |- w* l7 V* q) f) v
                .gpio = DA850_USER_LED2,
+ o* U  X% J- M" t2 I6 K                .name = "user_led2",
; Y# C+ I$ A/ f                .default_trigger = "default-on",1 z+ F; w4 B" }8 A$ G; A" Y
        },) O% f9 z- g& F) x5 P: O
        {
0 u7 p. |0 @0 l  o2 N: a                .active_low = 0,
; G9 Y0 p0 F4 n+ Q  x                .gpio = DA850_USER_LED3,
4 x: _+ C) J% c                .name = "user_led3",1 w7 B# p1 y) y* F+ \. U4 a
                .default_trigger = "default-on",5 k7 m' {( g2 `, v6 d! @1 o6 R
        },
) d$ k+ {* L* P$ \. [% }};& y9 k4 [# T9 Y# W+ v) G4 n

; W5 P7 y% D% V2 D, u' N" I* x; c1 N* \static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ \5 I5 q& e3 `7 Q, c        .leds = da850_evm_tl_leds,- `7 M6 X* b. _$ z" v5 `5 n
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" E: c, w7 {" g, P' U  T1 ^};
# J- f: n" D" O/ s# M
0 E; h# }5 e) [& X" B  W4 C# {% n( B/ istatic void led_dev_release(struct device *dev)
( o2 U' U" j8 ^# z7 `{
4 B; d1 M8 r9 `. v" T. t};
. S. g: }  l% Z5 ~: f
: y/ ^9 a+ S( C* ?# l1 gstatic struct platform_device da850_evm_tl_leds_device = {  @' G9 X# \$ U% J
        .name                = "leds-gpio",
. z% [/ p& [) J- @0 ]* W( J0 L        .id                = 1,, _1 ?# c/ S8 M1 L$ T+ v& e
        .dev = {
+ E9 U: N$ d' z  y                .platform_data = &da850_evm_tl_leds_pdata,
. x- K0 A; r7 I2 l: A5 Z                .release = led_dev_release,; v' z& }& T- Z6 K: G2 j2 L
        }
% ]9 F3 b# r# \' r* H# a4 @};
3 f2 D8 U9 n' p. h! D/ b5 M" {/ |: d& ]9 Q
static int __init led_platform_init(void)1 Q0 i( s* [  r
{& v# w$ v/ x/ E, A. b" `0 y4 J
        int ret;
4 ~! U$ s, }5 ^( d#if 05 c8 \- f" r4 J. q+ G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' O" k: S- v. O" ^9 l
        if (ret)2 }( Q% n7 j! p. ^# d, D6 G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; n' v' o  {( F4 J7 w                                "%d\n", ret);
% o. s9 B* |& P$ P#endif
" Y; Y0 h/ ~+ r' i) }        ret = platform_device_register(&da850_evm_tl_leds_device);
; u2 [5 F! e( i! z( e; W        if (ret)
% C2 T6 X8 W* J1 _                pr_warning("Could not register som GPIO expander LEDS");
" @' c$ I+ f' E6 `0 y        else; |; ^6 Z( Z; F
                printk(KERN_INFO "LED register sucessful!\n");& `5 l) }; A$ o( W4 Q) `( f8 E
, H& A/ I9 t; ]
        return ret;  D3 w2 x3 E, z- M
}  D6 ~' I- x: k- ^' N5 T9 @

! g2 A/ c# u% _6 z2 V" N. F7 }static void __exit led_platform_exit(void)% e( o8 D! \! B  y' y+ _- o  W: f
{# I4 ?; J1 _9 r: U3 }
        platform_device_unregister(&da850_evm_tl_leds_device);
, m# `+ f& s3 S5 u9 a0 [  S8 g) n) x$ P' s* w0 l5 Q# Q
        printk(KERN_INFO "LED unregister!\n");
' a6 ^1 y0 Q- F7 ?$ j}8 v5 l6 t$ Y& t" y9 a

# X1 j5 ~* }4 r$ q6 N" mmodule_init(led_platform_init);
7 X- C7 i3 g& x! h0 ?1 C* u8 hmodule_exit(led_platform_exit);
  G5 j8 O* C" X& k( K1 x( L/ L8 I7 P0 }6 q' W" s" u6 z
MODULE_DESCRIPTION("Led platform driver");
) P9 [  ]. g- v  [5 \MODULE_AUTHOR("Tronlong");
" C+ _0 K/ |  nMODULE_LICENSE("GPL");# d) E& j! F5 v* u/ k4 D

1 B) a$ ?: g( L1 j# j6 R# I( ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 07:53 , Processed in 0.039080 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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