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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* S$ s: i& q& c) F; P. v% F+ v
#include <linux/init.h>4 ~  ^  G9 {4 c+ h$ t$ C& V
#include <linux/module.h>
2 Y! n0 n. N9 F#include <linux/kernel.h>7 n2 H& k' W  x/ }6 W
#include <linux/types.h>+ e8 Y% n2 _' W3 @! n: L7 G/ u! H2 n
#include <linux/gpio.h>
( G. d7 ~0 U+ ^3 J+ W6 {#include <linux/leds.h>
$ Q9 w3 t# m: d9 r* U0 c- B, e#include <linux/platform_device.h>
- h" X5 B  n6 p8 e4 v
# W" X7 X% e% V& k8 l#include <asm/mach-types.h>' Q3 F# t) J0 Z9 J/ L# ~# z; C
#include <asm/mach/arch.h>: K) p& p+ ~/ @$ P' X) K; t
#include <mach/da8xx.h>
- `4 h- B% W) z1 O. u#include <mach/mux.h>: t% [0 Y( u4 t0 E3 v

+ \9 V' S% Z/ w$ E7 H$ ]7 G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( h+ f& B. X+ H0 v4 o$ ~1 V. H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 T) d7 i. W2 R: l9 R) i* X. d7 u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): S/ C. {+ w5 U9 R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 C3 ?! ~2 s$ ]7 P) D7 T6 o1 g6 b6 N3 P& K
/* assign the tl som board LED-GPIOs*/, b3 p0 r9 b& \' w5 j
static const short da850_evm_tl_user_led_pins[] = {1 q$ Z3 y) W' F. c- q$ ^, }
        /* These pins are definition at <mach/mux.h> file *// e! f) ?2 G3 w5 ^* v$ g) L+ Y) e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ b& P. _2 j. _8 H/ ~+ }
        -1$ e9 L% `1 m# J) Z  d2 L* d' N
};  N( \/ D1 x3 a9 O# O

$ A6 v- i/ F( ]' T" n' R4 N% x, tstatic struct gpio_led da850_evm_tl_leds[] = {* I1 U8 u- y1 A& `: w- l
        {
) f* D" n- Z2 P# b                .active_low = 0,
/ Q. h$ O. }9 n( E' g                .gpio = DA850_USER_LED0,; u/ ^  Y% O. a
                .name = "user_led0",
2 z) z5 R1 J* v" `' p0 Y* p                .default_trigger = "default-on",6 w% `( x! S3 g
        },4 d) a  f/ S( N! U) A; N3 Y9 Q2 R
        {
' f0 r3 Q, h* ?, k* B* }                .active_low = 0,) O. p& j6 K! |9 J7 U% W+ w) Y
                .gpio = DA850_USER_LED1,
! O4 x2 b) H9 t/ L& A                .name = "user_led1",
4 K$ D  D3 `4 E+ n) n! E                .default_trigger = "default-on",
/ c. ^  V- g! m1 m' i$ Z4 g6 ]        },! ?6 v* ]( b8 Q% @7 I! i% F
        {
8 A9 Y3 x* z+ I3 u                .active_low = 0,
2 d) w! Y# Y0 N: p$ q% ]                .gpio = DA850_USER_LED2,
' r0 _' K8 g* n( p) x& \1 \( V                .name = "user_led2",' R6 _" O7 D) i; I
                .default_trigger = "default-on",
' q+ k6 K7 T1 X$ [        },7 U# ]% E8 h& U& t
        {
  }5 I; ]' p, n" O: C                .active_low = 0," C2 G+ l. p0 t& D" r
                .gpio = DA850_USER_LED3,, C9 G/ M$ S* z6 F
                .name = "user_led3",
8 B2 q" i) {% e                .default_trigger = "default-on",- |$ P; \% m! m+ j5 E& D
        },' T7 J1 Q7 a4 e' O$ V, @6 z
};% C' ?0 u* m% M4 N
0 G. z" M( z1 w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 q0 `7 g) s/ ]5 y/ n        .leds = da850_evm_tl_leds,8 P0 `& X$ s8 J0 h# N1 \: C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 N) ^. E6 C1 _- D};
7 W- c& `! a  a6 ^" C; X* }% X6 n$ Y
static void led_dev_release(struct device *dev)& V9 X' \& R6 v6 f$ W
{
  C" Z2 f& E4 Z$ i. V& K};
# _4 [- |, Z) H! b7 I" q: r! N' u; Q' n  B2 ^2 ^
static struct platform_device da850_evm_tl_leds_device = {
  _) x& C; r6 j. c6 H) |7 T        .name                = "leds-gpio",  }4 d3 l. I9 c
        .id                = 1,0 U# \3 C7 H5 y+ d9 ?
        .dev = {
9 ~; M1 Q/ o5 L                .platform_data = &da850_evm_tl_leds_pdata,
1 C3 F1 _" y0 F' d/ f3 B  }" v' f( c                .release = led_dev_release,* n1 u8 I& \/ [0 E+ V7 s
        }( M# u3 E3 \5 S2 ]( Q
};
; D1 a7 S) W$ j, b) |, y7 c+ Q/ Q; e, m2 h9 i- ^
static int __init led_platform_init(void)1 }; F" c: l& O- u( P
{8 |  ]( `* \* H
        int ret;5 ?( ~, }. [  O0 U: g$ Z
#if 02 W$ G& [  N! v% r3 r! ^- \# I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ M, u1 {( [4 b        if (ret): F3 {" f5 M6 _4 z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 ?- @: u* G9 @% y8 r* t
                                "%d\n", ret);
  N% {3 u( a; k& ~/ A; Y/ l#endif4 e# C. Z7 D' p$ c; l& c7 z
        ret = platform_device_register(&da850_evm_tl_leds_device);
& [8 ^1 A$ X# M) A1 M& Y, ?        if (ret). C( u+ D+ e2 @0 x& b
                pr_warning("Could not register som GPIO expander LEDS");
' p, E* e: ]& _8 p" `: a; w( z* B        else
% G3 U1 G! l2 S                printk(KERN_INFO "LED register sucessful!\n");
" F; m, o( l! E2 e; F7 T! |* k$ a1 f' x: X
        return ret;/ D5 i0 U; y0 X- B  V# B8 N3 I
}7 f/ G! d6 W3 h( O# _& u

. T1 D) u, i$ D6 b* U) {; @! c0 Q9 Wstatic void __exit led_platform_exit(void)
* ^7 t6 {( ~( B$ ^+ H3 _/ ]* t# Z# I2 \{
( x/ w% `& n% ^& s        platform_device_unregister(&da850_evm_tl_leds_device);
; i& d5 |+ M4 {& I) |2 v2 Y' O* f
        printk(KERN_INFO "LED unregister!\n");
/ T% w; N' i7 W9 X, Q}1 P( E/ q# B  v. ^5 p

  n4 ^3 [2 o( _1 a4 I: k4 Xmodule_init(led_platform_init);
: I' {) l! k) T& x9 ?; Vmodule_exit(led_platform_exit);8 [8 K  b" k8 Y; o/ a
# z( ?- s4 \: Y0 Y, d- r4 D4 H
MODULE_DESCRIPTION("Led platform driver");; y( C7 m2 X' l4 t0 Z
MODULE_AUTHOR("Tronlong");& N6 |9 l! @: s
MODULE_LICENSE("GPL");. z. z5 J; |4 f! c8 @

: z4 ]% z6 N1 z$ F# P7 Y" V; }& O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-21 13:42 , Processed in 0.040340 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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