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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) d5 F+ k9 y, O) x6 F- F
#include <linux/init.h>
8 i# `( A( X# ?; p" o$ k#include <linux/module.h>
: u9 |' x+ P( y5 z# {#include <linux/kernel.h>
! [( a/ A1 X. p5 Q#include <linux/types.h>6 j+ s7 v0 Z* U; [/ R+ Y
#include <linux/gpio.h>
+ V0 C4 U9 I7 K5 O8 B% E#include <linux/leds.h>  M/ [: L0 j% v6 D4 d9 M4 Q% P
#include <linux/platform_device.h>6 j$ m( G$ @" a. H  }8 s  [- G, u

' U7 t  N# k0 d+ F0 {/ p5 m& ~#include <asm/mach-types.h>
8 a$ C) [  a3 a* ?  ]2 H2 W#include <asm/mach/arch.h>
, |! }" O; E, S" Y" L" W, I" g#include <mach/da8xx.h>0 h5 e, v' F6 T$ N+ R: L- L$ ~3 }
#include <mach/mux.h>$ [7 X* S% b: H% U9 Z

: A8 S- C. o& [9 e  W! q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! e* Z' i2 F& b3 D& d% z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); J4 K. @  N) |5 B! y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 A7 U: K/ M5 ?% ]; \( g: M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): x) A9 F  i* p/ D8 A

/ N( G1 H1 d+ M$ d, [2 h# K. W/* assign the tl som board LED-GPIOs*/
6 M+ b+ }# ~" z, g9 h8 wstatic const short da850_evm_tl_user_led_pins[] = {
) ~% g9 A$ S* g0 H3 m5 t5 E. h        /* These pins are definition at <mach/mux.h> file */
/ h  z' o( z% [) y+ s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 O! q% J: J3 v! R0 ^& @4 @        -1
5 E. P* m: ]. U* q};
0 b+ J* B! g  C" i! t, ?
1 C2 `0 K4 S0 e: h* ]# Z4 k& Z( }static struct gpio_led da850_evm_tl_leds[] = {; f* w5 s  f4 @0 w- q1 O. P, {
        {
9 m# j. W2 Z0 q3 v. r: s                .active_low = 0,, D, z6 `6 u' w) K" V  W
                .gpio = DA850_USER_LED0,! @/ w/ a4 S; ?: Z: m+ P8 g
                .name = "user_led0",
  X$ Y+ ~9 y/ }7 G9 }9 h                .default_trigger = "default-on",
) u/ p7 f+ b9 R; z8 U        },
5 i" \9 `$ Q: c        {! d' x4 b, f4 [9 ~  G
                .active_low = 0,9 D& o4 c: ~# k: E, y! l
                .gpio = DA850_USER_LED1,
3 P5 c9 _/ W( V! K: k* A                .name = "user_led1",
3 n  g6 P4 `5 n9 z                .default_trigger = "default-on",; p3 k# q" ]) b& q+ K
        },
: _; T7 Q; C  j% a4 X3 t! J        {# ^6 E( ?. a; b. R) A
                .active_low = 0,0 Y6 D4 Z* \7 P" F
                .gpio = DA850_USER_LED2,0 w+ D& i: l7 \6 W2 _5 p
                .name = "user_led2",
: m/ z! l2 J0 ?  m                .default_trigger = "default-on",
& |" m6 U$ C* Y' E        },0 v+ u, V) Z" _: U6 F
        {8 a/ A. l. D2 h7 k
                .active_low = 0,8 n0 H/ s1 k# \. l6 [
                .gpio = DA850_USER_LED3,
- {/ U6 `; `( `5 U% `4 Q; }2 s" N                .name = "user_led3",
0 h6 E2 E0 u) T- f. K% E                .default_trigger = "default-on",
  p/ i/ u6 `3 M7 a3 ]        },8 K# A! e: J. m
};  r6 V( i; f6 L, Z8 N+ g
# u  c: j3 U. }9 z* n* w5 F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 p2 D) I# a5 M9 h5 z/ v  W        .leds = da850_evm_tl_leds,
2 Y: ?1 V9 v& m9 k) b        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ h1 L( e3 l5 w5 T: b0 P, C* l
};
7 ^. e/ j2 _8 z. Q/ A5 [3 R
* i% R: ]6 a1 ?9 ]static void led_dev_release(struct device *dev)& A$ f5 W( e4 e& `# {2 {( M
{
  R$ r0 W# X+ T% o, V) q: l};) j' f% c, l+ j
" ?' r9 j  L6 Q; G# W3 G9 P: S! i
static struct platform_device da850_evm_tl_leds_device = {
- L$ w  x# Y5 U& q        .name                = "leds-gpio",. |9 T: H5 ~5 T0 O. b
        .id                = 1,
; C) c3 J0 e6 i. z$ `        .dev = {
( a/ B, {3 M! G# J; ?% C                .platform_data = &da850_evm_tl_leds_pdata,
& t! j# Q7 t1 D+ J: R                .release = led_dev_release,
# N+ F0 q) B* b* m        }5 ?8 s: m, v; N' I2 O$ J
};
, V7 f$ s& Q2 Y
5 B2 W* A$ o9 h; Sstatic int __init led_platform_init(void)
# r  Y! q! P- W% n5 Q{+ j# w. ^. L" v) H' Z! |7 `# Z: M
        int ret;
7 G4 t; ^0 f, j+ ?# w" J4 J#if 0
: T/ v9 P2 |* y4 m! @. T        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 \  d3 W( y3 Q        if (ret)5 V9 ?* f6 @6 b! W: M* ?. E
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& X; J. r; V# T( a( N" |5 F* p
                                "%d\n", ret);- X! c) \- P& _  V
#endif
4 [- _" V* u* b' H2 u3 w% M        ret = platform_device_register(&da850_evm_tl_leds_device);3 h4 ^9 }% D, n$ d& m/ W7 v0 I
        if (ret)( e# g9 ?0 W( U+ ^' j7 X. P
                pr_warning("Could not register som GPIO expander LEDS");3 t$ R  _  w( I" D. j
        else
( [. M) r8 _. N  h& I: n9 V                printk(KERN_INFO "LED register sucessful!\n");& `+ F  t9 n1 d& e3 _# k) }/ `/ F7 N

: m$ F; @* o, V        return ret;5 ?3 `% G, \0 Q3 p, c1 ~$ `, g) u* S
}6 B, K9 f% c8 U* ~

5 F+ {8 ]( v+ _4 Y+ v9 gstatic void __exit led_platform_exit(void)
) B2 l" h6 R* H: H' d{
: O& M5 W2 ?( J- }2 f) q9 f        platform_device_unregister(&da850_evm_tl_leds_device);6 l4 [0 O% H/ ^4 G6 u
0 S, h0 X1 o! {$ }
        printk(KERN_INFO "LED unregister!\n");
9 Y% b" P, Q  b. K1 U& j9 e3 B}
- K# f% G8 M7 V, e
- T$ S6 i0 _7 X/ }1 W- @% L5 ?module_init(led_platform_init);1 P2 L# \5 E/ h! }
module_exit(led_platform_exit);
( m2 J4 |3 m& {5 P& |8 E9 l' M  U* z, Z9 ^5 q6 i
MODULE_DESCRIPTION("Led platform driver");/ N  Y4 S$ Q, d; x/ I* H( S
MODULE_AUTHOR("Tronlong");
1 Y$ v' w0 U" N* m4 y% VMODULE_LICENSE("GPL");( o& v6 R4 l+ {" A8 I4 w

/ S3 B/ G0 U6 G$ b9 l- H$ \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-7 19:40 , Processed in 0.039660 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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