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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( d/ X& i) t# N5 v) y. I
#include <linux/init.h>
; V- L& b, _1 ^6 |% C; {2 ]#include <linux/module.h>, N# f9 _( X( D- _' E' y/ O
#include <linux/kernel.h>2 Y3 T4 }6 R) t' j
#include <linux/types.h>
  Y5 D2 N3 Q+ _, [2 f' w#include <linux/gpio.h>
# w, z1 M: l8 {% U#include <linux/leds.h>
/ L& z8 v/ D1 o( ~& J2 M( D#include <linux/platform_device.h>5 c: z: H: D; p/ }

/ b; C1 V0 V6 E7 L* i8 i* d#include <asm/mach-types.h>
# f7 q+ H% Q$ \7 {1 N% w& D#include <asm/mach/arch.h>
9 A2 s- n3 V8 Z#include <mach/da8xx.h>
6 C# g$ D) d  \, M#include <mach/mux.h>. F% U/ f: y9 |  Q

5 E! x3 n* D+ h# s' @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' J; I7 p8 k2 k7 R/ R; ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: t) A9 ]' I! t#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ ^( e1 r8 v0 K  m. Z! `; n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 S8 b2 G* ~. D2 u, u6 @9 l

  F% s) i7 w: E" M: Y/* assign the tl som board LED-GPIOs*/
9 i9 Y* d9 U7 k' g) s0 K& n; j& Ustatic const short da850_evm_tl_user_led_pins[] = {0 T5 l2 @7 D; f) B8 [  O' h3 v
        /* These pins are definition at <mach/mux.h> file */
1 r6 ?+ x2 I: }, f% R8 H' s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) Q5 O# B4 U7 h# o
        -1* n3 r, F+ {" v2 X: T6 b
};4 }% Q6 W2 b" P2 p! P
8 U0 o/ {) l4 X( X
static struct gpio_led da850_evm_tl_leds[] = {# \8 W4 f& h, g  ?
        {
8 }5 Y+ f4 _4 T; u                .active_low = 0,
! v" K6 t8 s4 ]3 g+ r6 b                .gpio = DA850_USER_LED0,
# j( d9 {; I* q" R2 h  y                .name = "user_led0",' [0 Z+ e: ~* P' V
                .default_trigger = "default-on",% d; m6 A3 v  P2 f( Z1 H
        },
: G/ P6 v) Z, Y$ \! e/ o        {5 U  N% g. k3 P$ z: L  d9 ^' s
                .active_low = 0,
1 p+ T/ ?) [* Q4 E. d                .gpio = DA850_USER_LED1,
( U0 \: R9 q# W2 C                .name = "user_led1",
& k1 Q+ C8 d+ f                .default_trigger = "default-on",% A/ [+ T; m- q6 ]  z3 t0 R, a; E
        },* P1 U7 ?) `9 y
        {
  b3 B6 M! S" h6 O* Q4 ^6 B% k0 ~' o                .active_low = 0,
8 x, G* R  ^  }1 H$ ?; w                .gpio = DA850_USER_LED2,
, V6 B+ H. ^" Y7 b1 [# C                .name = "user_led2",: ?3 E8 w/ V( P9 S; T2 b+ |! a2 Z
                .default_trigger = "default-on",
3 o- {; L, \" Q+ B5 u% T. ?        },5 N; d& B2 T2 J8 T
        {
$ y& v) ]- F# E5 p: ^9 }) W; z                .active_low = 0,# a! ?  D( w" X, M# t
                .gpio = DA850_USER_LED3,
! A- c: G1 W0 r                .name = "user_led3",
: v4 f, H# e2 K7 X                .default_trigger = "default-on",
5 @# P8 K4 j, i        },
3 F4 {$ y/ e' x};/ E$ _% e+ Q9 L2 [

2 k" }# J' n9 u8 f" g5 Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 p6 z# R! j% G# ^  }6 o
        .leds = da850_evm_tl_leds,
$ C) n3 _& m+ |        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* r4 ]9 K: Q& a6 D9 ?7 m2 i};7 X* _3 l+ G, T7 i0 V) O

" \& G6 J9 F) M% bstatic void led_dev_release(struct device *dev)7 u" h/ \/ r7 l+ ~( ?9 \4 o- N- P
{# T  O3 y, t) u- V
};
3 n5 ]$ o! a0 ^/ d2 {: ~
7 C  T8 S  K8 hstatic struct platform_device da850_evm_tl_leds_device = {" e# n$ A9 u' _
        .name                = "leds-gpio",! Q9 ~  Y9 ^) W+ ~; Z( |, K6 n
        .id                = 1,
' `3 {& ]0 @- ~$ p        .dev = {
% _' S5 I, h# o4 R2 _                .platform_data = &da850_evm_tl_leds_pdata,7 ?/ b% g) i" S5 y5 d$ y# B" c9 j
                .release = led_dev_release,8 t+ d4 k6 Y& n, L
        }
- ?1 p- ^: f2 l) _4 N};1 p, j! T4 Q& ]: L
- O, o' g, Z+ @' t/ k/ o
static int __init led_platform_init(void)
0 H9 c" M& Z8 _2 C{
) m8 K' U8 @  x9 I! t  a/ n" ~        int ret;
$ Q5 p6 S: Z+ J2 a" \5 x& {#if 05 q! M7 P5 `* R2 }% [8 }7 v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, j+ G) g1 R7 \- P; p9 y
        if (ret)
+ z+ n8 K9 f( U$ K1 g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& l; m# ^0 X# B) w% j: }
                                "%d\n", ret);
" W3 x5 Y6 k( w' J* s#endif
/ {1 x+ i( A/ I2 g1 W: W        ret = platform_device_register(&da850_evm_tl_leds_device);
( w& M% H8 s4 O6 ~$ s& q: z7 H        if (ret); e6 k9 }2 {9 `1 Z7 j
                pr_warning("Could not register som GPIO expander LEDS");
9 S- ~4 o5 U8 l        else" `. n7 H. K6 o' A/ s* s
                printk(KERN_INFO "LED register sucessful!\n");; `1 i) f1 O0 x' U
! F1 D5 h! u( I5 ~! a, L: S" t# {. D
        return ret;
7 w3 P/ K3 {/ W4 B4 M}
# ^7 N3 e% _: i: O+ n/ W, u; O3 E% q; W/ z* i2 K
static void __exit led_platform_exit(void)1 q9 Z& P+ `0 v7 d
{
: |" L7 p" x+ ]# J5 M( j        platform_device_unregister(&da850_evm_tl_leds_device);
$ ^* b; a/ @) u  l2 |' J: I# s& w% U- _) g
        printk(KERN_INFO "LED unregister!\n");
/ W" w, ?  ?+ h# E7 f}$ D, s8 k& `- g# T3 b' G
' r4 \1 Q( s3 X6 R- c
module_init(led_platform_init);$ K5 U! B0 u  v) G9 @9 p
module_exit(led_platform_exit);
- a9 a. x& ~% W8 K. L6 t
7 H! A' R6 P# c7 uMODULE_DESCRIPTION("Led platform driver");
6 a$ M; x! B* r; P9 Z' d# d0 KMODULE_AUTHOR("Tronlong");1 w+ k: d; ]  x6 @
MODULE_LICENSE("GPL");& L8 H0 Z0 [$ h" ?; |5 ^! b/ k
% A0 W- E$ F2 ~$ z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 12:36 , Processed in 0.050345 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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