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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. h/ w& q8 l0 g#include <linux/init.h>" w" S7 T4 k7 A, L
#include <linux/module.h>5 O! P( h# F3 Q" G0 T* w% k# t
#include <linux/kernel.h>
4 f7 s/ u0 W+ p1 c- F#include <linux/types.h>
( B2 z: @- J5 O* a) {#include <linux/gpio.h>% C. x- J: l3 v
#include <linux/leds.h>. C) E1 r5 Z' Q& O; v
#include <linux/platform_device.h>
2 O: t9 K1 \$ a3 f4 e# p
* s+ ~! C! s0 `9 b* m7 |7 h7 r#include <asm/mach-types.h>
6 ^0 Z/ H, z" H$ Q$ d$ a#include <asm/mach/arch.h>' h" p0 b& N2 j* F; Q7 F
#include <mach/da8xx.h>
8 n( _7 a# W6 q* \* H# Y9 p#include <mach/mux.h>
- E! k* d" s% @! f$ l& X) c
( U3 }% i4 D* ^1 p7 m# n1 l/ K# \#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( a5 x$ |+ L: R+ U3 C4 F4 Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 O$ G. M* |9 m. m  `) w1 \#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! p4 Q8 v/ N! k. G, N0 H) V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 q$ O+ ?! u3 _. J8 Y0 n' [- T( T
- I* {* t' [2 r& Q* _( d
/* assign the tl som board LED-GPIOs*/
  k. ?9 Q  K' ~7 S% ~9 i5 n* p6 kstatic const short da850_evm_tl_user_led_pins[] = {; Q: p. P1 t  L: `) l# @
        /* These pins are definition at <mach/mux.h> file *// K7 J. b$ K: I4 |8 B  }3 _$ m6 {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 [# A: O0 W4 z" W0 k        -12 k% R! D2 L' ?' T
};3 W, M5 M) j9 T

9 W0 P6 i1 |1 C' X* n9 Z0 ]$ \static struct gpio_led da850_evm_tl_leds[] = {  l1 S& @1 V9 W2 q/ O" t' }
        {
  g2 J0 Y/ M0 q. s- A2 a' S                .active_low = 0,
& u$ r0 E3 K: R4 o                .gpio = DA850_USER_LED0,; @1 W4 Q' n1 T
                .name = "user_led0",: q& M% h9 [7 Z) f3 w! \
                .default_trigger = "default-on",; m+ R) [# {' a
        },; E, k$ T. H, d$ c, h/ R
        {
( I2 v( F. d. J! O                .active_low = 0,
5 r9 k- S; e1 j                .gpio = DA850_USER_LED1,2 L4 M- T0 N. R4 G
                .name = "user_led1",, G* p2 x! V, Y" x9 u" g
                .default_trigger = "default-on",
; n$ ?  U3 w1 q# A: U% t" w        },
8 ~2 C5 ], y( W" l8 D        {5 C" P9 Y* l, ^' K' Z7 |( s$ c% y
                .active_low = 0,
1 y8 @5 N3 ~0 l, M5 H0 y                .gpio = DA850_USER_LED2,9 E2 P7 b  M- q+ \8 B2 E+ z0 `
                .name = "user_led2",; }* F( e( T5 i3 M" G2 t: ^9 e
                .default_trigger = "default-on",
+ M1 q5 P0 _% P+ _# K8 p/ c        },
7 M8 ], l5 H) w, d        {
) }8 j! \* _: h- I' l8 N# i, H                .active_low = 0,
: z# j: g* }7 L4 w, ^3 F* x                .gpio = DA850_USER_LED3,8 Y5 s( w& S# K
                .name = "user_led3",
  G0 Z) V3 E* i- V+ K& b2 `* K3 l                .default_trigger = "default-on",
6 e/ x4 j8 t& V2 ^  M) [) f        },$ h: C6 q; K! c; I
};
$ h# I- [* T( }  V2 X0 p: c6 B* F" i; j4 O9 u' [$ a4 \& b
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ ~8 x0 E: F' @( l
        .leds = da850_evm_tl_leds,
4 ~: Q: ?& ]4 P' @: D        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ y  \& `6 E1 [; k7 N& l};  k# l. g* R9 v* r# l% `
; J8 I, H6 Y  r
static void led_dev_release(struct device *dev): M* N4 x3 j5 ]7 G6 k5 \
{4 |- x# \2 A; B
};
, J& h2 T3 m, J7 Z0 h4 x+ T- C5 X7 T& U; h* B
static struct platform_device da850_evm_tl_leds_device = {
) a/ r* K$ K6 @( [        .name                = "leds-gpio",
$ i( n$ v" Z  f2 Y        .id                = 1,+ \& y& G/ @$ e+ I% t% w$ K
        .dev = {
: U5 Y6 S0 h$ H; \9 f3 f! Y% X; e                .platform_data = &da850_evm_tl_leds_pdata,
, k0 C; f3 u7 \8 x) G. b5 Q                .release = led_dev_release,& D. k- Z" @4 Z" ?9 P7 m
        }
) ?2 ]0 Z2 P, d3 w};9 C# R* b3 Q; h; U, W' I
8 [% O6 Y! U' S5 A( u6 |
static int __init led_platform_init(void)' `4 }4 U. z( h: \* ?, h% ]
{8 K$ T' A1 [# [9 c
        int ret;
) r/ K. Y, R7 _7 k. L4 t. b#if 00 d6 Y  Q# y  o- \" v9 a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ n; _8 }4 K/ M( G# ]7 C& ~  R        if (ret)
6 L6 ?9 z7 v: O* x" s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": z5 E- Z! H' k. j
                                "%d\n", ret);
) [6 u. B/ h& S, g0 x#endif& ?0 p6 U' O- t1 M) i( {3 v, [
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 |6 N' a( y: N6 i. [) D" Y0 Z( f        if (ret)/ k9 c5 X) \2 C7 X# l
                pr_warning("Could not register som GPIO expander LEDS");3 b5 ~# s2 G' H0 I
        else6 Y- x& S2 o6 D5 K1 X- m4 c6 p
                printk(KERN_INFO "LED register sucessful!\n");& v1 L" G) ^8 |# R  _. V& a" S

3 k  q5 |% Q; w% p5 Z8 g# i        return ret;
1 f8 p+ P- Y4 G2 [6 C% e}0 @7 {( n9 M0 _* |' O

5 p" z' m; y1 a0 ?8 kstatic void __exit led_platform_exit(void)
8 W7 N& a# J+ K! t0 g' N' i: F{
6 M2 h' k6 R; N& F, y+ o% z2 D        platform_device_unregister(&da850_evm_tl_leds_device);* }; ]2 O; _" b  S* F: K

8 ]$ s0 l1 L5 \  [: V6 c5 g        printk(KERN_INFO "LED unregister!\n");3 P& {3 M0 I2 g' B1 D5 p
}1 @- }$ l" O! r1 S& d. @2 T

: v, l; k9 x& m! V' S) }$ mmodule_init(led_platform_init);
: t* V- K3 D! Z2 p/ [! O* r; qmodule_exit(led_platform_exit);
4 W# t+ t, B9 [: q/ r' P( N  b; e9 j
MODULE_DESCRIPTION("Led platform driver");% H( `2 @; z: S% F! x: e9 E! O
MODULE_AUTHOR("Tronlong");
% S2 H- Y, w9 B* z, N, P+ @MODULE_LICENSE("GPL");
2 x: ~0 `5 z$ d
$ k9 O! i0 E7 G3 f& Y2 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 23:14 , Processed in 0.042237 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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