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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& x+ z7 P- ^. t% N#include <linux/init.h>- C5 |+ @$ g# d& f% X; h0 N4 B( i
#include <linux/module.h>) X- n2 u) ~$ [2 v* }! g* Z9 L
#include <linux/kernel.h>
& T6 {  t7 p& L% W# S, S#include <linux/types.h>
9 o' }% c. B4 A! D) B/ m#include <linux/gpio.h>1 T8 ^# ]6 R3 G, \
#include <linux/leds.h>
+ v7 W$ s: @6 I5 y9 G* U& @#include <linux/platform_device.h>
3 ^7 w( }: _, {$ k7 Q
  `. y! P  v( Z, V- f' m( q#include <asm/mach-types.h>
- `" o' i2 c" ?; Z" J#include <asm/mach/arch.h>
; c) @' q8 D4 G#include <mach/da8xx.h>
* s3 a* p( S7 {9 F' X3 p8 e#include <mach/mux.h>
  G5 y. `; r) o; d
, h" w& l3 m0 \#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' T+ w7 P5 z; @6 M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 S  w2 l! @8 K4 K5 {+ r2 r
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, T! N/ E8 n) n  Q6 h- \2 D#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 y. E/ K- v6 O) K7 u3 y  F, E6 \$ B- U6 o5 H1 e5 t
/* assign the tl som board LED-GPIOs*/, m4 ?' g0 @  F# S$ X& M# z, z
static const short da850_evm_tl_user_led_pins[] = {
2 ^4 Y$ b, r" @" q! r% Z7 o( r        /* These pins are definition at <mach/mux.h> file *// d/ I3 u# L" v9 J2 c4 Q7 a
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ X1 T0 I7 F2 }, R
        -1
% T( n: v! x5 L5 F+ J};4 m( A% u: T2 u0 l
/ x2 w* V- ~/ R6 Z
static struct gpio_led da850_evm_tl_leds[] = {) `8 D9 ]# l1 e6 G
        {
/ W+ q* f7 G; W3 F& S( B/ j; v- r                .active_low = 0,
% [2 R( I7 X  q4 `$ u                .gpio = DA850_USER_LED0,
0 F( D/ C$ O" Y& ~0 K  r                .name = "user_led0",
0 B0 v0 \6 u. j9 c3 `# Y                .default_trigger = "default-on",
2 S/ j6 o7 Y# p) C7 Q/ q$ B6 D        },/ O# N7 R! B7 n4 V5 m, O
        {
# p* J. J  y8 R( j7 y: h                .active_low = 0,% L0 I% T9 j, i0 k* R+ p- ^
                .gpio = DA850_USER_LED1,7 s0 O" B( v! a; j( s$ X- P* }
                .name = "user_led1",
7 n: K5 `7 s) F& f; i' ?  S2 e1 R                .default_trigger = "default-on",
- m( B5 O, r9 l' Q# Q* ?        },
1 S8 l5 V/ i6 w        {
, B( G, @5 O: P' d3 N7 F' W                .active_low = 0,
# Z* l5 o0 H' H                .gpio = DA850_USER_LED2,
$ b7 y; ]1 h( O( m                .name = "user_led2",% W+ q) A; z" f9 z9 }8 O
                .default_trigger = "default-on",% S9 p7 G8 o/ ~/ r
        },$ A  u/ x2 n& B/ ?
        {+ r8 M- y* R  Q
                .active_low = 0,3 v" {1 Q- W; C; @' l5 ?% P) W
                .gpio = DA850_USER_LED3,1 }+ R1 ]9 V  \1 u) M' W
                .name = "user_led3",: }% U0 d5 D$ m5 [5 J: H
                .default_trigger = "default-on",
1 Y7 B) t, o& w; d0 r        },
3 f* f6 G7 I8 F% I- o( i2 l};9 z* K6 D' m. J. F
) Q$ |* n$ q/ }' v/ z) z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" z/ V' @; b' v; \! r8 x* h        .leds = da850_evm_tl_leds,
9 W" i* b' \, E1 L% ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# e! @! q7 s' n1 `" K
};* T" B1 [0 L4 {2 P+ h2 s

! `* Q; I0 l3 f0 Hstatic void led_dev_release(struct device *dev)$ a* E& ?) d$ P# h6 ^# N9 o4 S
{3 ?2 ?0 o* x! U( }
};
% [* H! w! A$ U8 g7 C/ c+ l) J' Y3 [2 W: I
static struct platform_device da850_evm_tl_leds_device = {
7 m$ h- S0 s0 C# Q) P        .name                = "leds-gpio",1 i7 S- r- \7 A
        .id                = 1,
* c- R. m# B/ |! J6 Z. O        .dev = {& I+ h$ H5 [0 W. ~3 I) Y
                .platform_data = &da850_evm_tl_leds_pdata,
* v' P0 d& l) `4 J+ E                .release = led_dev_release,& Y6 ~. u( B! W# z  g( j
        }
5 e' `% D6 w  Z7 i8 T& [};; v, w( R' @0 @5 d1 I/ B

0 m7 r7 T0 a2 [  u, y1 @. ]$ mstatic int __init led_platform_init(void)
2 y2 f8 I/ y( E2 \( I{6 [. a+ x1 E; d: m. M
        int ret;
! ^/ L# f/ t" D9 a& e! w3 I+ e#if 0
9 B# ~' E% l6 M* B: g) K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" y, ?+ t' X, Z' I+ Z+ E  T2 d
        if (ret)4 U  w- \2 }6 x- j+ r
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": W/ F5 I  D( g9 C. r
                                "%d\n", ret);
, H2 e7 H0 Z. ?, {1 P#endif
$ B& f% w0 {5 y' u7 O8 q        ret = platform_device_register(&da850_evm_tl_leds_device);
. o& z! ~/ d, M7 m8 D6 w        if (ret)
* ~: r; Z4 q% p                pr_warning("Could not register som GPIO expander LEDS");2 p4 S+ d7 |& @' a4 W& a/ q
        else
3 V3 L2 G0 z/ E! y  {5 t                printk(KERN_INFO "LED register sucessful!\n");
9 ^/ Y+ Z4 o# P0 W$ m
! o6 ?4 Q7 J  }3 q* s+ I4 ~' i        return ret;
9 x* s/ k; P: ^4 S# Z}+ R7 O2 k8 k) ^0 |9 ?; X

8 w/ j* L7 x  vstatic void __exit led_platform_exit(void)) `% `  t) F/ P$ @9 p6 T1 ^1 ?$ }0 D
{& K/ |& x$ F- L0 B
        platform_device_unregister(&da850_evm_tl_leds_device);9 ]1 M* J. t) A- W1 G4 d4 B2 q, I
# A3 Q! j& Z3 N9 F. q: {& ^
        printk(KERN_INFO "LED unregister!\n");
3 T: S4 U0 B. L% ]3 b) B}" J0 O  e. Q9 v6 G  j* R  g
, j- F$ ^  J6 N1 |5 ~$ {
module_init(led_platform_init);2 |+ o( P! V/ p1 J
module_exit(led_platform_exit);; Y, {/ X% `, u& f+ {& q8 x* A

2 V- G5 l8 \, FMODULE_DESCRIPTION("Led platform driver");: S$ |: l; F, Q/ H5 K2 A
MODULE_AUTHOR("Tronlong");! a0 w# R0 c0 x6 [6 M, d
MODULE_LICENSE("GPL");9 H; Y3 }8 w1 k8 `, m" v
  ~& {, T" S' s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 09:06 , Processed in 0.041657 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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