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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 T* P/ D, L3 Q/ H$ E/ u$ A0 N
#include <linux/init.h>
2 u: g! [! l; ]#include <linux/module.h>( J. T9 Q' n7 _
#include <linux/kernel.h>
! ^: S- x8 v7 k, j2 b/ R0 t#include <linux/types.h>$ K; O% ?9 P2 m, C) K4 s  z! }* V
#include <linux/gpio.h>) d- s9 j( T2 E7 S9 c# f
#include <linux/leds.h>
% E( W& Z8 O% u# B* J5 A- \#include <linux/platform_device.h>
7 _+ J1 a# g8 Y7 u8 b# `
4 G0 V0 @; G$ O/ i#include <asm/mach-types.h>
+ k! O; @+ U4 t" ~#include <asm/mach/arch.h>
" W8 M. o. }; @#include <mach/da8xx.h>' o% h! z2 A5 W5 B
#include <mach/mux.h>
. @8 M) f, r# u7 Y- j% {9 d; o/ x. L  J9 A8 ~; e' o9 [# V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 }2 k1 q# q5 P  @: Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ e1 O7 @! ?9 R+ t0 ?5 c5 C0 Q% r: K
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' v7 E; d% u0 W4 N#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 \7 L# t' x; p) p" ^7 d7 K" ^  ?0 w* j7 q
/* assign the tl som board LED-GPIOs*/
6 p6 \3 l; l7 D5 ^- h; `static const short da850_evm_tl_user_led_pins[] = {1 Y& s$ o8 B$ V9 a) {# [0 q
        /* These pins are definition at <mach/mux.h> file */, c9 y2 k# R; @+ o6 X) `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ I- n. u9 P6 u
        -1& u( d9 p, i! D  M
};
4 U; }! R, Y3 p+ n9 ?. k: x  Y; U' ]. J/ Z. b7 \2 X8 ~  u; s
static struct gpio_led da850_evm_tl_leds[] = {
% |7 L/ [, y' t" C' A# e5 [) B        {# ~, i  M1 u# z% n3 @1 [
                .active_low = 0,6 q+ f7 S1 b9 E+ P
                .gpio = DA850_USER_LED0,
( c. B0 O! F8 p8 y) I  W                .name = "user_led0",+ O8 n2 e) K, D; t' E3 h7 P. j! x
                .default_trigger = "default-on",
% L) I$ z& Z9 H! j4 O( D        },
: P- S/ ~& U9 h3 K        {; O! P5 o" W9 [9 r/ K/ Y
                .active_low = 0,: [: `" j: P' J" n
                .gpio = DA850_USER_LED1,
3 r, ?& t: s' s% x                .name = "user_led1",) ?1 d& H+ K  z  a
                .default_trigger = "default-on",
7 |; _  B$ ?( L2 M. X+ q7 C        },
9 r8 O: Q) `1 D2 p2 _  w$ B" m# n        {
; N( l3 h1 v, S                .active_low = 0,2 V( T  M* `4 B' \7 }' i6 E
                .gpio = DA850_USER_LED2,. C* Q8 P2 X* h; i
                .name = "user_led2",
/ W+ C9 b0 u6 |. |+ q                .default_trigger = "default-on",/ y+ j% a* L8 o
        },0 _3 n4 ^/ t4 ~( _. S9 r
        {
* T& d( }& z% s+ m4 x9 [  v                .active_low = 0,
# j3 g, U1 C( u                .gpio = DA850_USER_LED3,% u9 s, I+ U+ l# U! t* U# I, n1 G
                .name = "user_led3",
& o" A. Z0 u8 E( F. G                .default_trigger = "default-on",; E) j" P# z; I8 T; z1 m
        },2 B4 ~5 ^# s# H8 {3 C: [
};
- A( S& c, g+ w) w( U& ~8 }6 ?: ]5 @) i& z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 e# n, O7 u5 s. A        .leds = da850_evm_tl_leds,
+ l& w5 Y( ]4 U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& k+ R* Q# y- w$ m* x1 f};5 g2 O. C% W  g+ G; D3 W

1 K- T; b$ C! V1 s" {static void led_dev_release(struct device *dev)
9 d7 k% b8 b- a4 }1 O. J+ {$ Q{* e) X2 g5 j; R8 n& w
};% M/ t5 I! N" Q  V5 I& `/ J
8 n- S" x. c/ T9 O
static struct platform_device da850_evm_tl_leds_device = {
8 C4 M7 j3 V) Q: b        .name                = "leds-gpio",% _8 x* _5 c- `1 y$ P
        .id                = 1,* `( X) Z  n: \9 y
        .dev = {
) R  R: T! j: l) k                .platform_data = &da850_evm_tl_leds_pdata,0 E# c$ w5 K0 ~/ O: j- @( E
                .release = led_dev_release,
6 j5 F% e0 V8 f- {. K! }% M        }8 ?9 H- R" p: C2 Y
};9 b/ a2 @/ V; M
/ E4 D1 k* k! L2 O0 b+ D9 b% n
static int __init led_platform_init(void)  Z% Z( \3 F  G5 s3 u: t# P& G
{+ W! P2 u! a+ L1 @3 D7 v0 I
        int ret;1 c/ N: |0 V$ Q
#if 0
8 }) U) B* v; d3 f8 U6 `        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- ^+ G3 Q( s: ^6 ^0 q' Z, b
        if (ret)
6 U5 r9 k2 |( K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": S  q+ C/ b9 r) H/ Y
                                "%d\n", ret);1 }7 ^5 S( Y8 J3 ]2 w0 J6 p2 r
#endif( y/ Y9 R' S/ Y
        ret = platform_device_register(&da850_evm_tl_leds_device);2 \8 P: u! W6 F' a" ]
        if (ret)
) T  B: K3 _! |6 E+ A" D, l                pr_warning("Could not register som GPIO expander LEDS");  m* p7 L8 m" U- y3 i( k& I; v
        else
( F7 _; q$ a, R8 L& V                printk(KERN_INFO "LED register sucessful!\n");
6 {' A" _7 Y" O) W0 T; p, g. Z: q; u. A% O
        return ret;0 F$ G* _" k1 z  c# @( F4 c+ y) _
}
* O3 M) Z) I. v0 L+ ~# x$ E
! z5 o8 ]2 r* ]& y& _: jstatic void __exit led_platform_exit(void)2 N! w3 y3 J, `$ c2 ~
{  ]4 \" @$ K; c( V( ?! ~" {( R
        platform_device_unregister(&da850_evm_tl_leds_device);
3 B% U. s' r/ z3 j  K9 ]
0 j4 n, E8 b9 p- w% d* g0 \        printk(KERN_INFO "LED unregister!\n");
7 x& O; t$ p1 s! B$ Y* D& I}
$ ~8 k% `2 Y3 e( i& Y, d/ T
# U, m$ l1 `+ k- q7 o% Y6 dmodule_init(led_platform_init);3 T* S' X# y1 P+ q
module_exit(led_platform_exit);
# c8 }; B, T2 r. ]' H! G1 B
' z8 w$ x% d# x7 B( ?7 w' V8 i+ F( |MODULE_DESCRIPTION("Led platform driver");" a4 I% [5 g! _) l4 c6 x# y
MODULE_AUTHOR("Tronlong");
9 C$ |9 B' a0 BMODULE_LICENSE("GPL");8 x# u% E& J; @9 v% y6 `4 _9 M) w
* p8 _" p1 P! F- _" Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 16:25 , Processed in 0.040620 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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