程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) R+ [: I: F6 v; ~. j, w  `* G0 A#include <linux/init.h>
, A$ D& F! ]6 U9 B" w#include <linux/module.h>
& q, Z8 c' `9 K, W* t#include <linux/kernel.h>
" D1 V+ v  Q6 c. t#include <linux/types.h>
) C8 @) \# F! U9 T( J1 d; ^#include <linux/gpio.h>/ @) M6 z0 _( _  U* Y8 r- i* W( ~
#include <linux/leds.h>7 t" B; o/ C3 a- W, \2 S
#include <linux/platform_device.h>
. x7 L- p, a7 `  a8 u
% x6 Q7 [3 Y! x% c/ M- E& V#include <asm/mach-types.h>* t7 d$ Y& g9 @+ r! v) Z
#include <asm/mach/arch.h>
6 d& _. J: p" U#include <mach/da8xx.h>) g9 M, ^( s5 [& s0 `
#include <mach/mux.h>0 p: `  X6 _3 m8 e# [5 S0 y- e% q
+ f$ H3 o1 n' Q9 c: f( j! Z: q. L! O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! y8 g- K: l0 X. p7 M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 O+ u# G" R. l3 Z4 k5 G/ ~
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 t$ t+ g4 g0 H8 s1 q) R. `+ {, `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; R9 {9 T& H! H; e. G- K! A7 E
/* assign the tl som board LED-GPIOs*/
/ S: _. N+ E& ~, v% f. N1 Xstatic const short da850_evm_tl_user_led_pins[] = {: w5 q8 A- l+ e8 ~
        /* These pins are definition at <mach/mux.h> file */' {; w3 z1 s1 r( Z4 d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ d" u" m3 ^8 x5 L! ^        -1
6 \1 d* @; I- p- `};
4 V+ q. P0 m& P4 C( |' K. U) F! Z2 d
static struct gpio_led da850_evm_tl_leds[] = {, j' Q3 W( F8 I
        {
+ N" Q6 I( U* i8 Y, t4 |& c' m( Z                .active_low = 0,
+ O/ S, C( y0 Q9 H                .gpio = DA850_USER_LED0," V" Q$ {+ h# G7 i
                .name = "user_led0",) G& a/ \! g; Y/ E: |1 m
                .default_trigger = "default-on",
. r! R7 G, i2 B# D4 [  Y0 _. {5 ?        },
& w! Q$ q  N8 T) w9 F( {        {
) E: h+ R* s& k                .active_low = 0,
; z& r( }. L7 f/ t5 _. v                .gpio = DA850_USER_LED1,+ \6 A* b4 w! Z
                .name = "user_led1",. p' H* I: J3 c4 x: F, O( _
                .default_trigger = "default-on",7 S8 U- \0 u& ]( v* t5 G6 F
        },
( W9 Y" u4 |. X& R  \        {
. b- r: ~, n3 s0 I+ S                .active_low = 0,7 `/ g; ^; I4 J, j, E: n0 ^
                .gpio = DA850_USER_LED2,
3 e, }$ C  f& `! o- P0 M4 c                .name = "user_led2",
1 H& V) d$ t/ ?" x                .default_trigger = "default-on",
3 O+ F( a' i/ E& V( O& w8 a0 [        },
+ I, P, Z8 M4 {5 w( L( `9 P  z        {9 J  m- j- n2 c/ E$ S& A
                .active_low = 0,
. R/ K/ l+ G+ a  J' ^0 x3 s" o                .gpio = DA850_USER_LED3,# {2 n% b2 Z/ h, [7 B
                .name = "user_led3",
3 u: E' V) L5 L* X. I2 e6 l+ d                .default_trigger = "default-on",4 e% [: w  M, c
        },0 B% n* T' a! g3 W% ?6 k2 p
};
6 T. r6 a" b1 x4 U
0 w! `  ?8 O( _1 r9 A. Nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: ~& t/ z1 h/ N" T7 F        .leds = da850_evm_tl_leds,* ^* G; y  @# h" M+ s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. a: ?3 b& G! S" M, q& p. N" o
};: q# m$ r2 d  [9 V4 j) n
& `9 T. F# d% [4 p
static void led_dev_release(struct device *dev)  n4 H) a1 A' z! C( a, ?: K
{
6 F' y# C* t5 k$ o. @$ ]};
" C2 U2 r; T$ \( A+ i! V
" [, c8 s. b* ~5 ~* P! a. @; bstatic struct platform_device da850_evm_tl_leds_device = {
# ~  C9 U% |: [8 U2 X        .name                = "leds-gpio",% {: ?) O: o& ^- n# W- h! r8 t0 Z
        .id                = 1,
( p3 Y& I! y; T6 B. t0 r        .dev = {9 T) v' i/ J' c# i( B
                .platform_data = &da850_evm_tl_leds_pdata,
9 r- d3 k+ K9 F2 Y& V                .release = led_dev_release,
+ [) `) o" u* Z+ s& p# A  F        }
( C) m; F6 ~0 N};
' ?; [; {5 K9 {9 w0 W2 ]( ^6 V' H! ~" O! ^- f
static int __init led_platform_init(void)6 m9 T" t/ o2 s
{
) t& j- t" c4 P4 a" }3 u6 u        int ret;. b: r$ m( P5 c. [
#if 0
- Y, d( h0 `* S: h/ o, _        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 K1 L: k# C) C" M* U7 N        if (ret)8 \+ r( R5 F! B0 r( |) ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 T! r6 ]* y- ~1 V5 x9 [" g4 G                                "%d\n", ret);  S. }! n7 @' |: t
#endif- G  u; F  G7 b# w* {' L0 E5 n3 m
        ret = platform_device_register(&da850_evm_tl_leds_device);0 b7 G* l# F5 e- G0 T5 {% u3 |
        if (ret)8 E5 \( J% k3 ^* {* A; F
                pr_warning("Could not register som GPIO expander LEDS");* o/ a+ X8 m2 N8 X' f
        else+ S3 p3 w7 |5 C; F3 i$ s) r6 r% R
                printk(KERN_INFO "LED register sucessful!\n");. t; E3 Z9 N  X
7 Y( p  Q) e& r2 n
        return ret;
' v7 [& X# x( y5 L' k4 [0 ?8 u3 n}- b9 {+ C! [) h2 C

% u0 h( B( f2 q) B. \2 p$ f+ ^static void __exit led_platform_exit(void)$ R7 f: i3 q' m4 x8 w( Q4 G: C
{6 u. y5 S7 u; \- U% i% R
        platform_device_unregister(&da850_evm_tl_leds_device);. P8 H: I8 G. S; R/ s

( e) ]0 g9 G$ d% S7 n" M        printk(KERN_INFO "LED unregister!\n");
' \) g/ i  K; t9 j}
3 N1 T" N, S8 O6 i6 D% ~( `5 Z% \) d% u; Q5 t
module_init(led_platform_init);- g3 s, y. O% w; @2 X+ O
module_exit(led_platform_exit);
  l& D5 \5 b2 L/ D. [, M: ~0 R+ g9 M( h& \, e' H0 Y
MODULE_DESCRIPTION("Led platform driver");
6 T' y- L7 }2 XMODULE_AUTHOR("Tronlong");1 o. L2 t2 R1 x2 g
MODULE_LICENSE("GPL");
: w& ]2 w4 S/ p  }) v6 x% u0 q3 H3 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-19 13:40 , Processed in 0.037988 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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