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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 K, q3 b8 L. v6 ^
#include <linux/init.h>
+ w  }5 t! ^" ?8 b#include <linux/module.h>
/ ]2 E3 O3 J! }' y#include <linux/kernel.h>% Q9 T8 Q3 y! y, d' l* n
#include <linux/types.h>& v, x. m( Z) R* H" {2 n; T
#include <linux/gpio.h>
: Y3 X5 r6 m1 h3 F& g% p6 i0 ?5 P! X$ R#include <linux/leds.h>" C; a" f% R$ `/ a2 C3 O6 j3 I' }2 _
#include <linux/platform_device.h>) j& q: m# W* h; Q% @
4 ~1 C- _) j3 @3 E) g2 L: i- r
#include <asm/mach-types.h>1 W9 f# d7 P0 _  L. H! J
#include <asm/mach/arch.h>: R% P+ j. t- n/ d; N/ V! a& h
#include <mach/da8xx.h># b# z8 W( \$ h' A3 Z. s7 Z
#include <mach/mux.h>
" Q& H5 t1 R$ Z
7 T) T% T4 W+ Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 p- u" p$ D3 C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ `, r  o! z2 ^7 @" e+ ~6 F6 a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 W0 Y0 O) w& r6 b/ W! C
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). c. o) s" Q7 L- O3 H& Y& E

& z& a. i2 J" K+ ~. B% L/* assign the tl som board LED-GPIOs*/& M) c/ |2 \: r8 o/ A( v
static const short da850_evm_tl_user_led_pins[] = {
- @* F( B1 B/ N7 J- s) p6 Q        /* These pins are definition at <mach/mux.h> file */" ]9 T) N" l# q+ {6 V
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 n& d% p# K! n
        -13 \3 f6 a+ ^6 g3 e4 ]
};
/ I! q) f5 }5 V2 w8 z: Z3 ?, Y
static struct gpio_led da850_evm_tl_leds[] = {4 G& V/ L9 s1 a2 G
        {3 ~, z: k7 b- D8 V' t
                .active_low = 0,% T. @3 D& r/ @+ g% |* b
                .gpio = DA850_USER_LED0,+ |  k4 Q8 v, Y2 B1 K
                .name = "user_led0",( C/ U. }( P& R8 G) ?$ R
                .default_trigger = "default-on",
' L+ _9 ^( M9 g5 g6 q$ v        },
- v2 Z1 }& U: r7 |7 G. i: v) b        {; l9 c; B" t2 `+ v7 N) `
                .active_low = 0,: l& [1 W3 J7 p. p% N0 n
                .gpio = DA850_USER_LED1,: m7 H- }2 G- N5 }% L( Z
                .name = "user_led1",
& |  ^: [+ v& Q! U7 L                .default_trigger = "default-on",4 M( k) U7 W# C% d& h* [" [
        },
* w; b7 X4 ]+ C2 f        {- C2 s4 j7 b+ ]% w
                .active_low = 0,. W2 v1 l3 I. o' j* g& Z
                .gpio = DA850_USER_LED2,
" K$ l1 [9 H  k0 e: n                .name = "user_led2",
7 ?. P1 G! n% a1 I- }7 b8 Y: W                .default_trigger = "default-on",% K4 _) q- B  u  H
        },
4 \4 C) L# ]8 d) H5 ]+ ?) b        {6 Z, K4 S: U- I/ q/ R
                .active_low = 0,5 \' h$ B. b% t
                .gpio = DA850_USER_LED3,% m( m, |  d" H2 f0 M
                .name = "user_led3",
. W3 q/ s$ j2 a- s) ~* C+ [                .default_trigger = "default-on",* v/ o2 F# m% }( ~7 N
        },- |( D3 s) Z( I) k( `! h
};" q+ X) O) G8 p$ {; N! w8 r
; Z+ G& p$ k- g+ v9 F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# |$ F* y1 e# H4 @
        .leds = da850_evm_tl_leds,
7 N  F* M/ D, i+ ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% |; ]+ X3 x5 c, U};
2 D3 b8 l- n2 K% a6 _' t% g  Q" t! f+ `7 M! f
static void led_dev_release(struct device *dev)
  ]2 y  L- G4 m5 y7 p* w6 \. G{9 G7 \0 W: Z( V- I; ^2 _7 O+ H
};
5 p* T- ^* {- H
8 J7 r/ u5 p. C6 W5 E+ Bstatic struct platform_device da850_evm_tl_leds_device = {, H3 p3 Y, i3 B( j9 s( b1 y
        .name                = "leds-gpio",/ ^) Z' b) N7 H
        .id                = 1,
& p  P3 ~7 n5 ^5 K% k) O  o0 w% Y        .dev = {( i8 A! x3 A7 A% e$ n
                .platform_data = &da850_evm_tl_leds_pdata,5 b8 [0 {, X: {$ M* i
                .release = led_dev_release,
$ t' r" F, k) Y! f7 z, I        }
/ u8 q6 C- k; d8 n( U1 A' C3 S};
# i0 k  Y% W: }: d9 V  Y
9 C" p) P. b9 Q; {: G+ qstatic int __init led_platform_init(void)
3 Q& z! U6 a. A3 C9 O( y{
- H2 K6 W. Q; O# }6 f' B        int ret;; G5 Z7 {7 @, _& ]" L  ^) E
#if 0
8 R) V# ?3 }7 ?6 U" p3 M, }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  u8 T( x- x* W- f( `" U
        if (ret)9 o9 I! \# v9 _- J7 a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") m; b9 l+ i& H0 V; r. L! z' R
                                "%d\n", ret);
' Q- t5 L8 F0 ~4 h6 J0 o#endif
4 g: @  N! l: d6 h        ret = platform_device_register(&da850_evm_tl_leds_device);
0 v3 r7 S4 j( |        if (ret), D. `. K/ v! v% ]( w6 M0 _
                pr_warning("Could not register som GPIO expander LEDS");
! {: ?: X. O: @! v. o4 k$ M3 D0 r        else
$ ]/ d6 D1 C$ f, L* Y5 j                printk(KERN_INFO "LED register sucessful!\n");' h# m# p/ L9 ]1 o+ y( l) S* X/ G

  E4 G5 n9 i8 L" z' E3 H3 G        return ret;
9 O2 D% m. F. L" @! y* e- F}- o5 \  \, b. g" x* Q
, z* ^7 \5 l& J9 n& A! A
static void __exit led_platform_exit(void)+ q- n) Z0 D, \
{
$ V3 G* T$ C( c  ?* l3 R1 I        platform_device_unregister(&da850_evm_tl_leds_device);8 ~4 X& E7 I: y5 s' i
7 h2 y  e/ x4 q& X7 M6 U
        printk(KERN_INFO "LED unregister!\n");( c0 M2 S+ q2 Q6 J# x/ w. K
}
) R1 l, ~) Q3 _  {# l3 J$ j9 R+ U5 m+ f
module_init(led_platform_init);
  X3 F2 C0 G$ g6 |0 g7 e/ Y' @module_exit(led_platform_exit);  L# V) y' c. R3 `$ y

* d% [+ h5 n1 w2 p* |9 |' b6 lMODULE_DESCRIPTION("Led platform driver");
" S4 }2 y& U3 v$ B1 t" PMODULE_AUTHOR("Tronlong");: {& e: i  V! X' Z: L+ ?' h
MODULE_LICENSE("GPL");
' V/ E7 {* M5 {# [# d* o* b, J3 S- Z9 J4 F& Y+ {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 12:39 , Processed in 0.038394 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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