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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) o5 D6 M( ^& R1 r( O$ g- n9 w! J/ G
#include <linux/init.h>4 S& d% D& T" F/ o, Q
#include <linux/module.h>
4 [; k9 J7 W2 i6 Y/ v#include <linux/kernel.h>
7 a9 A4 {1 X; q0 Y- C#include <linux/types.h>
8 o" `$ d% q' }% v; M0 e8 x#include <linux/gpio.h>: H( Q$ v( n5 _5 P9 \! a  @
#include <linux/leds.h>
+ F0 l2 t6 ^% u7 |#include <linux/platform_device.h>) C  l! i, B) D& ?; A

) }! g$ y& b3 P, E#include <asm/mach-types.h>
: d& F6 [5 q$ X' n$ R#include <asm/mach/arch.h>- s! d% @! Y7 s6 X; i/ A2 T
#include <mach/da8xx.h>" B7 i8 O$ J: Q/ m
#include <mach/mux.h>
! o, @0 k/ _! q% T! U- @" w% I8 M7 D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& K3 g# b) G. i: {# U#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( H! x  z4 _- t/ n5 O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! k% g1 T1 N2 X. U  m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  B7 P# a" a+ [5 o5 U2 f) ?4 X- j" h9 T) s' G( p! r
/* assign the tl som board LED-GPIOs*/
* C7 `  J" w% qstatic const short da850_evm_tl_user_led_pins[] = {
5 }/ h" L3 X! y, f0 Z: Z* s        /* These pins are definition at <mach/mux.h> file */) Z, T3 u( Z6 ?) m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* F8 p1 o  `, t3 h3 x1 ~+ n+ G        -1
6 }+ q! Y$ x% S' h2 U3 ]};; V6 {1 T  o3 E
  O( R* ]5 l2 ~5 ?
static struct gpio_led da850_evm_tl_leds[] = {
7 b7 ]1 u- O# z7 W        {, B- F) B4 A2 B) \
                .active_low = 0,) ~4 `4 P7 ^0 ?' V, i3 Q
                .gpio = DA850_USER_LED0,
  a  ^- U  @' X6 \5 C8 Y; \                .name = "user_led0",: `! ]; t" v8 e* z/ a6 T0 `
                .default_trigger = "default-on",6 V8 V! r5 N9 w4 U/ h* a
        },7 i: x0 z9 J6 J' N3 F3 Q
        {
& P# h& ?1 J5 `' y                .active_low = 0,
- l/ p* X+ t) C- x# A                .gpio = DA850_USER_LED1,. o9 D( J# ~- o9 K% k  l( V
                .name = "user_led1",
; b8 h9 h7 ~, J* n  m, [/ {                .default_trigger = "default-on",
  D% p9 B/ w: T  ]' c        },' y8 d1 {" E9 y9 S  x1 r
        {1 V" w! `/ P9 F
                .active_low = 0,
$ ], |" D8 v9 R# y2 ?                .gpio = DA850_USER_LED2,
0 n2 w. g4 _5 A( J: o( O& Q8 X                .name = "user_led2",# E! J1 F8 C, ~" j! r
                .default_trigger = "default-on",0 ?* ]$ e1 V; M( C' Z
        },! m! {8 D- h* D$ f/ v+ B9 P
        {
/ {, ?# v# Q# U" I                .active_low = 0,
8 Y2 u5 E1 N6 Y* j0 o! h                .gpio = DA850_USER_LED3,
# n/ f! D: A) k1 o- n, F                .name = "user_led3",
, a  R. l2 B' R, v                .default_trigger = "default-on",
- J% l- @& j7 _! x1 n" Y        },
$ J4 k; O( k$ B};1 j  x2 x& \1 P! N$ U3 z" g
8 C5 D" c. j/ {% M0 @' B
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# M7 |) Y, o0 ^1 J% D0 D        .leds = da850_evm_tl_leds,
+ l" D" k, R7 w, O+ V% A        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' K- p" k& _9 n, w$ [0 B' f};/ O! J: W' Z. c
% W0 }' Q' _" [4 j4 S) c1 \5 S  \
static void led_dev_release(struct device *dev)9 ?; z2 V: ]+ }6 m3 L' t# Z9 @
{
$ X8 I% k$ W3 b) J" A: C. R# m};- n8 C, l# E+ m1 l8 C2 k$ }

. Y  R# f( ]% y6 estatic struct platform_device da850_evm_tl_leds_device = {% L3 H( C- R+ }- Q9 }% @2 ]
        .name                = "leds-gpio",
0 s5 f3 ]1 r, v4 r- R        .id                = 1,; `* [  w+ I- U* ?& ^8 x3 J
        .dev = {0 m5 }6 Z' ^2 g$ W0 c# ?/ K- E. Q2 I
                .platform_data = &da850_evm_tl_leds_pdata,) k# F. ^9 s7 a$ u0 c* Y  s
                .release = led_dev_release,
0 G6 t, \! @* `- t+ {- {# Q. L3 Z        }9 Q: ]; I" [7 ]8 N# `
};
, H& W4 L0 P4 N6 O
3 ^$ T  _* c/ n9 M) }$ |7 r  v6 V' qstatic int __init led_platform_init(void)$ R6 v3 s1 G" O2 ?; d+ j- e
{3 C. v/ q  L( C; r/ R
        int ret;5 l2 F2 L# q9 ?$ v9 [4 F7 A
#if 04 K8 p. ^/ ?5 L. a/ U$ E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% J3 v! G. A. k8 d; e
        if (ret)
$ ?' V4 m/ I6 Y  W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 x+ C5 U/ g9 }: d6 ?0 O( A6 w6 F                                "%d\n", ret);- h) @; O) F9 S
#endif1 i# o2 t0 h1 ?
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 B0 I( R( K: W+ z. `        if (ret)
6 o& [6 e2 }; i: M" @& x' ^4 G9 \                pr_warning("Could not register som GPIO expander LEDS");
4 y3 k( F% [* g) r$ ?6 J6 k$ |        else" h+ }. H8 Z, i0 I$ l2 u8 R  z  [% T
                printk(KERN_INFO "LED register sucessful!\n");
) j  Z, Z: l4 d9 p, k; j% n) F# ~( `
% I- b- R& d% r        return ret;( u- `6 i7 w1 s$ q  q: ^# u
}  ]0 d5 z! q- o3 N
: I8 E$ o8 \6 g/ |
static void __exit led_platform_exit(void)
% i- `6 o% R" B5 q7 [: Y+ a1 a{
4 P* ~! t1 b. _& b2 H7 G) O6 e        platform_device_unregister(&da850_evm_tl_leds_device);
. v; z9 u* i& z' h/ J+ {
5 V- J4 ^# Y* C) B3 E        printk(KERN_INFO "LED unregister!\n");1 ?: U9 C9 y0 p( g& b' t$ v
}% g. n  h) i" b+ S5 u6 E

) u! c9 Q' L! ~3 A- d8 `  smodule_init(led_platform_init);
7 @% N: a; z& B7 Z* W% o$ hmodule_exit(led_platform_exit);% F9 ^% @1 c8 [6 d  `. p+ P1 f8 V
& H! U# n2 C4 M1 N1 i8 X
MODULE_DESCRIPTION("Led platform driver");
* J9 ]4 w! |( B- eMODULE_AUTHOR("Tronlong");
5 ~+ `* H# ]$ I  _MODULE_LICENSE("GPL");3 d' R1 n. k( _+ u8 W; i
7 ?- Q# f5 J4 b& q, E" V8 I5 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 22:17 , Processed in 0.041759 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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