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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: A3 B$ N) A5 z) S( M, y0 l  o) J
#include <linux/init.h>9 N0 d7 [3 d  x$ f( a3 j) L
#include <linux/module.h>( F! O$ g0 L4 @$ u! U9 Q
#include <linux/kernel.h>
' [3 L# j. `  r4 n( r* @#include <linux/types.h>
& f. q! q( }; Z#include <linux/gpio.h>/ H' l6 p( x* K
#include <linux/leds.h>
" q' \: |* a7 d& R# q#include <linux/platform_device.h>6 `8 G2 K% J8 `' m8 m0 F# x8 Q( ^
" O7 @: _" c, @  y
#include <asm/mach-types.h>
. C3 A! G6 X9 X2 v- a4 T2 l/ e% |#include <asm/mach/arch.h>' ]$ y3 S  Z  ?+ c, n$ |) F: @
#include <mach/da8xx.h>
+ O" Q7 o2 c/ R2 H( q  F+ X: ~#include <mach/mux.h>
$ Q( j8 t1 c4 j1 n, k- g# B# Y# r9 n4 ?
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ E+ C  \% U, H& _3 Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& S: r* L0 r  U2 |; z$ s8 t& l6 S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 n7 [8 b' V7 @& Z7 t' O# I! p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). ?3 U) C# t  ^. y; P" X
3 @+ e* L: ?  }7 N  A# _/ E% q
/* assign the tl som board LED-GPIOs*/, t+ @7 q5 X* {
static const short da850_evm_tl_user_led_pins[] = {% j% D* W7 G$ Z  V+ b- @
        /* These pins are definition at <mach/mux.h> file */
. P2 j4 ?; {; U0 J        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 v; o* Z2 [  n
        -15 v4 @9 ]  [  C" I& ~" I
};( `' `% p, [3 `1 Y7 Z; j6 w

" t, u" h# }" j8 Z* x- x: Lstatic struct gpio_led da850_evm_tl_leds[] = {3 i* g! C' }5 Q# h- i: a
        {
1 r6 A# N7 e+ R" m                .active_low = 0,
4 V: r' `* i7 N8 t                .gpio = DA850_USER_LED0,' s- e$ `  K6 t. K0 I
                .name = "user_led0",) Z- X8 I7 y) [6 ^( I# M
                .default_trigger = "default-on",- ]$ M* y- \* Y2 P8 v
        },
  q0 i" I2 g) G. I1 q1 Q& \        {- c! J# I. T" f# G8 I
                .active_low = 0," E1 S0 G* g7 I: @
                .gpio = DA850_USER_LED1,, i/ _% F' F. W) q/ A! U5 f9 O
                .name = "user_led1",
- a0 X3 H4 |6 A1 Z$ T+ V- \! n                .default_trigger = "default-on",5 }: f* \9 O1 a( A1 _
        },
+ q2 s( i& g" K4 W" s        {
2 Q5 l/ m; u$ k' b4 r" x                .active_low = 0,
. |& z/ C% t7 s. H: q7 G; H, {/ N$ Z                .gpio = DA850_USER_LED2,9 q. n- F  \- {! Z, z  E9 m
                .name = "user_led2",
( U7 f- G( D. @+ Y5 W                .default_trigger = "default-on",. Z% R6 [# o$ f8 A3 M
        },( S3 L6 w; x' I# m; j
        {0 ~8 p$ A0 a4 W) F
                .active_low = 0,
- B* ?, R- n% L, [9 T, d0 a7 d                .gpio = DA850_USER_LED3,/ n3 s1 Q& {% f# R& }
                .name = "user_led3",  t+ Z( A9 Q$ `
                .default_trigger = "default-on",. B# e6 B2 P, R5 C
        },. i- }# ~  c# X
};' b3 M& g( t" ^0 v. \# C

; ^  h- {7 u" _4 z4 y7 nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 M" t0 g" v& `- T4 a0 t
        .leds = da850_evm_tl_leds,
9 K! n9 F$ d& b3 n3 I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% u; r  E; K# J+ _0 C9 b};
, W2 A7 \' f1 ~4 X0 o0 L0 E. B: E* r, G4 e) t; L. b3 |1 _) q
static void led_dev_release(struct device *dev)
6 t2 I* F! d# j{
, H: q3 s& f- }. X, R  `5 [- m9 H};
4 r" m2 t& ~. M) I& m; x
, `1 c- f  a4 _' u, qstatic struct platform_device da850_evm_tl_leds_device = {
! Z# z# D7 s( U9 v4 B  D& z, v0 f        .name                = "leds-gpio",$ Z1 j( q8 q6 N5 Q+ \
        .id                = 1,
) @" b1 i/ o% ]# Z1 ?8 ?' z        .dev = {% B% [+ a- C. f0 P; E' H
                .platform_data = &da850_evm_tl_leds_pdata,
) `2 ]9 X2 [0 H* `3 @                .release = led_dev_release,
/ v" [: O: A* \$ U9 b% |        }0 c1 z: C7 `- |" H* X5 r. D
};
& x  o- @+ ?$ I% s+ t; P. A" V
& i+ m' ~1 l8 T9 Xstatic int __init led_platform_init(void)4 S0 H! X/ U! E6 ?( n. O  N
{0 p4 U  h! X  N1 O
        int ret;* ~* U5 S. }! V& N5 L5 m+ x) }5 o
#if 0, m+ {2 L% h! q  a2 g% n5 O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 H" E9 z& _4 t# Y6 q% I0 }        if (ret)
2 q5 f0 n( ]4 S% E) x; U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 _7 |: I2 n! C/ v& x* {# r                                "%d\n", ret);
  o0 ]; v' o* M#endif
9 Z+ j  e( R, r# \6 [2 O        ret = platform_device_register(&da850_evm_tl_leds_device);- l( T+ Z# W4 g. p! K3 }
        if (ret)
5 W$ r& f) f& V6 ^1 r) }, A8 ?                pr_warning("Could not register som GPIO expander LEDS");& T6 `0 V3 s& Y# h) ^
        else
: f/ h/ X3 m( s3 C                printk(KERN_INFO "LED register sucessful!\n");
: _3 r& V* h2 r! U6 \
; O$ D7 A; v! W( }3 D        return ret;( A- [  M9 W7 B6 L
}) L7 D' K3 z) c' v$ Z) a3 o
& a- q' D9 }1 M9 [  C* Y
static void __exit led_platform_exit(void)
: K  ?+ o+ F6 k% X( F{& N! M" _" f4 a* \6 ]4 N1 t
        platform_device_unregister(&da850_evm_tl_leds_device);5 y# m6 N& F$ y, {; d5 M

% T0 _  c  B0 Q, I! \$ b        printk(KERN_INFO "LED unregister!\n");
3 m. _9 E2 j6 p4 n; h' ]}, b" v% v# F! {# `7 M
- ^5 u2 s. [8 S: S* D" S- B
module_init(led_platform_init);
0 l0 }) Z% d! T: M& s4 B3 U) e9 amodule_exit(led_platform_exit);
+ H5 D9 c2 ~3 [, ~3 k& O" V- k) {; `, z3 r
MODULE_DESCRIPTION("Led platform driver");' f" C, k+ h  O/ G2 v) D
MODULE_AUTHOR("Tronlong");
/ T- O! W$ C7 i9 }. rMODULE_LICENSE("GPL");
# x1 o9 |8 E" w% g
4 q: n: K) J! B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-19 12:12 , Processed in 0.036152 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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