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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 L! h( k( |( v( ~  S#include <linux/init.h>
. x- \  i! t  W3 j#include <linux/module.h>
$ f" u" R+ o6 i3 Y& j7 o  }* c  o: s#include <linux/kernel.h>. m$ P4 _5 T! H! E: Y
#include <linux/types.h>' o& Q7 E+ H+ v3 {, f
#include <linux/gpio.h>
! M; [7 `1 K9 ^#include <linux/leds.h>
9 w' B6 q- O$ r5 g7 E: N7 q2 m#include <linux/platform_device.h>8 Z- t' \4 ^5 @, g. D( v& I
: P$ X3 j" B9 D$ |: j
#include <asm/mach-types.h>
- g/ K8 v. m8 @7 O#include <asm/mach/arch.h>) ^# a( b8 X# B
#include <mach/da8xx.h># Y/ c" Y( D+ S3 M, Y
#include <mach/mux.h>6 c7 N. F4 a3 d# T7 z" e

3 [. d# [$ B" H, V: R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' M' i$ T% o+ P# Z& ~5 I& P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ m/ V9 X2 L) h$ K+ t2 K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  u  Q0 S% S2 b0 r: H
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). U7 A  H7 I' A
+ ~$ o5 K- d3 K3 `/ B9 }
/* assign the tl som board LED-GPIOs*/3 Q: E, {; o1 Y2 T
static const short da850_evm_tl_user_led_pins[] = {# f0 B* w) ]2 q; Q% z. a9 C  ]/ ]
        /* These pins are definition at <mach/mux.h> file */7 u5 e8 S9 M, q) K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! L5 D, D9 M6 Y
        -1
9 p6 v2 H+ c( X1 [4 A& w) A% v2 X9 t};
7 ^& q; j/ y, c% }, B/ o" {: x4 d  [) c9 Z8 o+ M/ a% F
static struct gpio_led da850_evm_tl_leds[] = {+ h# h" ?! |# D. N
        {
- {2 I  M4 T2 M7 A7 h1 d                .active_low = 0,
" S7 ]3 c9 a6 m                .gpio = DA850_USER_LED0,; [! |5 E: B: y/ j9 b' d! s
                .name = "user_led0",: Z" L7 u9 k0 F
                .default_trigger = "default-on",+ O6 A& }6 g' t+ b
        },! A$ y' i5 d* X" ~' V7 M% V2 M
        {6 }) W6 j7 m( l* I/ m6 O" M. Z- k
                .active_low = 0,7 h' N' G9 e+ z- J! M8 v  ^' G
                .gpio = DA850_USER_LED1,
0 W( A5 O/ Z7 }1 u6 G0 C2 b2 l7 d                .name = "user_led1",
) ]. T/ z% Q: d# f                .default_trigger = "default-on",3 c9 c0 m8 p, k: l" I
        },2 O% d5 f& s, [) y1 ^. Y
        {$ s) a- a3 F9 f. t
                .active_low = 0,* E5 H' r- L8 \. D; T
                .gpio = DA850_USER_LED2,
  P8 j% u+ Z. D' U, I                .name = "user_led2",' e! g* h5 g& ^- ?' l
                .default_trigger = "default-on",# i& U6 I' K9 g% [* K) H
        },. C4 a' R( |( h  ]8 |) \
        {8 |  t; j. K. j* j! C  a
                .active_low = 0,9 Y; x4 p) P) W
                .gpio = DA850_USER_LED3,
$ J0 ]- |6 q/ B) M                .name = "user_led3",. l+ v- j# I  O  F0 V$ u" j
                .default_trigger = "default-on",5 _5 ?7 t3 h' L7 \: q0 S* D
        },
8 }; u* d- Q  a' _2 S# ^};
: L0 ~" }/ _: {1 v' |7 F" j
& h+ I( a& `! t6 pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* \+ _$ N: n: d, s  `3 r        .leds = da850_evm_tl_leds,
$ b( q/ F5 P7 o% {6 }' T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* b1 @0 h# I; z% q% W# w" Y( I
};- B$ \- ]  S$ ]* J/ N5 }: v6 {. g
' Q6 }0 R5 o5 r. ^0 r2 a
static void led_dev_release(struct device *dev)
7 Z+ I3 C9 E5 o: Z# M{1 r) u! r; G" h2 J
};8 Z  H! d7 s- m
, c6 ?0 a3 q( B: |
static struct platform_device da850_evm_tl_leds_device = {
6 j: B* ^6 X5 c6 \1 C* v        .name                = "leds-gpio",: R8 w) c# F/ G7 R0 N
        .id                = 1,- c2 h9 Z* C3 @. I' E
        .dev = {
& ?8 f6 ]& X. x5 s0 l                .platform_data = &da850_evm_tl_leds_pdata,
7 e& t, W: ^2 [* Y                .release = led_dev_release,
( Y  ~7 A9 J& U/ @        }) [# k& @8 ?3 y6 D- K' a
};
- L2 e! [/ k9 Z: I8 N  }. w
/ s& ~3 R6 ^# l6 b8 ?static int __init led_platform_init(void)/ b- w/ `0 @1 o8 f9 M
{9 b8 g7 N& T, p) s
        int ret;
3 u- n: T1 E6 h' D4 i8 `#if 0
7 z7 j0 f5 `$ W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, s6 V9 }! U3 E# E5 S        if (ret)" B4 q- m  r) B5 @
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 r! y2 W! {/ Q1 k+ c( x                                "%d\n", ret);' e2 j" w$ P1 J
#endif( M, ?  j, a7 I' g0 e$ G
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 Z# ^8 t) \% a        if (ret)
- Z' V  \2 i$ j                pr_warning("Could not register som GPIO expander LEDS");! Y  i! p* ^5 w  L' h
        else
* K2 \! h: n9 n& D2 L/ I+ v# H                printk(KERN_INFO "LED register sucessful!\n");! z% c1 b" [7 Y: U: \9 ?5 e4 L

% K/ L+ a( ~8 x+ z7 v3 T        return ret;
, S% P5 E5 V% X! u}
+ x) G# F* c2 M5 ~( L
  x9 D! |+ ?5 ]2 dstatic void __exit led_platform_exit(void)
. \. c2 k" `6 M, M{: j+ i* O5 }! c5 @- w
        platform_device_unregister(&da850_evm_tl_leds_device);1 M  |, M2 o6 A
0 @; _/ {# T, G/ y6 H
        printk(KERN_INFO "LED unregister!\n");
% X9 ~2 r- d. w; a# D! u}
9 t# ~8 i1 V5 k' {' ^6 a! ^; N/ Y$ |% w
module_init(led_platform_init);
( y3 X- I+ w  q/ f7 Pmodule_exit(led_platform_exit);; L) j# Z( Z0 d( O5 W9 I: Z
+ _' N2 b1 h" m2 K
MODULE_DESCRIPTION("Led platform driver");7 |4 N$ J2 p" q$ @/ v
MODULE_AUTHOR("Tronlong");- v4 Q# S3 A1 S7 p
MODULE_LICENSE("GPL");6 m4 o' G* j: U  k

, b! e, K& A; T% o. b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 09:00 , Processed in 0.039258 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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