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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 s- B! ^( x$ O
#include <linux/init.h>$ w) j1 M$ R7 T3 E7 G% v
#include <linux/module.h>
& g6 r! X, O! G( W: q7 k/ D. C#include <linux/kernel.h>9 ]4 `. \3 M9 p9 Y- U0 m
#include <linux/types.h>
5 M* x( r. k9 z#include <linux/gpio.h>
$ q( Q& x& e/ }$ ^1 r) ]/ v#include <linux/leds.h>
1 v' ]) F% N2 K, I$ w8 f#include <linux/platform_device.h>, G2 k) ]- X5 }) v
: L+ y: g( b0 q% b
#include <asm/mach-types.h>
3 F/ W) Y2 X+ E0 v9 U#include <asm/mach/arch.h># K6 b  t8 L' X2 N4 |" r% A! R
#include <mach/da8xx.h>
0 M# h7 Q2 {2 }0 r& w2 p#include <mach/mux.h>
/ h0 w$ F7 e/ f2 D8 y& E3 E
( N: A8 l; \' w9 b' X7 x#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" o8 \& `. C1 D# H0 ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 s( `. C7 p% D0 ]4 ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' ^/ B6 j9 x6 U! I* ^/ a$ b3 J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). j  ]  e% [+ T4 d
4 D) F* @  J! l- B" y
/* assign the tl som board LED-GPIOs*/
1 q6 }/ @9 R0 p% @: L3 p; ustatic const short da850_evm_tl_user_led_pins[] = {* k9 k: s$ p% D; n$ ?/ g
        /* These pins are definition at <mach/mux.h> file */
" r0 ^+ P" ^1 v0 M8 M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, I) r3 |8 R3 Y( P        -1* F/ }4 V) U; S" z
};
4 h! H- m  r+ t: C6 F: [6 `' F
2 w/ S9 b% G! y6 O, Xstatic struct gpio_led da850_evm_tl_leds[] = {* W% [% t6 A/ N! h" p
        {7 p/ R; Y( l: E( ]
                .active_low = 0,! ^- g# Q/ |5 ~5 J" w5 Z
                .gpio = DA850_USER_LED0,
  j$ h$ J% i1 B* P6 u) P2 ]% @, J0 t2 Z$ _                .name = "user_led0",! S3 a. D! A3 e, `
                .default_trigger = "default-on",
4 O2 M* ~7 T, U2 k" H. L5 W        },
+ f( @8 r0 R: t  Y        {
$ D& D2 z# f& O: V" ?# _0 h2 b                .active_low = 0,% E) f2 f# Q2 a4 f
                .gpio = DA850_USER_LED1,, u& L' z( W& b3 ~2 |  K- d3 T
                .name = "user_led1",3 ?" l1 [3 a9 e( ^
                .default_trigger = "default-on",
$ |6 i! _8 n) }3 N' o        },% ~0 ~# k+ N% I3 C8 M* W
        {% X! b- G+ T: B  _1 V; V
                .active_low = 0,  }3 p0 m  Y/ R" Y
                .gpio = DA850_USER_LED2,4 N  {: i' d* @, [- ?! l. H
                .name = "user_led2",
5 @: Q% e- R6 l2 m, @- O9 h2 [                .default_trigger = "default-on",/ B2 j; b+ O9 o. Y
        },
# `  Q/ Q5 b0 d        {
5 p) c, F7 U3 h/ H  t9 ]2 y; l  K                .active_low = 0,, L. B2 N, T, C* ^
                .gpio = DA850_USER_LED3,
% t3 A  u# L  W8 ^) R7 p+ h                .name = "user_led3",2 H0 T  X. ^, p: @% v
                .default_trigger = "default-on",
7 h1 d- W6 W. k- J  i        },4 }8 }. H8 j! g
};) c/ B6 C5 |5 }2 l4 A, ?. C" F
) ~3 J* k5 M$ s* k0 y% W) R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 z: ]# |( F/ v4 j6 Z, m        .leds = da850_evm_tl_leds,/ u& |$ w- ^6 X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ w" t7 D/ u* v8 [! |# f};- B) p! P( C* e7 ]$ e1 H* O
* L0 i7 U8 Y0 p/ h
static void led_dev_release(struct device *dev)
" P! E$ N+ Y3 f$ h# R{
; G+ U3 k/ g4 [};
. c& N# N& N- @$ ^% Z
  O" V7 j9 a3 R+ }) S& jstatic struct platform_device da850_evm_tl_leds_device = {
% B6 M% E2 ~) e9 b+ U- q        .name                = "leds-gpio",
0 u& B" F4 z+ y& {+ m# e        .id                = 1,! q$ b, z7 N( G) }' w/ |
        .dev = {
1 m  E8 o( C) l; O5 c# M1 x                .platform_data = &da850_evm_tl_leds_pdata,3 j' y+ T2 o4 @( z$ H/ @& w
                .release = led_dev_release,
, N; _1 F6 f; \" w        }
4 m' F, H9 b1 p( A5 S/ n};# a! Y/ T7 X* h# f$ R$ N! h- T
2 x& g6 w4 d7 }  x
static int __init led_platform_init(void)
$ y1 O  F+ @$ Z' Y{
/ C3 Q- O" }& o7 i1 r8 G0 v        int ret;* f! t" g0 Q( N. Q$ T' u6 C' w
#if 0. J7 D7 v! E# c6 Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. z: O. {( F$ h        if (ret)
8 `7 v+ m3 j" R) ]2 v" ]) r6 R- a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( c& d+ o/ g9 E4 q( H0 [8 s                                "%d\n", ret);
3 [: O" T: J) l5 c, ]1 b#endif
$ v6 z9 T- d. L; B9 w0 E+ K% i+ k        ret = platform_device_register(&da850_evm_tl_leds_device);/ ~9 G, e" A- b& o8 m( ^
        if (ret)
1 I- s' G+ w9 E+ `, Y* T- o                pr_warning("Could not register som GPIO expander LEDS");
: e6 ^: [* q( |" m' |) C1 o        else  V1 Z7 ~0 V/ {  a( J
                printk(KERN_INFO "LED register sucessful!\n");
  i5 v4 n0 F# o+ m. ~$ Z4 e5 K( D6 p5 ^; y& z) k' Z* V: d
        return ret;% Q5 @2 V, t' o% Z8 r1 P/ t
}# \8 m+ t* U7 {  h$ E9 w
& s* `" x  ?+ C+ G! e4 k$ J4 m
static void __exit led_platform_exit(void)
1 {/ [& p/ T+ m( a6 g{
% Q; K6 K0 g: c0 F# g9 U        platform_device_unregister(&da850_evm_tl_leds_device);/ w' k6 }  \. `9 k4 w

% I/ I0 L) \# w# I        printk(KERN_INFO "LED unregister!\n");: A9 M- i* q; z* x7 K3 Y6 m
}
+ K  W& ~5 `8 D/ I' i) F8 ?4 j6 G8 V; L" J1 Y: C
module_init(led_platform_init);
: G" V( ?+ O* U. E+ Ymodule_exit(led_platform_exit);% j. l: s7 K- y. g0 r
: h. x% B# x5 C3 |
MODULE_DESCRIPTION("Led platform driver");7 A- w( y( L9 r: b* Y( |- @
MODULE_AUTHOR("Tronlong");; D3 j9 M  Q+ R
MODULE_LICENSE("GPL");
% I8 l) D" a+ Y0 S
) u( A/ a5 B5 z9 d' p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-11-5 05:35 , Processed in 0.040502 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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